Zabbix自带了监控上一章已经介绍过了,但是自带的监控数据相对比较少,然而percona也出了一些监控,相对zabbix自带的模版,提供了很多监控数据
监控环境:
Zabbix server: hostname:PS01 ,192.168.199.151
mysql服务器:hostname:qbm-0919 ,192.168.199.10
在mysql服务器安装zabbix-agent, php, php-mysql,安装zabbix-agent需要安装zabbix源,之前有介绍
# yum install zabbix-agent php php-mysql
# rpm -qa zabbix-agent php php-mysql
zabbix-agent-3.2.11-1.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
配置/etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.199.151
ServerActive=192.168.199.151
Hostname=qbm-0919
Include=/etc/zabbix/zabbix_agentd.d/*.conf
安装percona-zabbix-templates, 相关rpm http://download.youkuaiyun.com/download/mic0601/10189797可以下载
# rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm
安装之后,产生相关文件
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml
首先我们去看看userparameter_percona_mysql.conf 是mysql的监控配置文件
很多监控项,如第一行,
监控执行命令:/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt
UserParameter=MySQL.Sort-scan,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt
从此可以继续去寻找
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh,里面可以看出,当执行这个命令的时候,回去调用ss_get_mysql_stats.php文件,而且会读取 /tmp/$HOST-mysql_cacti_status.txt文件,也就是说,最终的监控数据是保存在/tmp/$HOST-mysql_cacti_status.txt中,
而再去看ss_get_mysql_stats.php会发现,最终生成/tmp/$HOST-mysql_cacti_status.txt文件的是这个php文件
也就是说:
ss_get_mysql_stats.php 是从服务器获取数据,保存到/tmp/$HOST-mysql_cacti_status.txt中
get_mysql_stats_wrapper.sh 是从/tmp/$HOST-mysql_cacti_status.txt获取相关数据
-- ------------------------------------------------------------------------------
那么接下来开始正式配置:
1,在/var/lib/zabbix/percona/templates下产生一个xml的监控模版,但是这个模版不适用与 zabbix3.0以上的版本,在这里提供了一个修改好的模版,将他导入到zabbix server中
模版地址:http://download.youkuaiyun.com/download/mic0601/10189791
在web中,配置->模版->导入->选择文件
2,把配置文件userparameter_percona_mysql.conf放在MYSQL服务器/etc/zabbix/zabbix_agentd.d/目录下
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
3,修改ss_get_mysql_stats.php,配置mysql账号和密码
# cd /var/lib/zabbix/percona/scripts
# vim ss_get_mysql_stats.php
$mysql_user = 'root';
$mysql_pass = 'xxpassword';
$mysql_port = 3306;
4,修改get_mysql_stats_wrapper.sh,注意修改前面mysql命令的位置
RES=`/usr/local/mysql/bin/mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
到此,配置完成,重新启动agent服务
# service zabbix-agent restart
测试,在zabbix server使用zabbix_get获取数据
测试没有问题,就可以添加监控了
--- --- 问题总结 --- ---
1,在zabbix_server的log文件,报错
15743:20180104:210015.947 item "qbm-0919:MySQL.State-login" became not supported: Received value [rm: cannot remove `/tmp/localhost-mysql_cacti_stats.txt': Operation not permitted0] is not
suitable for value type [Numeric (float)]
解决办法:
在agnet端,重新授权/tmp/localhost-mysql_cacti_stats.txt 权限
# chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt
2,zabbix_get获取不到数据,比如
# zabbix_get -s 192.168.199.10 -k "MySQL.pool-size" 报错,那么可以去192.168.199.10的文件
/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf 中去查找MySQL.pool-size对应的命令,
UserParameter=MySQL.pool-size,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gq
则在agent端执行此命令查看结果
而/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gq 则是php执行的出来的结果
# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gq
--- --- 当你的才华还撑不起你的梦想时,那你就应该静下心来学习 --- ---
--- --- 当你的能力还驾驭不了你的目标时,那就应该沉下心来历练 --- ---
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xm