ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

zabbix监控MySQL多实例实践

2019-07-20 13:55:27  阅读:204  来源: 互联网

标签:端口 MYSQLPORT zabbix 实例 自动 监控 MySQL port


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

二、实践方法及原理说明:
1.在Zabbix上创建监控MySQL数据库使用的模版,导入案例模版:
链接: https://pan.baidu.com/s/1nXooNPMXrmaAQidRrxVOLg 提取码: ure1

2.在模版上创建自动发现的规则,在自动发现规则中需要定义两个东西:
a.键值 用来自动获取MySQL实例的端口,需要使用到主机宏{$MYSQLPORT}
zabbix监控MySQL多实例实践

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

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

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'

执行效果
zabbix监控MySQL多实例实践

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

自动生成的监控项效果图:
zabbix监控MySQL多实例实践

标签:端口,MYSQLPORT,zabbix,实例,自动,监控,MySQL,port
来源: https://blog.51cto.com/zxdave/2421946

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有