Percona Monitoring Plugins For Zabbix配置文档——在zabbix中使用Perona插件监控Mysql

本文中所涉及安装包及模板:https://github.com/zhangrj/Percona-Mysql-Monitor-Plugin-For-Zabbix-3.0

一、系统要求

  • Zabbix 2.0.x. 及以上版本,实际测试版本zabbix3.4.1
  • 被监控端安装Zabbix agent、php、php-mysql

二、zabbix agent端配置

1、安装 percona-zabbix-templates

[root@localhost ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

文件将被安装到/var/lib/zabbix/percona/,其中/var/lib/zabbix/percona/scripts文件夹中为监控脚本,/var/lib/zabbix/percona/templates文件夹中为zabbix监控模板与agent配置文件。

2、复制配置文件到zabbix配置文件夹

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

3、确保/etc/zabbix/zabbix_agentd.conf中含有

### Option: Include
#       You may include individual files or all files in a directory in the configuration file.
#       Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=

Include=/etc/zabbix/zabbix_agentd.d/*.conf

4、重启zabbix agent

systemctl restart zabbix-agent

5、配置数据库连接脚本,更改用户名、密码、socket字段

[root@localhost scripts]# vi /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

$mysql_user = 'zabbix';
$mysql_pass = 'passwd';
$mysql_port = 3306
$mysql_socket = '/var/lib/mysql/mysql.sock';

6、测试php脚本,结果返回一个数字

[root@localhost scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
0

7、配置~zabbix/.my.cnf

~zabbix默认为/var/lib/zabbix

[root@localhost zabbix]# vi + /var/lib/zabbix/.my.cnf

[client]                         
user = zabbix
password = passwd

8、测试监控脚本

[root@localhost scripts]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
0

此处我们看到了一个报错,即我们此处配置的数据库监控账户权限不足,可将数据库用户更改为root用户或者为监控账户添加SUPER、REPLICATION CLIENT权限:

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY ‘passwd’;
FLUSH PRIVILEGES; 

再次测试脚本:

[root@localhost zabbix]# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
0

无报错,返回0或1

四、zabbix web端配置

1、下载并导入模板

从 /var/lib/zabbix/percona/templates 文件夹中下载模板并从zabbix web界面导入。在zabbix 2.2.x中,模板可以成功导入,但在zabbix 3.4.x中,导入模板时会报错:

Invalid tag "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" is expected.

解决思路如下:

根据提示可知<date>标签中的时间戳格式不正确,将模板文件第三行更改为错误提示中的时间戳格式:

<date>2019-02-12T13:47:30Z</date>

重新尝试导入模板,又有新的报错:

Invalid tag "/zabbix_export/templates/template(1)/items/item(1)": the tag "snmp_community" is missing.

根据提示可知缺失标签snmp_community,在错误提示位置添加<snmp_community/>,再次尝试导入模板,又有新的报错:

Invalid tag "/zabbix_export/templates/template(1)/items/item(1)": the tag "snmp_oid" is missing.

大致可以猜到,此模板不适用于zabbix 3.0以上版本,我从zabbix 3.4中导出了一份模板并与此模板对比,发现3.0模板多出的标签非常多,简单的手动修改已经不现实。

于是我尝试将此模板先导入zabbix 2.2中,再从zabbix 2.2中导出,将导出的模板再此尝试导入zabbix 3.4中,最终成功导入。如果读者没有zabbix 2.2的环境,可使用我处理过的模板,见:https://github.com/zhangrj/Percona-Mysql-Monitor-Plugin-For-Zabbix-3.0

2、为被监控主机链接模板

为被监控的Mysql服务器链接模板 “Percona MySQL Server Template”,观察监控数据是否正常。观察到报错:

Value "rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
0" of type "string" is not suitable for value type "Numeric (float)"

可知zabbix用户对文件localhost-mysql_cacti_stats.txt操作权限不够,执行:

chown zabbix:zabbix /tmp/localhost-mysql_cacti_stats.txt

解决。

如果mysql使用的端口不是默认端口3306

则除了在ss_get_mysql_stats.php文件中修改mysql端口,同时也要在get_mysql_stats_wrapper.sh中将所有$HOST-mysql_cacti_stats.txt更改为
$HOST-mysql_cacti_stats.txt:port,另将文件/tmp/$HOST-mysql_cacti_stats.txt重命名为
$HOST-mysql_cacti_stats.txt:port

继续观察监控数据,知道所有监控项数据刷新且无报错,至此,配置完成。

监控图形:Mysql Connections

关于 “Percona Monitoring Plugins For Zabbix配置文档——在zabbix中使用Perona插件监控Mysql” 的 1 个意见

发表评论

电子邮件地址不会被公开。