博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix使用percona插件监控mysql
阅读量:5139 次
发布时间:2019-06-13

本文共 2995 字,大约阅读时间需要 9 分钟。

1、添加percona仓库。

# yum install -y https://mirrors.tuna.tsinghua.edu.cn/percona/yum/percona-release-latest.noarch.rpm

2、安装插件。

# yum -y install percona-zabbix-templates# 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

3、这个项目是php写的,需要安装php和php-mysql。(这个在官网有说明)

# yum install -y php php-mysql

4、拷贝配置文件到配置目录,并重启zabbix-agent。

# cp -a /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/# rm -f /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf# service zabbix-agent restart

5、授权监控用户,使其能获取数据。

# mysql -uroot -p> grant all privileges on *.* to zabbix@localhost identified by 'PASS';> flush privileges;> quit;

6、修改程序里面的用户密码,使其能连接到mysql。

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php$mysql_user = 'zabbix';$mysql_pass = 'PASS';

7、修改监控脚本。脚本里面是直接执行mysql命令获取数据的,但是没有指定用户名和密码,导致连不上数据库。为mysql命令加上用户名密码参数即可。

# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.shRES=`HOME=~zabbix mysql -uzabbix -pPASS -e 'SHOW SLAVE STATUS\G' 2> /dev/null | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

或者更简单一点,直接添加一个mysql的客户端验证配置。

# vim ~zabbix/.my.cnf[client]user = zabbixpassword = PASS

8、测试脚本是否能获取到数据。

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg16# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh jg0# sudo -u zabbix -H /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave1# sudo -u zabbix zabbix_get -s 10.0.1.61 -k 'proc.num[mysqld]'1# sudo -u zabbix zabbix_get -s 10.0.1.61 -k 'mysql.ping'1

9、导入模板。在这里踩到坑,安装包提供的插件版本是1.1.8,导入过程中报错。经过一番查询,可以使用1.1.6。

可以从这里下载1.1.6版本的文件:https://www.percona.com/downloads/percona-monitoring-plugins/

按理说,导入模板之后,链接到主机就可以查看到数据了。不过,等了很久一直没数据,又是经过一番查询...

插件创建了一个状态文件,然后从中读取数据,但是这个文件第一次启动的时候所属用户是root,而zabbix的启动用户是zabbix,没有权限读取这个文件,所以页面上一直没有数据。

解决办法很简单,删除这个文件即可,程序会自动创建一个权限正确的新文件。

# rm -f /tmp/localhost-mysql_cacti_stats.txt

10、到这里就可以看到数据了。

1005945-20180311040129854-1617384953.png


补充:

如果把默认端口3306改成了别的端口,也会造成报错读取不到数据。

在/var/lib/zabbix/percona/scripts目录下有两个脚本,经过仔细查看,发现get_mysql_stats_wrapper.sh在指定读取的状态文件时路径是写的是CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt",而在/tmp/目录下是一个带端口的文件localhost-mysql_cacti_stats.txt:3310,这样肯定就读不到了。然后去找文件是在哪里生成的,查看另一个php脚本,果然做了判断处理,端口不是3306的话就在文件名后面加上端口号。

问题找到了,将源码中的判断部分去掉就好了。

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php$cache_file = "$cache_dir/$sanitized_host-mysql_cacti_stats.txt" . ($port != 3306 ? ":$port" : '');改成:$cache_file = "$cache_dir/$sanitized_host-mysql_cacti_stats.txt";

参考:

https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html
https://blog.csdn.net/liang_operations/article/details/81868668

转载于:https://www.cnblogs.com/keithtt/p/8542987.html

你可能感兴趣的文章
LVM快照(snapshot)备份
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
npm 常用指令
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
iOS按钮长按
查看>>
CSS属性值currentColor
查看>>
[Leetcode|SQL] Combine Two Tables
查看>>
《DSP using MATLAB》Problem 7.37
查看>>
ROS lesson 1
查看>>