zibbix默认监控项里面没有mysql项,如果要对mysql进行监控就需要先在server端的zabbix界面上添加里面自带的那个mysql template,然后在zabbix-agent端添加几个脚本:
1、/etc/zabbix/zabbix_agentd.conf.d/mysql_status.conf ,内容如下:
UserParameter=mysql.status[*],/usr/local/zabbix/bin/mysql_status $1
UserParameter=mysql.ping,/usr/bin/mysqladmin ping | grep alive | wc -l
UserParameter=mysql.version,/usr/bin/mysql -e "select version();" | awk 'END {print}'
由于调用mysqladmin和mysql一般需要用户名密码才能登入,所以需要设置一个默认的用户名密码:
2、/etc/mysql/conf.d/mysqladmin.cnf ,内容如下:
[mysqladmin]
host=127.0.0.1
user=zabbix
password=123456
socket=/var/run/mysqld.sock
3、/etc/mysql/conf.d/mysql.cnf ,内容如下:
[mysql]
host=127.0.0.1
user=zabbix
password=123456
socket=/var/run/mysqld/mysqld.sock
4、/usr/local/zabbix/bin/mysql_status,内容如下:
#!/bin/bash
#use zabbix to monitor mysql status
#carl 20150316 1st
mysql=/usr/bin/mysql
var=$1
mysql -e 'show global status' | grep -v Variable_name | grep "\b${var}\b"| awk '{print $2}'
改完,重启zabbix-agent服务,server端就有mysql项的监测了。
测试:
docker exec -i zabbix sh -c 'zabbix_get -s192.168.1.104 -p10050 -k"mysql.ping"'