前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳。要想更加仔细的监控Mysql,业内同学们都会选择采用Percona Monitoring Plugins监控MySQL。Percona有比较详细的监控Mysql的模版以及脚本,它提升了在高负载情况下的InnoDB的性能、为运维人员提供一些非常有用的性能诊断工具;另外它有更多的参数和命令来控制服务器行为。废话不多说,下面记录下使用Percona Monitoring Plugins监控MySQL的操作过程:

被监控主机的zabbix的部署路径是/data/zabbix。
[root@open ~]# ll /data/zabbix/
total 28
drwxr-xr-x 2 zabbix zabbix 4096 Jul 19 10:24 bin
drwxr-xr-x 3 zabbix zabbix 4096 Sep 5 14:12 etc
drwxr-xr-x 2 zabbix zabbix 4096 Jul 19 10:24 lib
drwxr-xr-x 2 zabbix zabbix 4096 Jul 19 10:24 logs
drwxr-xr-x 2 zabbix zabbix 4096 Jul 19 10:24 monitor_scripts //这个是存放监控脚本的目录
drwxr-xr-x 3 zabbix zabbix 4096 Jul 19 10:24 sbin
drwxr-xr-x 4 zabbix zabbix 4096 Jul 19 10:24 share 被监控主机的mysql路径是/usr/local/mysql
[root@open ~]# ps -ef|grep mysql
root 9170 8258 0 11:23 pts/0 00:00:00 grep mysql
root 19000 1 0 Sep01 ? 00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/mysql.pid
mysql 19776 19000 0 Sep01 ? 00:07:26 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/data/mysql/data/mysql-error.log --pid-file=/data/mysql/data/mysql.pid --socket=/usr/local/mysql/var/mysql.sock --port=3306 如下是在zabbix被监控机上的操作:
1)需要安装php脚本运行环境
percona监控zabbix的脚本是使用PHP写的,所以需要准备好php运行环境,这里直接选择用yum安装就可以满足要求了:
[root@open ~]# yum install -y php php-mysql 确保被监控主机没有安装percona相关软件,如果有就卸载掉!
[root@open ~]# rpm -qa|grep percona
[root@open ~]# 2)下载官方percona模版 (https://www.percona.com/downloads/percona-monitoring-plugins/)
直接下载:https://pan.baidu.com/s/1c1IE7zq 提取密码:trp5
[root@open ~]# wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
[root@open ~]# rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm [root@open ~]# ll /var/lib/zabbix/percona
total 8
drwxr-xr-x 2 root root 4096 Sep 5 14:35 scripts
drwxr-xr-x 2 root root 4096 Sep 5 14:35 templates
[root@open ~]# ll /var/lib/zabbix/percona/scripts
total 64
-rwxr-xr-x 1 root root 1251 Jan 11 2016 get_mysql_stats_wrapper.sh
-rwxr-xr-x 1 root root 59640 Jan 11 2016 ss_get_mysql_stats.php
[root@open ~]# ll /var/lib/zabbix/percona/templates
total 284
-rw-r--r-- 1 root root 18866 Jan 11 2016 userparameter_percona_mysql.conf
-rw-r--r-- 1 root root 269258 Jan 11 2016 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml 如上,安装percona后会在/var/lib/zabbix/percona生成2个目录,其中:
/var/lib/zabbix/percona/scripts是监控脚本目录
/var/lib/zabbix/percona/templates是监控mysql的xml模版目录
然后把/var/lib/zabbix/percona/templates/目录下的模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml复制出来,在zabbix的管理界面import导入进去。
--------------------------------------------------------------------------------------------------------------------------------------------------
但是在导入此模板的时候,可能会报如下错误:
Import failed
Details
Invalid XML tag "/zabbix_export/date":"YYYY-MM-DDThh:mm:ssZ" is expected. (标签无效 "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" 预计) 经过核查,这个原因是模版错误,是因为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导入进去了!!!!
修改好的新模版文件下载地址是:https://pan.baidu.com/s/1i5j8IJ7 提取密码:ab8a
-------------------------------------------------------------------------------------------------------------------------------------------------- 将percona的两个脚本放到被监控主机的/data/zabbix/monitor_scripts目录下
[root@open ~]# mv /var/lib/zabbix/percona/scripts/* /data/zabbix/monitor_scripts/ 3)添加参数支持
在被监控机器上将userparameter_percona_mysql.conf拷贝到zabbix_agent的对应配置目录下
[root@open ~]# rsync -avpgolr /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /data/zabbix/etc/zabbix_agentd.conf.d/
[root@open ~]# sed -i 's#/var/lib/zabbix/percona/scripts/#/data/zabbix/monitor_scripts/#g' /data/zabbix/etc/zabbix_agentd.conf.d/userparameter_percona_mysql.conf 注意修改客户端机器的zabbix_agentd.conf文件,增加Include 把userparameter_percona_mysql.conf 所在的目录增加进去:
[root@open ~]# cat /data/zabbix/etc/zabbix_agentd.conf|grep Include
### Option: Include
Include=/data/zabbix/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf 4)修改监控脚本
修改/data/zabbix/monitor_scripts/get_mysql_stats_wrapper.sh脚本
-----------------------------------注意----------------------------------
若mysql没有使用默端口3006,比如mysql使用的是3317。则还需要修改如下脚本文件,记住不要在这里被坑了!改端口号码文件:
1-> 这里要先建好这个文件,否则会报rm权限错误
[root@open ~]# touch /tmp/localhost-mysql_cacti_stats.txt:3317
[root@open ~]# chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt:3317 2-> 修改端口脚本
[root@open ~]# vim /data/zabbix/monitor_scripts/get_mysql_stats_wrapper.sh
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
换成:
CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt:3317" TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
换成:
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt:3317` 如果mysql使用的是默认的3306端口,那么就不用修改端口了(即将上面的:3317去掉)!
-------------------------------------------------------------------------- 修改mysql执行命令路径(如下脚本,可以监控到mysql的主从同步状态)
[root@open ~]# vim /data/zabbix/monitor_scripts/get_mysql_stats_wrapper.sh
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 -p123456 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` 然后修改/data/zabbix/monitor_scripts/ss_get_mysql_stats.php脚本,这里主要修改用户名密码:
[root@open ~]# vim /data/zabbix/monitor_scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbixmysql';
$mysql_pass = 'mysql@12345678';
$mysql_port = 3306; 登陆mysql创建监控要用的账号(授予的权限,最后手动登录验证下)
[root@open ~]# mysql -p123456
mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbixmysql'@'localhost' IDENTIFIED BY "mysql@12345678";
Query OK, 0 rows affected (0.03 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) 5)修改被监控主机的zabbix权限,并重启zabbix_agent服务
最后记得重启下zabbix_agent(重启前要保证zabbix的配置文件和监控脚本的权限正确,否则就会采集不到监控数据)
[root@open ~]# chown -R zabbix.zabbix /data/zabbix
[root@open ~]# chmod -R 755 /data/zabbix/monitor_scripts/*
[root@open ~]# /etc/init.d/zabbix_agentd restart 另外,要添加zabbix的sudo权限
[root@open ~]# cat /etc/sudoers
......
zabbix ALL=(ALL) NOPASSWD: /sbin/blockdev
#Defaults requiretty //如果有这个配置项,那么就注释掉这个。没有的话就忽略 6)测试下监控项
在客户端zabbix-agentd测试下:
[root@open ~]# /usr/bin/php -q /data/zabbix/monitor_scripts/ss_get_mysql_stats.php --host localhost --items gg
gg:6
[root@open ~]# 在服务器zabbix-server测试下(172.29.16.30是被监控主机的ip地址):
[root@zabbix ~]# /data/zabbix/bin/zabbix_get -s 172.29.16.30 -p 10050 -k "MySQL.Threads-connected"
1
[root@zabbix ~]# /data/zabbix/bin/zabbix_get -s 172.29.16.30 -p 10050 -k "MySQL.Handler-commit"
3
---------------------------------------------注意------------------------------------------------
如果对zabbix_server本机进行测试(即zabbix_server本机也作为zabbix_agent),那么-s后的ip要用zabbix_server本机的内网ip(即要和zabbix_agent配置文件里配置的地址一致),而不能使用127.0.0.1
否则会报错:Check access restrictions in Zabbix agent configuration error(这个命令只能在zabbix的server端使用,如果在agent端使用就会提示这个错误:)

接着在zabbix的web监控界面里添加被监控主机,选择添加"Percona MySQL Server Template"模板,如下

最后就来看下percona插件监控mysql的效果图了(可以看出percona mysql的监控项有很多):

分布式监控系统Zabbix--完整安装记录(7)-使用percona监控MySQL的更多相关文章

  1. 分布式监控系统Zabbix--完整安装记录 -添加web页面监控

    通过zabbix做web监控,不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码或响应时间做报警设置,比如说对某个url进行监控,当访问返回的状态码是非200状态时都报警(创建触发器即可).下 ...

  2. 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口

    一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...

  3. 分布式监控系统Zabbix-完整安装记录 -添加端口监控

    对于进程和端口的监控,可以使用zabbix自带的key进行监控,只需要在server端维护就可以了,相比于nagios使用插件去监控的方式更为简单.下面简单介绍配置:监控端口zabbix监控端口使用如 ...

  4. 分布式监控系统Zabbix--完整安装记录 -添加apache监控

    前面介绍了zabbix3.0.3环境及相关监控项的添加,下面介绍下针对apache的监控配置:1)在apache配置文件中打开server-status状态访问功能(自带的) [root@IDC-Ad ...

  5. Linux下日志文件监控系统Logwatch的使用记录

    Linux下日志文件监控系统Logwatch的使用记录 原文:http://www.cnblogs.com/kevingrace/p/6519504.html 在维护Linux服务器时,经常需要查看系 ...

  6. 使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql

    使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql 一.docker部署prometheus监控系统 1.1 配置安装环境 1.1.1 安装promethe ...

  7. 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控

    Zabbix3.0 Server以后就自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 以下是公司线上的zabbix3.0环境下添加 ...

  8. 分布式监控系统Zabbix-3.0.3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

    前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如nginx.php.memcache.磁盘IO ...

  9. 企业级分布式监控系统-Zabbix基础

    1.基础分部 1.1Zabbix简介 Zabbix 是一个企业级的分布式开源监控方案. 1.2监控系统架构 C/S架构 客户端/服务器端,这种架构适合规模较小,处于同一地域的环境 C/P/S 客户端/ ...

随机推荐

  1. 在ASP.NET Core 2.0 web项目中使用EntityFrameworkCore

    一.安装EFCode包 EFCore需要根据不同的数据库选择不同的数据库提供程序database provider,各数据库的包地址:https://docs.microsoft.com/zh-cn/ ...

  2. Python3 下实现 腾讯人工智能API 调用

    1.背景 a.鹅厂近期发布了自己的人工智能 api,包括身份证ocr.名片ocr.文本分析等一堆API,因为前期项目用到图形OCR,遂实现试用了一下,发现准确率还不错,放出来给大家共享一下. b.基于 ...

  3. 常用DOS命令之通俗易懂篇

    目录 常用DOS命令之通俗易懂篇 Arp 命令 Assoc 关联 At 计划服务 Attrib 属性 Cd=chdir 目录 Cipher Cls 清屏 Color 颜色 Comp 比较 Compac ...

  4. httpd服务器的真实ip获取难题

    web服务器httpd中想要获取真正的ip是个难度,我们先要在配置文件中定义错误日志的格式:如下所示: 然后获取ip 上面三条输出日志中,第一条是直接访问http://172.16.213.157/i ...

  5. cpio的用法

    cpio 这个命令挺有趣的,因为 cpio 可以备份任何东西,包括装置设备文件.不过 cpio 有个大问题, 那就是 cpio 不会主动的去找文件来备份!啊!那怎办?所以罗,一般来说, cpio 得要 ...

  6. nodejs中async使用

    waterfall , parallel ,  series  ,  eachSeries //var async = require('async'); /*** *① * 串行有关联 执行每个函数 ...

  7. 2018-2019-2 网络对抗技术 20165318 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165318 Exp5 MSF基础应用 原理与实践说明 实践原理 实践内容概述 基础问题回答 攻击实例 主动攻击的实践 ms08_067_netapi:自动化 ...

  8. linked-list-cycle (快慢指针判断是否有环)

    class Solution { public: bool hasCycle(ListNode *head) { if (head == NULL) return NULL; //空表 ListNod ...

  9. 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别(转)

    文章转自https://www.cnblogs.com/sxdcgaq8080/p/7487369.html 注意到这个问题,是在CentOS7上安装JDK的时候,查找相关的资料,发现安装JDK之前都 ...

  10. 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)

    阅读目录 一:什么是SourceMap? 二:理解webpack中的SourceMap的eval,inline,sourceMap,cheap,module 三:开发环境和线上环境如何选择source ...