12-MySQL监控之percona监控插件6 min read

  • A+
所属分类:Zabbix

    

    目录

       1. 简介

       2. 安装 

       3. 配置 

          3.1 配置文件配置 

          3.2 zabbix前端配置 

 

1. 简介

   

percona是和MariaDB一样是MySQL的一个分支,在功能和性能上较MySQL有着明显的提升,并且提供一些非常有用的诊断插件工具。其中之一就是percona zabbix监控插件,因为perconaPHP写的,所以使用它必须有php环境,也是通过php连接MySQL来获取MySQL相关的监控数据。他是写的php监控mysql的一个脚本,把MySQL的监控性能指标全都拿出来,然后自己做了一个模板。当然你写别的也可以。

   

percona官网:https://www.percona.com

   

2. 安装

   

安装环境:

Hoatname

IP

zabbix角色

系统

linux-node1

192.168.56.11

zabbix-server

CentOS6.7

linux-node2

192.168.56.12

zabbix-agent

CentOS6.7

   

补充说明:

  • zabbix-server/zabbix-agent 已经部署完毕,本文只部署 percaona
  • 监控 linux-node2 的 MySQL服 务
  • linux-node1/linux-node2 以下简称 node1/node2

    

percona监控插件下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/%0A

percona官方安装文档:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html#configure-zabbix-agent%0A

 

1.node2安装php环境(如已安装请忽略)

  1. #CentOS6安装php环境  
  2. rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm        #安装php特定源  
  3.   
  4. #安装php  
  5. yum -y install php php-mysql  

  

2. node2安装percone插件

安装法1:

  1. [root@linux-node2 ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm  
  2. Retrieving https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm  
  3. warning: /var/tmp/rpm-tmp.rRytRu: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY  
  4. Preparing...########################################### [100%]  
  5.    1:percona-zabbix-template########################################### [100%]  
  6.    
  7. Scripts are installed to /var/lib/zabbix/percona/scripts  
  8. Templates are installed to /var/lib/zabbix/percona/templates  

 

安装法2:

  1. yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm  
  2. yum install percona-zabbix-templates  

  

percona插件 rpm包本文下载地址:

   https://www.linuxgogo.com/repodata/RPM/CentOS_6/Zabbix/3.4.7/percona/percona-zabbix-templates-1.1.8-1.noarch.rpm

     

3. 配置

    

3.1 配置文件配置

   

在安装好后percona后会在安装后查看安装的相关文件,会生成/var/lib/zabbix/percona目录,该目录下只有两个子目录,一个存放模板一个存放脚本。

  1. [root@linux-node2 ~]# rpm -ql percona-zabbix-templates  
  2. /var/lib/zabbix/percona  
  3. /var/lib/zabbix/percona/scripts  
  4. /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh   #被调用获取key值的shell脚本  
  5. /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php          #用来获取mysql监控信息的php脚本  
  6. /var/lib/zabbix/percona/templates  
  7. /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf  #存放键值  
  8. #以下是模版(模版导出来就是xml格式,所以这里是xml文件)  
  9. /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml           

percona监控在取监控数值时需要用户权限,所以需要数据库的用户和密码,用户和密码放在 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf 文件,这个文件需要创建,里面存放用户名和密码,在ss_get_mysql_stats.php脚本中有一段配置如下,意思是会在本地找一个以.cnf后缀名结尾的配置文件用它里面的用户名和密码,找到就会读取里面的用户名和密码,没找到文件或者里面的用户和密码不对则获取不到值。所以我们要在路径下创建一个 ss_get_mysql_stats.php.cnf 的文件。

12-MySQL监控之percona监控插件

 

  1. [root@linux-node2 scripts]# cat ss_get_mysql_stats.php.cnf    
  2. <?php    
  3. $mysql_user='root';          #mysql中用来登陆监控mysql数据库的用户    
  4. $mysql_pass='123456';    #mysql用户密码    
  5.    
  6. [root@linux-node2 scripts]# pwd    
  7. /var/lib/zabbix/percona/scripts    

      提示:在生产环境中为了安全这里是需要创建一个专门用来监控mysql的一个用户和密码,所以要注意对这个用户的授权。我这里直接用的 root 用户

   

创建zabbix percona命令参考:

  1. GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbox_percona'@'localhost' IDENTIFIED BY "percona123123";  

      

测试:

  1. # cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf  
  2. …………  
  3. UserParameter=MySQL.Query-time-count-09,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ou  
  4. UserParameter=MySQL.Key-read-requests,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg  
  5. …………  
  6.   
  7. #获取结果如下:  
  8. [root@linux-node2 scripts]# ./get_mysql_stats_wrapper.sh ou  
  9. 0  
  10. [root@linux-node2 scripts]# ./get_mysql_stats_wrapper.sh gg  
  11. 2  

     提示:以上的0输出也代表是获取到值,如果没有获取到数值,根本不会有输出,马上配置完后取值也可能不会有输出,需要稍微等一下,因为有一定的延迟,并不是实时的。

    

注意点提示

   1. 分shell脚本get_mysql_stats_wrapper.sh中用户的HOST变量配置是配置在ss_get_mysql_stats.php.cnf的用户主机域。

  1. [root@linux-node2 scripts]# vim get_mysql_stats_wrapper.sh  
  2. ………………  
  3. HOST=localhost  
  4. ………………  

 

  2. MySQL数据库的socker还有端口号,比如socket不是在默认的/var/lib/mysql/mysql.sock路径下,需要在 ss_get_mysql_stats.php 中配置指定

  1. [root@linux-node2 ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php  
  2. ......  
  3.    ......  
  4. $mysql_user = 'cactiuser';  
  5. $mysql_pass = 'cactiuser';  
  6. $mysql_port = 3306;  
  7. $mysql_socket = '/tmp/mysql.sock';  
  8. $mysql_flags = 0;  
  9. $mysql_ssl  = FALSE;   # Whether to use SSL to connect to MySQL.  
  10. $mysql_ssl_key  = '/etc/pki/tls/certs/mysql/client-key.pem';  
  11. $mysql_ssl_cert = '/etc/pki/tls/certs/mysql/client-cert.pem';  
  12. $mysql_ssl_ca   = '/etc/pki/tls/certs/mysql/ca-cert.pem';  
  13. $mysql_connection_timeout = 5;  
  14.    ......  
  15.        ......  

 

3.2 zabbix前端配置

   

在node2上把模版zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xm下载下来然后倒入到zabbix前端:

  1. cd /var/lib/zabbix/percona/templates  
  2. sz zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml  

      提示:这里不用下载,导入这个会报错,下面有说明

      

开始导入:

12-MySQL监控之percona监控插件

   

12-MySQL监控之percona监控插件

   

导入失败:

12-MySQL监控之percona监控插件

  

失败原因:模版不匹配,是因为percona官方上1.1.8还是zabbix2.0的版本模版,所以需要跟新上来匹配zabbix3.0的模版规范,而且这个zabbix模版还是直接copycacti模版,比较粗糙,用more查看就可以看到里面都是cacti的内容

参考博文:http://blog.csdn.net/mchdba/article/details/51447750

 

解决方法:下载zabbix3.0匹配的模版)然后导入

下载地址链接: https://pan.baidu.com/s/1Qp-8rODY5-IKIjekeKD-wQ    密码:  8qyj

   

导入成功:

12-MySQL监控之percona监控插件

 

 

监控node2上面的MySQL,链接模板

将获取键值的配置文件copyzabbix获取键值数值的指定目录:

  1. cd /var/lib/zabbix/percona/templates  
  2. cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/  
  3.   
  4. #重启agent  
  5. /etc/init.d/zabbix-agent restart  

   

授权percona存放值的txt文件权限用户,可以看下这个这个文件的内容,里面都是userparameter_percona_mysql.conf获取到的数值,这个文件是在shell脚本get_mysql_stats_wrapper.sh中定义的。是一个缓存文件

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

    

测试

在监控mysqlagent服务上查看监控mysql的键值

  1. [root@linux-node2 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf  
  2. UserParameter=MySQL.Sort-scan,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt  
  3. UserParameter=MySQL.slave-stopped,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh jh  
  4. …………  
  5.    ………..  

  

zabbix-server上使用zabbix_get获取键值:

  1. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k MySQL.Sort-scan  
  2. 12       #获取成功  
  3. [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k MySQL.slave-stopped  
  4. 0         #获取成功  

     

配置zabbix-agent前端主机链接模板。

12-MySQL监控之percona监控插件

   

12-MySQL监控之percona监控插件

  

12-MySQL监控之percona监控插件

  

获取数据成功,到这里配置完毕。


    

zhaoyulin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: