zabbix使用Percona插件监控MySQL状态(附zabbix3.x模板)

Percona监控插件特性:

  • 通过zabbix agent进行数据轮询采集
  • 预定义的触发器
  • 图形集中展现(Screen,聚合图形)
  • 默认300秒轮询间隔,使用php脚本采集数据,并写入缓存文件,zabbix agent读取缓存文件收集数据。除特定用于触发器的健康检查项目外,在轮询间隔内,PHP脚本只进行一次采集。

系统要求:

  • zabbix版本要求2.0以上,支持目前最新的3.2版本(模板不支持,需要使用附件中的模板)
  • 被监控MySQL主机需要安装zabbix agent以及php,php-mysql扩展包

Percona监控插件下载地址:

https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/

安装说明:

此文中使用CentOS安装,兼容CentOS 5、CentOS 6、CentOS 7

1、从Percona官网下载并安装percona-zabbix-templates

CentOS 5

$ rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/5/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

CentOS 6

$ rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

CentOS 7

$ rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

安装完成后,所有文件将位于/var/lib/zabbix/percona目录下

2、安装php及php-mysql

$ yum -y install php php-mysql

3、创建MySQL监控账号

官方文档中使用root账号监控,但我不建议这么做,尽量使用权限较低的账号进行监控,这里创建一个名为zabbix的MySQL监控账号

$ mysql -u root -p

mysql> GRANT USAGE,PROCESS,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO zabbix@localhost IDENTIFIED BY ‘zabbix’;

4、修改php脚本中的账号密码

$ vi /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

$mysql_user = ‘zabbix’;    # MySQL用户名
$mysql_pass = ‘zabbix’;    # MySQL密码
$mysql_port = 3306;    # MySQL服务端口
$mysql_socket = ‘/tmp/mysql.sock’;    # 默认为NULL,若需要指定socket文件需修改该参数值

5、测试脚本,执行未报错且输出为一串数字则表面测试通过

$ /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
5146

6、配置~zabbix/.my.cnf,添加用户名密码

$ vi ~zabbix/.my.cnf

[client]
user = zabbix
password = zabbix

7、测试脚本,执行未报错且输出为0或1则表面测试通过

$ sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
0

若遇到以下报错信息,请修改脚本中的mysql命令为mysql命令的绝对路径或者使用环境变量

报错信息:/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh: line 19: mysql: command not found

编辑/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh

RES=`HOME=~zabbix mysql 改为 RES=`HOME=~zabbix /usr/local/mysql/bin/mysql

8、复制zabbix agent配置文件(这里的zabbix agent配置文件的目录为/etc/zabbix/zabbix_agentd.d/)

 $ cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

9、重启zabbix agent

CentOS 5 & CentOS 6

$ service zabbix-agent restart

CentOS 7

$ systemctl restart zabbix-agent

10、测试完成后会生成/tmp/localhost-mysql_cacti_stats.txt缓存文件,需要删除该文件,才能进行正常监控,否则监控会报错

$ rm -f /tmp/localhost-mysql_cacti_stats.txt

11、在zabbix web上导入模板并添加主机监控即可

注意zabbix2.x和zabbix3.x所使用的模板不兼容,安装包中的模板文件为/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.7.xml,该模板文件仅支持zabbix2.x,zabbix3.x在导入过程中会报错,zabbix3.x请使用下面提供的模板文件(原生模板修改并添加mysqld进程数监控,若无需要删除监控项Total number of mysqld processes即可)

zabbix3.x模板文件:zabbix_agent_template_percona_mysql_server_ht_3.x-sver1.1.7.xml

另外,如果遇到告警Slave is stopped on XXX,不必慌张,这是对于MySQL slave服务器所配置的触发器告警,确认该服务器不是slave服务器后可以将该触发器禁用。

转载请注明出处:http://www.madown.com/2017/06/06/zabbix使用Percona插件监控MySQL状态(附zabbix3.x模板)

发表评论

电子邮件地址不会被公开。 必填项已用*标注