zabbix监控mysql

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