http://blog.chinaunix.net/uid-16844903-id-3535535.html
http://www.ywnds.com/?p=6199
因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控MySQL的方式。
1)MySQL客户端需要的系统环境
percona监控zabbix的脚本是使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了:
1 |
$ yum install zabbix-agent php php-mysql |
1 2 3 4 |
$ php -v PHP 7.0.9 (cli) (built: Jul 20 2016 18:08:08) ( NTS ) $ mysql --version mysql Ver 14.14 Distrib 5.5.51, for Linux (x86_64) using readline 5.1 |
2)安装percona-zabbix-templates
1 |
$ yum install https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm |
也可配置Percona yum仓库后安装,建议配置percona的yum源,因为作为一个DBA你肯定会用到percona toolkit套件。
1 2 |
$ yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-3.noarch.rpm $ yum install percona-zabbix-templates |
3)percona-zabbix-templates配置文件介绍
1 |
$ rpm -ql percona-zabbix-templates |
1 2 3 4 5 6 7 8 9 10 11 |
# 监控获取MySQL状态的; /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh # 配置连接数据库用户名密码的,用shell来调用PHP; /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php # Zabbix-agent端监控MySQL的配置文件; /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf # Zabbix模板文件; /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml |
4)配置zabbix-agent
把配置文件复制到zabbix-agent目录下。
1 |
$ cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ |
默认zabbix-agent配置文件已经把/etc/zabbix/zabbix_agentd.d/目录include进去了。
1 2 |
$ grep Include /etc/zabbix/zabbix_agentd.conf | grep -v "^#" Include=/etc/zabbix/zabbix_agentd.d/ |
5)重新启动zabbix-agent即可
1 2 3 4 5 |
# CentOS6 $ service zabbix-agent restart # CentOS7 $ systemctl restart zabbix-agent |
6)zabbix-agent上配置MySQL连接
首先如果你要监控的MySQL不是默认的端口3306(是就忽略此步骤),则需要修改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本,小心被坑。修改端口号码文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 这里要先建好这个文件,否则会报rm权限错误; $ touch /tmp/localhost-mysql_cacti_stats.txt:3307 $ chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt:3307 # 修改端口脚本; $ vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt " 换成: CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt:3307" TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt` 换成: TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt:3307` |
如果你的MySQL是编译安装的,执行客户端命令需要绝对路径的话,你可能还需要更改脚本中的执行命令语句:
1 2 3 |
RES=`HOME=~zabbix mysql -e ‘SHOW SLAVE STATUS\G‘ | egrep ‘(Slave_IO_Running|Slave_SQL_Running):‘ | awk -F: ‘{print $2}‘ | tr ‘\n‘ ‘,‘` 换成: RES=`/usr/local/mysql/bin/mysql -e ‘SHOW SLAVE STATUS\G‘ | egrep ‘(Slave_IO_Running|Slave_SQL_Running):‘ | awk -F: ‘{print $2}‘ | tr ‘\n‘ ‘,‘` |
创建监控MySQL的用户和密码。
1 2 |
mysql> GRANT SELECT,PROCESS,SUPER,REPLICATION CLIENT ON *.* TO ‘zabbixmoniter‘@‘localhost‘ IDENTIFIED BY "123456"; mysql> flush privileges; |
然后PHP脚本连接MySQL的用户名和密码。
1 2 3 4 |
$ cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php $mysql_user = ‘zabbixmoniter‘; $mysql_pass = ‘123456‘; $mysql_port = 3306; |
测试脚本
1 2 |
$ bash /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg 908 |
7)配置Zabbix Server 3.0
先去percona官网:https://www.percona.com/downloads/percona-monitoring-plugins/
下载Percona Monitoring Plugins最新tar.gz源码包。解压里面有cacti、nagios、zabbix不同监控模块,找到zabbix/templates/目录,然后通过Zabbix Web界面 (Configuration -> Templates -> Import) 导入XML模板,注意要另外选择上Screens。最后配置主机关联上Percona MySQL Server Template模板即可。
针对Zabbix server 3.0导入模板文件时可能会报错:
Invalid tag “/zabbix_export/date”:“YYYY-MM-DDThh:mm:ssZ” is expected.
经过核查,这个原因是模版错误,是因为percona官方上1.1.6还是zabbix2.0的版本模版,所以需要跟新上来匹配zabbix3.0的模版规范,而且这个zabbix模版还是直接copy的cacti模版,比较粗糙,用more查看就可以看到里面都是cacti的内容,可见percona官网对zabbix也不是很重视嘛,至少不如cacti那样重视的。
解决:网上有人在原来的zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml之上进行修改,改完后就可以import导入进去了,(下载地址:http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml)。
模板导入进去之后,接下来要做的就是对主机进行添加模板了,当然这属于zabbix的知识了,自行看博客zabbix章节。percona这套MySQL监控项很多,需要好好细看才能理解。
8)MySQL从库监控Slave配置
先在mysql slave的agent里面需要check下看是否生效:
1 2 3 |
$ sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO) 0 |
所以需要配置下访问mysql的一些基本参数:
1 2 3 4 5 |
$ cat /etc/my.cnf [mysql] user=zabbixmoniter password=ys_ipowerlong0418 socket=/usr/local/mysql/mysql.sock |
再check试试,就可以看到了:
1 2 |
$ sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave 1 |
原文地址:https://www.cnblogs.com/qcfeng/p/9241108.html