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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_32582203/article/details/87190946

本文链接:http://www.icoder.top/blog/?p=816

本文中所涉及安装包及模板: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

展开阅读全文

zabbix的mpm插件监控mysql遇到的坑

07-10

mpm插件尽是坑啊,详细的安装mpm见http://www.cnblogs.com/jiangxu67/p/3701911.htmlrnrnmpm插件的几个坑得吐槽下rnrn[root@localhost cache]# /usr/local/mpm/FromDualMySQLagent.pl /etc/zabbix_mpm.conf rn1rn[root@localhost ~]# tail -f /var/log/zabbix/FromDualMySQLagent.log rn29318:2014-05-07 14:03:45.553 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.rn29318:2014-05-07 14:03:45.575 - WARN: 127.0.0.1, 10051, zabbix_serverrn29318:2014-05-07 14:03:45.575 - WARN: Connection to zabbix server failed (rc=1305)!rn29318:2014-05-07 14:03:45.676 - INFO: FromDual Performance Monitor for MySQL run finshed (rc=0).rnrn测试及报错分析rn如上看见的报错了,为什么报错呢?原来是mpm插件会检查与zabbix server是否连接rn扒了mpm代码rnFromDualMySQLagent.pm的checkConnectionToZabbixServerrnsub checkConnectionToZabbixServerrnrn my $pServer = $_[0];rn my $pPort = $_[1];rn my $pHost = $_[2];rnrn my $rc = 0;rnrn if ( $main::gParameter'Debug' >= INFO ) &FromDualMySQLagent::mylog($main::gParameter'LogFile', INFO, ' ' . (caller(0))[3]); rnrn # This tag does NOT exist in templates!!!rn my $lKey = 'FromDual.server.check';rn my $lValue = 1;rnrn上面说的很清楚了,这个标签不在模板中,是的,我查了web界面上的key,确实没有'FromDual.server.check'rn如果想不报错的话,那么就得把'FromDual.server.check' 改为其他的在模板里有的键rn不知道mpm的作者是怎么想的,这个键没有,你还在源代码上写,我这种小白习惯了拿来就用,没有修改源码的习惯啊rnrn改完之后再测试,好吧,还有错rnFromDualMySQLagent.log 然后开始报:rn3801:2014-05-09 14:53:26.283 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.rn3801:2014-05-09 14:53:26.301 - ERR : Load of cache file failed. rc=1301rn3801:2014-05-09 14:53:26.301 - INFO: FromDual Performance Monitor for MySQL run finshed (rc=0).rnrn最后查到原因:下面的是截取一篇博客的回复rn最近,经常受到一些朋友发来的问题,说按照上面的配置,还是报“Load of cache file failed. rc=1301”错,我最近又做了一次,的确有这个错!rn下面是我对这种故障的处理:第一: [client100] 这里的 Modules = server process mysql innodb 只写你已经用到的,没有配置就不要写上;第二,mpm 这个模板不要写上,写上之后,读取的参数,最后一行有空行,在发送数据时,会报错,无法发送;第三,如果还报错,手动分解cache里的文件,逐个发送,看哪个参数显示有发送失败的,如果有,先去掉看是否正常,如果正常,再来解决这个发送失败的问题!rnrn是的,没错,mpm 写上之后,读取的参数,最后一行有空行,在发送数据时,会报错,无法发送rn这是什么情况?有这个模块,但是就是不能用,有何用?rn其实也可以在源码里更改,使mpm模块不会产生空格rnrnzabbix server通过mpm模块的一个键每隔10秒检查mpm模块是否存活,如果mpm存活,就会获得mpm插件中你填写的模块的数据rn如果你不加mpm模块的话,那么就没法每隔10秒向zabbix server发送数据,但是你加了mpm模块,如果没有修改源码的话,就会出现上面的问题 ERR : Load of cache file failed. rc=1301rn好了,源码我修改了,不会出现空行了,数据也能产生了,但是还是有错rn还是这错 ERR : Load of cache file failed. rc=1301rnrnFromDualAgentCache.zabbixserver.cache这个文件,在不断变大,数据有一部分发送failedrnwhat's the fuck!rn果断换成使用percona-monitoring-plugins监控了 论坛

没有更多推荐了,返回首页