Zabbix自动发现监控Mysql数据库
2019-08-09 22:20
1536 查看
结果图展现
先让大家看下结果图,Zabbix通过自动发现监控Mysql每秒的增、删、改、查,通过自动发现监控Mysql的流入流出流量,结果图如下:
Mysql给Zabbix监控的权限
首先创建一个监控用户,usage on为比较小的权限,较安全。sql如下
grant usage on *.* to 'monitor'@'127.0.0.1' identified by 'shijiangepwd'; flush privileges;
测试监控用户是否生效,测试结果如下
mysql -umonitor -h 127.0.0.1 -pshijiangepwd -A mysql> show global status; +-----------------------------------------------+-------------+ | Variable_name | Value | +-----------------------------------------------+-------------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Binlog_stmt_cache_disk_use | 0 | | Binlog_stmt_cache_use | 0 |
编写监控的Shell脚本
脚本使用show global status去监控Mysql状态信息mysql_check.sh:
port=$1 key=$2 mysql -umonitor -pshijiangepwd -h 127.0.0.1 -P${port} -e "show global status" |grep "${key}\s" |awk '{print $2}'
运行结果如下,Zabbix监控只需要返回一个数字即可
[root@test ~]# sh mysql_check.sh 3306 Bytes_received 439 [root@test ~]# sh mysql_check.sh 3306 Bytes_sent 11935
Mysql的监控端口使用自动发现
Mysql端口使用自动发现的脚本mysql_discovery.py
# -*- coding: utf-8 -*- try: import json except: import simplejson as json import commands (status, output) = commands.getstatusoutput(""" sudo netstat -tlnp|grep mysql|awk '{print $4}'|awk -F':' '{print $2}'|sort -u """) outputs = output.split('\n') result = [] for one in outputs: result.append( {'{#ONE}': one} ) print( json.dumps({'data':result},sort_keys=True,indent=4) )
默认的Zabbix用户无法使用netstat命令,所以得使用sudo,Zabbix用户需要添加Sudo权限visudo
zabbix ALL= NOPASSWD: /bin/netstat Defaults:zabbix !requiretty
自动发现Mysql端口的运行结果如下
[root@test ~]# python mysql_discovery.py { "data": [ { "{#ONE}": "3306" } ] }
被监控的客户端添加自定义Key配置
被监控的客户端需要添加如下配置,然后重启Zabbix Agent
UserParameter=mysql.discovery,python /etc/zabbix/mysql_discovery.py UserParameter=mysql.check[*],sh /etc/zabbix/mysql_check.sh $1 $2 2>/dev/null
为什么要加个2>/dev/null,这个是预防高版本Mysql把密码直接写在命令里会有以下的安全提示,所以得过滤掉
mysql: [Warning] Using a password on the command line interface can be insecure.
Zabbix监控的配置截图
相关文章推荐
- zabbix自动发现监控mysql数据库
- 自动化运维工具之Zabbix发现_自动注册及web页面状态监控(四)
- web监控:zabbix自动发现+python之pycur模块对网站访问质量监控
- zabbix通过自动发现tomcat应用端口监控连接数
- zabbix自动发现监控tomcat健康页面
- Zabbix之(3)--自动发现服务器并添加监控
- zabbix自动发现url以及对http返回状态码监控实现
- zabbix监控之redis自动发现并监控
- zabbix4.2 通过配置自动发现获取prometheus监控数据
- 【zabbix】利用LLD自动发现功能监控多Tomcat实例
- 自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控
- zabbix自动发现监控url
- zabbix自动发现规则实现批量监控主机的TCP监听端口
- 添加zabbix自动发现(监控多tomcat实例)
- zabbix自动发现功能 监控web url
- 65.zabbix客户端安装 主动与被动 添加监控主机 模板 乱码 自动发现
- 【zabbix】利用LLD自动发现功能监控多Memcached实例
- zabbix实现网络发现、自动注册、自动监控
- zabbix 自动发现监控redis
- zabbix自动发现监控远程端口