zabbix监控mysql

it2022-05-05  95

zabbix自带mysql监控模板,可监控mysql的增删改查、请求流量带宽和响应流量带宽等。

监控步骤

1、服务器上安装zabbix agent客户端,并修改zabbix_agentd.conf文件

# vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1 来至zabbix服务器的远程命令是否允许被执行 Server=zabbix_server_IP zabbix服务器ip地址 ServerActive=zabbix_server_IP 主动向zabbix server发送监控内容 Hostname=name name配置的内容要和zabbix服务器配置的Host name一致 UnsafeUserParameters=1 是否启用自定义key,zabbix监控mysql、tomcat等数据时需要自定义key

2、编写check_mysql.sh脚本, 存放路径:/etc/zabbix/scripts。 并赋予脚本执行权限【chmod +x check_mysql.sh】。

# 用户名 MYSQL_USER='' # 密码 MYSQL_PWD='' # 主机地址/IP MYSQL_HOST='' # 端口 MYSQL_PORT='' # 数据连接 MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}" # 参数是否正确 if [ $# -ne "1" ];then echo "arg error!" fi # 获取数据 case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` echo $result ;; Slow_queries) result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` echo $result ;; Questions) result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" ;; esac

3、修改/etc/zabbix/zabbix_agentd.d下的userparameter_mysql.conf文件,没有就自行创建。 注释掉原有key,在最后一行新增如下数据:

UserParameter=mysql.version,mysql -V UserParameter=mysql.ping,HOME=/var/lib/zabbix mysql ping | grep -c alive UserParameter=mysql.status[*],/etc/zabbix/scripts/check_mysql.sh $1

4、重启zabbix客户端

service zabbix-agent restart

5、在zabbix服务器上添加监控主机和mysql模板,然后点击【图形】->【预览】,查看相关监控图像。

6、安装grafana-zabbix插件,通过grafana监控相关数据。


问题排查

如果发现监控没有数据,请排查如下问题:

abbix客户端是否重启脚本是否有执行权限数据库是否有权限环境变量是否有问题zabbix item列是否显示红叉【鼠标移至图标,有错误提示】

具体错误,可以查看zabbix agent打印的日志。 默认地址为:LogFile=/var/log/zabbix/zabbix_agentd.log,可在zabbix_agentd.conf中修改。

此处需要注意的是,根据错误提示修改了配置,并重启了zabbix客户端,zabbix 服务器的item错误提示并不会马上消失,监控页面也不会马上产生数据,因此不要立马判断你的修改无效,有效方法是先查看是否有错误日志打印。


错误相关

如果日志提示错误【/bin/sh^M: bad interpreter: No such file or directory】,那是shell脚本编码格式错误导致的,vim进入脚本文件,敲命令【:set ff=unix】,保存退出即可。

如果日志提示警告【mysqladmin: [Warning] Using a password on the command line interface can be insecure.】,那么需要额外定义一个.my.cnf文件,然后check_mysql.sh的用户名密码等从.my.cnf读取。

如果zabbix服务器item项总是提示【Not supported by Zabbix Agent】,不是配置问题就是版本问题,可以在zabbix server上执行zabbix_get命令来试着获取item值。 yum list all |grep zabbix-get yum install zabbix-get.x86_64 /usr/bin/zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg15]" 0.270000


其他

zabbix可以自定义监控模板,用来监控mysql、tomcat和nginx等。 监控模板网上可以搜索到,然后点击【组态】->【模板】->【汇入】即可。 由于汇入的模板默认会覆盖原有配置,所以记得事先点击模板列表左下角的【汇出】进行相关模板备份。

转载于:https://www.cnblogs.com/wangxin37/p/6398176.html


最新回复(0)