zabbix 添加MySQL监控

下载官方RPM包:

[root@localhost ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
获取https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
准备中...                          ################################# [100%]
	软件包 percona-zabbix-templates-1.1.6-1.noarch 已经安装

安装后会生成以下几个文件:

[root@localhost ~]# rpm -ql percona-zabbix-templates
/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

get_mysql_stats_wrapper.sh 会调用 ss_get_mysql_stats.php这个脚本,实际收集数据的是php脚本,还需要安装php-mysql这个扩展。

userparameter_percona_mysql.conf    是key的配置文件

zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml    是监控模板


复制监控脚本到scrpits目录下(根据自己的环境):

[root@localhost ~]# cp /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh /usr/local/zabbix/scripts/
[root@localhost ~]# cp /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php  /usr/local/zabbix/scripts/
[root@localhost ~]# chmod +x /usr/local/zabbix/scripts/get_mysql_stats_wrapper.sh

复制key配置文件到zabbix_agentd.conf.d目录下

[root@localhost ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

注意 userparameter_percona_mysql.conf 里要指定正确的 get_mysql_stats_wrapper.sh 脚本的绝对路径。

重启zabbix-agentd

[root@localhost ~]# service zabbix-agentd restart

创建数据库监控账号

mysql> GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';FLUSH PRIVILEGES;

根据自己的实际环境稍微修改一下脚本

[root@localhost scripts]# vim get_mysql_stats_wrapper.sh
CMD="/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"    #实际环境php绝对路径
RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`        #HOME=~zabbix mysql -实际mysql绝对路径,我的是/usr/local/mysql/bin/mysql -uzabbix -pzabbix

[root@localhost scripts]# vim ss_get_mysql_stats.php 
$mysql_user = 'zabbix';    #用户名
$mysql_pass = 'zabbix';    #密码
$mysql_port = 3306;        #端口

测试脚本

[root@localhost scripts]# php ss_get_mysql_stats.php --host localhost --items gg
ERROR: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)[root@hp20 scripts]#

因为php脚本会去这个目录找socket文件(没找到php脚本在哪定义socket....),而我的socket在/tmp下,可以做个软连接过去.这里还有一个小坑,就是如果手动测试这个php脚本,会创建/tmp/localhost-mysql_cacti_stats.txt 文件,且文件是当前登陆用户权限。测试完后记得删除这个文件,或者改为zabbix用户

[root@localhost scripts]# mkdir -p /var/lib/mysql/
[root@localhost scripts]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
[root@localhost scripts]# chown -R mysql:mysql /var/lib/mysql/











你可能感兴趣的:(zabbix 添加MySQL监控)