在zabbix自带的MySQL监控模板中只有14项监控项,这对于MySQL的性能监控来说是远远不够的,在网上看到一些文章推荐使用percona,通过了解,percona的模板含有190多项监控项,对MySQL的监控比较全面,当然也有一些文章推荐使用lepus,但由于公司原本已装有zabbix,和在一些数据库的交流群问过一些大神后,最终还是选择部署percona来监控MySQL,当然还有个原因就是开源,以后可根据自己的需求去修改。
下面即开始整个部署的过程(其中不包括zabbix的部署和模板的加载使用,如果需要了解,请猛击这里:http://www.jianshu.com/p/2a03d5e9f014)。
最后,本文也有可能出现一些错误的地方,欢迎拍砖。
一、环境准备
操作系统:
CentOS 6.5(zabbix_server):192.168.189.133
CentOS 6.5(zabbix_agent):192.168.189.131
数据库:
MySQL 5.6
软件:
zabbix3.4.7(zabbix_server端和zabbix_agent端都已经部署好)
percona
二、部署开始
在部署之前还是要啰嗦一下:请确保MySQL数据库添加安装好了zabbix_agent并在zabbix_server添加了zabbix_agent,即在WEB监控界面中可以监控到MySQL,并且一下的配置都是在agent(被监控机)中进行
1、安装percona库
# rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
2、安装部署监控环境
percona的监控插件是用php写的,需要通过php连接MySQL来获取相关的数据,所以需要安装相关的依赖,当然,如果你的zabbix是使用php安装的,那么可以跳过此步(我这里跳过...)
# yum -y install php php-mysql
3、安装percona的zabbix模板
# yum -y install percona-zabbix-templates
之后使用rpm安装模板
# 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
可以看到组成部分又一个shell脚本,一个php脚本,一个zabbix的配置文件,和一个zabbix模板xml文件,其中主要用途如下:
get_mysql_stats_wrapper.sh:用于监控的脚本
ss_get_mysql_stats.php:存放连接数据库的信息
userparameter_percona_mysql.conf:用户自定义配置项文件
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml:zabbix的模板,这个是适用于zabbix2.x版本的,但由于这里使用的是zabbix3.x版本,所以后面会给出某网友改写的适用于3.x版本的下载地址
4、复制用户自定义配置项文件到zabbix配置目录
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.d/
5、登录mysql,添加授权监控用户
mysql > grant select,process,replication client on *.* to 'zabbix'@'192.168.189.131' identified by '123456';
mysql > flush privileges;
6、修改php文件
# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
修改以下内容:
$mysql_user = 'zabbix_percona';
$mysql_pass = '123456';
7、修改监控脚本中的host项:
# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
修改以下内容:
HOST=192.168.189.131
8、测试监控脚本是否可用
# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
如果监控可用,执行以上命令后会显示一个数字
在server端测试:
# /usr/local/zabbix/bin/zabbix_get -s 192.168.189.131 -k "MySQL max-connections"
正常情况下能出现一个数字,并不会报错
异常情况最后提及
11、下载模板:
如果使用的是zabbix2.x版本,那么直接导出xml文件到本地,然后执行以下步骤即可,如果使用的是3.x版本,那么可以在此网址下载到相应的模板文件:http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml
10、进入web界面导入模板:
过几分钟即可出现监控结果
11、可能遇到的问题:
1、在server端使用
# /usr/local/zabbix/bin/zabbix_get -s 192.168.189.131 -k "MySQL max-connections"
命令测试的时候有可能会出现以下问题:
这是由于server在agent上的/tmp/host-mysql_cacti_stats.txt文件没有权限
只要将其删除之后重建即可
重建方法:再次执行以上命令即可
最后结果如下:
2、在web界面添加了模板之后在“最新数据”模块查看发现监控的名称都为灰色(不能监控)
例如:
查看:配置->主机->找到对应的主机->点击监控项
找到对应的监控项:
根据后面红色叹号的提示来修复即可,一般是一些比如数据库权限没弄好或者问题1的问题导致,也有可能是配置配置文件的时候出现错误,排查一下即可
暂时能找到的只有这些问题,如有再发现的问题再补充!
参考:http://www.fblinux.com/?p=599
关于各个监控项意义:http://www.jianshu.com/p/516955dd3099