热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分布式监控系统Zabbix使用percona监控MySQL

系统运维工程师李超前面已经介绍了分布式监控系统Zabbix-自动发现-添加mysql多实例监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳。要想更加仔细的监控Mysq
系统运维工程师 李超
前面已经介绍了分布式监控系统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上查看我们的监控,如图:
技术分享图片
然后就完啦,对了还有一个问题就是
技术分享图片
你们这是红色的,解决办法就是点进去
技术分享图片
技术分享图片
到此分享完毕。
系统运维工程师 李超

分布式监控系统Zabbix使用percona监控MySQL


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
author-avatar
mobiledu2502858263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有