文章目录

1.Percona介绍
Percona是和MariaDB一样是MySQL的一个分支,在功能和性能上较MySQL有着明显的提升,并且提供一些非常有用的诊断插件工具。
其中之一就是percona zabbix监控插件,因为percona是PHP写的,所以使用它必须有php环境,也是通过php连接MySQL来获取MySQL相关的监控数据。
Percona是写的php监控mysql的一个脚本,把MySQL的监控性能指标全都拿出来,然后自己做了一个模板,当然我们也可以自己去写一些 监控指标,写到对应的配置文件中。
2.Percona监控方式介绍
使用percona监控数据库,我们先部署好zabbix-server与zabbix-agent,部署完成后,我们只需要使用percona监控mysql数据库即可;
本篇文章只介绍percona监控lnux服务器中MySQL服 务的数据;
3.Percona组件安装配置
注:
当前Percona插件已经不提供服务了,官网上我没又找到rpm包,可以通过其他方式找到对应的rpm包;
1)服务器安装Percona插件
客户端安装Percona,我们需要安装php环境,需要用php执行程序连接数据库查询相应的状态
#安装Percona仓库源
rpm -ivh https://repo.percona.com/yum/percona-release-latest.noarch.rpm
#使用yum或者dnf工具安装(不同系统版本使用的安装工具不同)
yum clean all && yum makecache && yum install percona-zabbix-templates
#安装ok后,查看相关配置
[root@server ~]# 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.8.xml
2)环境检查
#客户端服务器防火墙关闭
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
# 查看php环境
yum install php php-mysql -y
php -v
3)配置Percona
Percona监控在取监控数值时需要数据库的用户和密码,Percona配置用户和密码放在ss_get_mysql_stats.php文件中,这个文件需要创建,里面存放用户名和密码,在ss_get_mysql_stats.php脚本中有一段配置如下,意思是会在本地找一个以.cnf后缀名结尾的配置文件用它里面的用户名和密码,找到就会读取里面的用户名和密码,没找到文件或者里面的用户和密码不对则获取不到值。所以我们要在路径下创建一个 ss_get_mysql_stats.php.cnf 的文件
# 备份配置
cp /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.bak
# 脚本配置文件放置到agent配置下
cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agent2.d/
# 修改插件脚本配置信息
[root@server ~]# egrep '^[^#| ]' /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php | head -10
<?php
if ( !array_key_exists('SCRIPT_FILENAME', $_SERVER)
$mysql_user = 'zabbix'; #数据库用户
$mysql_pass = 'Zabbix@21'; #数据库密码
$mysql_port = 3306;
$mysql_socket = NULL;
$mysql_flags = 0;
$mysql_ssl = FALSE; # Whether to use SSL to connect to MySQL.
$mysql_ssl_key = '/etc/pki/tls/certs/mysql/client-key.pem';
$mysql_ssl_cert = '/etc/pki/tls/certs/mysql/client-cert.pem';
# 测试(在配置中随便赵两三项测试一下)
cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
.......
UserParameter=MySQL.Query-time-count-07,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh os
UserParameter=MySQL.Key-read-requests,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
UserParameter=MySQL.running-slave,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
.......
[root@server ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
6
[root@server ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh os
0
[root@server ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
0
#zabbix agent重启
systemctl restart zabbix-agent.service
#客户端测试数据是否可以正常获取
[root@server ~]# cd /var/lib/zabbix/percona/scripts/
[root@server /var/lib/zabbix/percona/scripts]# sh get_mysql_stats_wrapper.sh il
912
[root@server /var/lib/zabbix/percona/scripts]# sh get_mysql_stats_wrapper.sh ll
0
# 模板导出上传到,导入到zabbix web
sz /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
4.zabbix WEB模板导入
模板导入很简单,如下四部即可;
导入由于模板版本的不匹配,导致如下错误
模版不匹配,是因为percona官方上1.1.8还是zabbix2.0的版本模版,所以需要跟新上来匹配zabbix3.0的模版规范,而且这个zabbix模版还是直接copy的cacti模版,比较粗糙,用more查看就可以看到里面都是cacti的内容
问题解决:导入zabbix3.0之上模板
模板链接:点击下载即可
如下表示导入成功
5.zabbix 状态查看
模板关联及状态监控项确认
监控主机数据查看
监控数据图形
聚合图新