基于zabbix的Mysql自定义监控
admin
2023-05-08 02:01:38
0

                                                  Mysql自定义监控

需求:公司需要做mysql的数据监控,对mysql的状态,流量进行监控。

分析:zabbix自动就有Template App MySQL模版,我们只要添加mysql监控脚本就可以实现自定义监控。

配置如下:

zabbix的服务端搭建,这里不再演示,我这里的zabbixserver已经配置好的了,直接进入mysql监控构建。 

1、建立mysql host groups组

mysql模板是 zabbix系统提供的,进入 zabbix web 后台,配置-->主机群组-->点击“创建主机群组”-->选择template群组,选择模板“TemplateApp MySQL,Templdate OS Linux”,TemplateApp Zabbix Agen;TemplateApp MySQL依赖于模板TemplateApp Zabbix Agent所以也要添加。如图1、图2所示:

基于zabbix的Mysql自定义监控

                                                       图1

基于zabbix的Mysql自定义监控

                                                          图2

2、部署agent客户端,使用ansible一健安装,详细可以参考我安装过程https://blog.51cto.com/xiaozhagn/1975084

3、建立主机,添加zabbix户端主机,添加模板。

配置-->主机-->点击创建主机--> 创建zabbix客户机(我这里是node2.1)-->选择模板选项,选择模板“Template App MySQL”、“Templdate OS Linux”,“TemplateApp Zabbix Agent“,最后点击左边的“添加”按钮,最后点击“更新”完成创建。如图3、图4所示:

 

基于zabbix的Mysql自定义监控

                                                       图3

基于zabbix的Mysql自定义监控

                                                       图4

4,开启mysql性能监控。

这里可以采用zabbix自带的mysql模版,但是也需要在mysql服务器上准备获取mysql status的脚本chk_mysql.sh,zabbix通过调用这个脚本来获取mysql的运行信息。

在配置zabbix客户端文件zabbix_agentd.conf里面添加mysql监控信息:

 [root@node2 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

#添加以下内容

UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/usr/local/zabbix/scripts/chk_mysql.sh $1      #这个是放脚本的路径
UserParameter=mysql.ping,netstat -ntpl |grep 3306 |grep mysql |wc |awk '{print $1}'


5、进入数据库添加mysql帐号,(我这里的数据库是用yum装的)

MariaDB [(none)]> GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1' IDENTIFIED BY 'xiaozhang';


6、接下来准备mysql的运行信息监控,需要准备新的mysql监控脚本chk_mysql.sh。(名称要与在zabbix客户端添加的脚本路径的名称一致)

[root@node2 scripts]# mkdir /usr/local/zabbix/scripts/

[root@node2 scripts]# cat /usr/local/zabbix/scripts/chk_mysql.sh

#!/bin/sh
# -------------------------------------------------------------------------------
# FileName:    check_mysql.sh
# Date:        2018/1/10
# Author:     xiaozhang
# Email:       847536944@qq.com
MYSQL_SOCK="/var/lib/mysql/mysql.sock"
MYSQL_USER='zabbix'
MYSQL_PWD='xiaozhang'
MYSQL_HOST='127.0.0.1'
MYSQL_PORT='3306'
ARGS=1
if [ $# -ne "$ARGS" ];then
    echo "Please input one arguement:"
fi
case $1 in
    Uptime)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f2 -d":"|cut -f1 -d"T"`
            echo $result
            ;;
        Com_update)
            result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_update"|cut -d"|" -f3`
            echo $result
            ;;
        Slow_queries)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK status |cut -f5 -d":"|cut -f1 -d"O"`
                echo $result
                ;;
    Com_select)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_select"|cut -d"|" -f3`
                echo $result
                ;;
    Com_rollback)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
                echo $result
                ;;
    Questions)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK status|cut -f4 -d":"|cut -f1 -d"S"`
                echo $result
                ;;
    Com_insert)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_insert"|cut -d"|" -f3`
                echo $result
                ;;
    Com_delete)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_delete"|cut -d"|" -f3`
                echo $result
                ;;
    Com_commit)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_commit"|cut -d"|" -f3`
                echo $result
                ;;
    Bytes_sent)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
                echo $result
                ;;
    Bytes_received)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
                echo $result
                ;;
    Com_begin)
        result=`/usr/bin/mysqladmin -u$MYSQL_USER -h$MYSQL_HOST -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status |grep -w "Com_begin"|cut -d"|" -f3`
                echo $result
                ;;
                       
        *)
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions)"
        ;;
esac


7、添加chec_mysql脚本权限:

 [root@node2 ~]#chmod u+x /usr/local/zabbix/scripts/chk_mysql.sh
 [root@node2 ~]#chown -R zabbix.zabbix /usr/local/zabbix/scripts/chk_mysql.sh


8、重启agent,在zabbix服务器上面检查基本mysql服务器信息是否能正常获取到。

重启客户端 

[root@node2 ~]# /etc/init.d/zabbix_agentd restart

服务测试,获取mysql监控数据

[root@node1 ~]# zabbix_get -s 172.25.0.30 -p10050 -k "system.cpu.load[all,avg15]";  
0.050000 
[root@node1 ~]# zabbix_get -s 172.25.0.30 -p10050 -k mysql.status[Com_update]  
0
[root@node1 ~]#  zabbix_get -s 172.25.0.30 -p10050 -k mysql.status[Com_insert]
0


9、监控mysql性能图添加

监控脚本运行正常后,就会在zabbix-server的“监控中”的下面的“图形“里面看到mysql的监控性能视图,选择选择主机node2.1(zabbix_agent),图形选择MySQL operations可以看到性能监控视图,如图5所示:

基于zabbix的Mysql自定义监控

                                                             图5

10、zabbix自带模版默认有2个性能图,当然也可以新建其他图,只需要找到主机所在,创建图形就可以了,如图6、图7所示:

基于zabbix的Mysql自定义监控

                                                               图6

基于zabbix的Mysql自定义监控

                                                               图7

 

 


相关内容

热门资讯

“点热成电”,挖掘能源金矿 “十五五”规划纲要提出,深入实施能源安全新战略,加快构建清洁低碳安全高效的新型能源体系,建设能源强国...
新能源车企激战大电量时代 “量... 时报财经图库/供图 证券时报记者 叶玲珍 作为车企角逐的主战场,电池容量军备竞赛日趋白热化。中国汽车...
以方透露内塔尼亚胡曾秘访阿联酋... 以色列方面5月13日透露,以总理内塔尼亚胡在以色列对伊朗发动大规模军事行动期间曾秘密访问阿联酋,并称...
英伟达、谷歌、苹果均创市值历史... 【CNMO科技消息】5月14日,CNMO科技注意到,美东时间周三,美股三大指数涨跌不一,纳指和标普5...
商业化探索持续深入 “AI+教... 来源:滚动播报 (来源:经济参考报) 人工智能通识课堂上,教师发出指令几分钟后,学生手绘的卡通人物就...
偷拍男子是否会被清出公务员拟录... 近日,南京审计大学一名在校研究生顾某某因涉嫌偷拍女生隐私,引发关注。顾某某已被国家税务总局江苏省税务...
乌克兰首都基辅传出爆炸声 △乌克兰首都基辅(资料图)当地时间14日,乌克兰首都基辅传出爆炸声,此前基辅拉响防空警报。(总台记者...
移动空调制冷一会就停止了 原因可能是空调正在开启启动模式,移动空调存在逐步启动模式,在空调开启过程中会逐步启动保证空调的正常运...
排水管怎么安装 首先需关闭上水阀,然后将软管用扳手拧下来装上三通,注意需要按一个内部带丝扣的一面,然后在三通上接上原...
净水器滤芯正确顺序图 以常规的欧吉分五级过滤瓶为例,前三级是初次过滤,主要是PP棉、颗粒活性炭、块状活性炭、树脂等。通常组...