zabbix监控多实例的mysql_zabbix监控MySQL多实例实践[通俗易懂]

zabbix监控多实例的mysql_zabbix监控MySQL多实例实践[通俗易懂]zabbix监控MySQL多实例实践发布时间:2020-07-2120:50:01来源:51CTO阅读:494作者:zxdave一、实践背景:一台机器上部署了多个MySQL实例,每个实例使用不同的端口,需要通过zabbix将其都纳入监控中。二、实践方法及原理说明:1.在Zabbix上创建监控MySQL数据库使用的模版,导入案例模版:链接:https://pan.baidu.com/s/1nXo…

大家好,又见面了,我是你们的朋友全栈君。

zabbix监控MySQL多实例实践

发布时间:2020-07-21 20:50:01

来源:51CTO

阅读:494

作者:zxdave

一、实践背景:

一台机器上部署了多个MySQL实例,每个实例使用不同的端口,需要通过zabbix将其都纳入监控中。

二、实践方法及原理说明:

1.在Zabbix上创建监控MySQL数据库使用的模版,导入案例模版:

链接: https://pan.baidu.com/s/1nXooNPMXrmaAQidRrxVOLg 提取码: ure1

2.在模版上创建自动发现的规则,在自动发现规则中需要定义两个东西:

a.键值 用来自动获取MySQL实例的端口,需要使用到主机宏{$MYSQLPORT}

73915.jpg

b.监控项原型 根据获取的端口来生成对应的监控项,需要使用到自动发现宏{#MYSQLPORT}

a381c9902adc6907e2f8dd135a9ca983.png

3.在需要监控的主机上定义一个宏{$MYSQLPORT},对应要监控的端口,如3306_3307

4a9f50c7c7f1d2cb04a572f4fc778c3f.png

4.在Zabbix agent上创建自动发现端口的脚本、状态监控脚本。

原理说明:

通过自动发现规则来获取MySQL实例的端口,自动发现规则上的{$MYSQLPORT}是要传递给agent自动发现脚本的参数,这个值是从主机定义的宏{$MYSQLPORT}获取过来的,自动发现的脚本将其解析成{#MYSQLPORT}: 端口的形式,监控项原型再根据{#MYSQLPORT}的值来生成监控项,大致流程如下:

主机定义宏{$MYSQLPORT}->自动发现规则键值{$MYSQLPORT}->调用agent上自动发现脚本并解析成{#MYSQLPORT} : 端口 ->监控项原型{#MYSQLPORT}->自动生成主机监控项

三、环境说明:

OS:CentOS Linux release 7.6.1810 (Core)

Zabbix Server 版本:4.2.4

MySQL端口:3306,3307

3306 socket:/tmp/mysql3306.sock

3307 socket:/tmp/mysql3307.sock

脚本路径:/etc/zabbix/scripts/

四、在agent创建监控用的脚本

1.自动发现脚本:/etc/zabbix/scripts/discovery_mysqlport.sh

#!/bin/bash

res=`echo $1| sed “s//\n/g”`;

port=($res)

printf ‘{\n’

printf ‘\t”data”:[\n’

for key in ${!port[@]}

do

if [[ “${#port[@]}” -gt 1 && “${key}” -ne “$((${#port[@]}-1))” ]];

then

printf ‘\t {\n’

printf “\t\t\t\”{#MYSQLPORT}\”:\”${port[${key}]}\”},\n”

else [[ “${key}” -eq “((${#port[@]}-1))” ]]

printf ‘\t {\n’

printf “\t\t\t\”{#MYSQLPORT}\”:\”${port[${key}]}\”}\n”

fi

done

printf ‘\t ]\n’

printf ‘}\n’

执行效果

5c2e15ec19060512d3200bb5dd503569.png

2.状态检查脚本:/etc/zabbix/scripts/mysql_status.sh

#!/bin/bash

var=$1

MYSQL_USER=”zabbix”

MYSQL_PASSWORD=123456

MYSQL_SOCK_DIR=”/tmp/mysql$2.sock”

${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_SOCK_DIR} -e “show global status;” 2> /dev/null |grep -v Variable_name|grep “\b${var}\b”|awk ‘{print $2}’

3.在agent上添加监控项

UserParameter=mysql_discovery[],/etc/zabbix/scripts/discovery_mysql_port.sh $1

UserParameter=mysql.status[],/etc/zabbix/scripts/mysql_status.sh $1 $2

4.重启agent服务

systemctl restart zabbix-agent

自动生成的监控项效果图:

93661fab3a3ae6fb7a1a70ff716cc4db.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136618.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HeadSetup出现安全漏洞 恐使用户机密资讯外泄[通俗易懂]

    HeadSetup出现安全漏洞 恐使用户机密资讯外泄[通俗易懂]HeadSetup出现安全漏洞 恐使用户机密资讯外泄

    2022年4月21日
    55
  • mac切换双系统按键_mac双系统开机三个盘

    mac切换双系统按键_mac双系统开机三个盘许多小伙伴都在mac电脑上安装了双系统,那么我们应该如何切换默认系统呢?相信还有很多小伙伴搞不清,那么就让我来给大家介绍一下是怎么设置默认系统的。1、开机按Option键(就是Alt键)。这个其实很简单的,就是电猫开机后,一直按着Option键,在这里我们有时候会出现一些问题就是还没按Option键,它就已经默认进入系统了,或者有时候我们按了很久,却发现屏幕一直处于灰白的状态,这两种情况几乎是我们…

    2022年10月6日
    0
  • 在Sqlite中实现RowNumber功能[通俗易懂]

    在Sqlite中实现RowNumber功能[通俗易懂]SELECT ROWID, (SELECTCOUNT(1)FROM`Weight`bWHEREa.`Date`>=b.`Date`)AS`ROWNUMBER`, a.*FROM `Weight`aORDERBY a.`Date`SELECT ROWID, (SELECTCOUNT(1)FROM`Weight`bW…

    2022年6月1日
    70
  • linux系统中如何进入退出vim编辑器,方法及区别

    linux系统中如何进入退出vim编辑器,方法及区别随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了。偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以…

    2022年6月12日
    30
  • AGPS定位基本原理浅析

    AGPS定位基本原理浅析位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机、掌上电脑等)的标配。随着人们对BLS(BasedLocationSerices,基于位置的服务)需求的飞速增长,无线定位技术

    2022年7月3日
    29
  • java实习生面试题_java实习生面试题(含答案)

    java实习生面试题_java实习生面试题(含答案)1.Java容器框架有哪些?Java容器框架中有两个名称分别为Collection和Set的接口2.list,map,set,array,它们有什么区别(推荐学习:java实习生面试题)List接口主要有三个实现类:LinkedList,ArrayList,Vector.LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还…

    2022年7月9日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号