设为首页 收藏本站
查看: 874|回复: 0

[经验分享] 分布式监控系统Zabbix使用percona监控MySQL

[复制链接]

尚未签到

发表于 2019-1-21 10:54:58 | 显示全部楼层 |阅读模式
  系统运维工程师  李超
前面已经介绍了分布式监控系统Zabbix-自动发现-添加mysql多实例监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳。要想更加仔细的监控Mysql,业内同学们都会选择采用Percona Monitoring Plugins监控MySQL。Percona有比较详细的监控Mysql的模版以及脚本,它提升了在高负载情况下的InnoDB的性能、为运维人员提供一些非常有用的性能诊断工具;另外它有更多的参数和命令来控制服务器行为。废话不多说,下面记录下使用Percona Monitoring Plugins监控MySQL的操作过程:
被监控主机的zabbix的部署路径是/data/zabbix。


  数据库目录:

环境路径我们已经都有了接下来开始就部署我们的重头戏:
  如下是在zabbix被监控机上的操作:
1)需要安装php脚本运行环境
percona监控zabbix的脚本是使用PHP写的,所以需要准备好php运行环境,这里直接选择用yum安装就可以满足要求了:
centos系统安装:
#yum install -y php php-mysql
Ubuntu系统安装:
#sudo apt-get install php-* php-mysql
  确保被监控主机没有安装percona相关软件,如果有就卸载掉!
#rpm -qa|grep percona                        
2)下载官方percona模版  (https://www.percona.com/downloads/percona-monitoring-plugins/)
直接下载:https://pan.baidu.com/s/1c1IE7zq      提取密码:trp5
(包下载不下来的留言我给你包)
#wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
centos:
#rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm
ubuntu:
sudo apt-get install alien
sudo alien percona-zabbix-templates-1.1.6-1.noarch.rpm
sudo dpkg -i percona-zabbix-templates-1.1.6-2.deb
解压完成之后是这样子的:

进入两个目录分别查看里边有这些东东
$ ll
total 136
drwxr-xr-x 2 root    root     4096 Jul 19 14:50 ./
drwxr-xr-x 4 root    root     4096 Jul 18 16:51 ../
-rwxr-xr-x 1 keytech keytech  1385 Jul 19 14:50 get_mysql_stats_wrapper.sh
-rwxr-xr-x 1 root    root     1254 Jul 18 18:29 get_mysql_stats_wrapper.sh.bak

-rwxr-xr-x 1 keytech keytech 59637 Jul 19 14:25 ss_get_mysql_stats.php
-rwxr-xr-x 1 root    root    59637 Jul 18 16:58 ss_get_mysql_stats.php.bak

$ cd ../
scripts/   templates/
$ cd ../templates/
$ ll
total 272
drwxr-xr-x 2 root root   4096 Jul 19 14:31 ./
drwxr-xr-x 4 root root   4096 Jul 18 16:51 ../
-rw-r--r-- 1 root root 269258 Jan 11  2016 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml
-rw-r--r-- 1 root root  18866 Jan 11  2016 userparameter_percona_mysql.conf
  如上,安装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导入进去。
(NO NO NO 这个模板是2.0版本的zabbix可直接用的,目前大部分都是3.0版本以上的我用的3.4.5版本的zabbix。这个模板在最后边我会加上也可以在这直接下载修改好的新模版文件下载地址是:https://pan.baidu.com/s/1i5j8IJ7    提取密码:ab8a)。
  3)添加参数支持
在被监控机器上将userparameter_percona_mysql.conf拷贝到zabbix_agent的对应配置目录下
#rsync -avpgolr /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /data/zabbix/etc/zabbix_agentd.conf.d/
#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 所在的目录增加进去:
#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)修改监控脚本
修改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本
-----------------------------------注意----------------------------------
若mysql没有使用默端口3006,比如mysql使用的是3317。则还需要修改如下脚本文件,记住不要在这里被坑了!改端口号码文件:
1-> 这里要先建好这个文件,否则会报rm权限错误
  #touch /tmp/localhost-mysql_cacti_stats.txt:3307
#chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt:3307
2-> 修改端口脚本(下边脚本已经改好,可直接使用)
  #!/bin/sh
#The wrapper for Cacti PHP script.
#It runs the script every 5 min. and parses the cache file on each following run.
#Version: 1.1.6
#This program is part of Percona Monitoring Plugins
#License: GPL License (see COPYING)
#Copyright: 2016 Percona
#Authors: Roman Vynar
  ITEM=$1
HOST=localhost
DIR=dirname $0
CMD="/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt:3307"
USER='root'
PASS='keytech2017'
sock='/data/mysql/mysql_3307/tmp/mysql.sock'
if [ "$ITEM" = "running-slave" ]; then

Check for running slave

RES=`/data/mysql/mysql_3307/bin/mysql -u$USER -h$HOST -p$PASS -S$sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
if [ "$RES" = " Yes, Yes," ]; then
echo 1
else
echo 0
fi
exit
  elif [ -e $CACHEFILE ]; then

Check and run the script

TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt:3307`
TIMENOW=`date +%s`
if [ `expr $TIMENOW - $TIMEFLM` -gt 300 ]; then
rm -f $CACHEFILE
$CMD 2>&1 > /dev/null
fi
  else
$CMD 2>&1 > /dev/null
fi
  #Parse cache file
if [ -e $CACHEFILE ]; then
cat $CACHEFILE | sed 's/ /\n/g; s/-1/0/g'| grep $ITEM | awk -F: '{print $2}'
else
echo "ERROR: run the command manually to investigate the problem: $CMD"
fi
  登陆mysql创建监控要用的账号(授予的权限,最后手动登录验证下)
  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-agentd测试下:
#/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
gg:6
在服务器zabbix-server测试下(192.168.1.10是被监控主机的ip地址):
#/data/zabbix/bin/zabbix_get -s 192.168.1.10 -p 10050 -k "MySQL.Threads-connected"
1
#/data/zabbix/bin/zabbix_get -s 192.168.1.10 -p 10050 -k "MySQL.Handler-commit"
3
然后去web上查看我们的监控,如图:

然后就完啦,对了还有一个问题就是

你们这是红色的,解决办法就是点进去


到此分享完毕。
系统运维工程师  李超




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665926-1-1.html 上篇帖子: zabbix批量监控URL-wangxiang 下篇帖子: zabbix proxy安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表