zabbix默认自带mysql监控模板,但比较简单,这里就简单改良自带模板设置了几个常用自定义key传参数,进行一个当前mysql配置、运行状态以及mysql宕机、慢查询触发器报警的监控。
说明:当前只是一些简单的监控,达不到DBA的要求,不过原理是一样的,其他监控参数 可以自行添加监控项执行获取需要的参数。
1,下载监控模板并导入,这里文章更新采用的是zabbix 3.4。需要监控的主机添加这个模板。我自己改良的mysql监控模板下载地址:
http://download.21yunwei.com/zabbix/mysql/zab_mysql.tar.gz
2,要监控的服务器上创建可以登录mysql的用户
grant usage on *.* to 'zabbix'@'localhost' identified by 'zabbix'; flush privileges;
3,编写mysql采集脚本,这里我自己简单写了一个:
#!/bin/bash #use zabbix to monitor mysql for single #author: 21yunwei mysql=/usr/bin/mysql conf=$1 stat=$2 flag=$# user=zabbix password=zabbix if [ $flag == 1 ] ;then #server mysql_configure info cmd_conf=`${mysql} -u${user} -p${password} -e 'show variables '|grep "\b${conf}\b"|awk '{print $2}'` echo $cmd_conf elif [ $flag == 2 ];then #server mysql_status info cmd_status=`${mysql} -u${user} -p${password} -e 'show global status'|grep -i -v 'Variable_name'|grep "\b${stat}\b"|awk '{print $2}'` echo $cmd_status fi
4,修改agent端配置文件,启用自定义参数。注意修改完以后需要重启agent才能生效。
#mysql monitor UserParameter=mysql.ping,/usr/bin/mysqladmin ping -uzabbix -pzabbix | grep -c alive UserParameter=mysql.config[*], /home/yunwei/mysql_zbx.sh $1 UserParameter=mysql.status[*], /home/yunwei/mysql_zbx.sh $1 $2
制作了两个简单图形:
再次说明:当前只是一些简单的监控,监控的参数达不到DBA的要求,不过原理是一样的,其他监控参数 可以自行添加监控项执行获取需要的参数,比如show global status里边的innodb参数、mysql错误日志监控等等。
转载请注明:21运维 » [原创]通过zabbix 使用改良自带模板Template App MySQL监控服务器上的mysql