时间:2021-07-01 10:21:17 帮助过:22人阅读
1: 前言
由于前面写的博客,zabbix自动发现监控redis、zabbix自动发现监控mongo这两篇博客虽然都能自动发现并监控,但是由于每个zabbix_agentd都得配置,监控起来非常不方便,因此,再做了个模板,能够自动发现并监控多台mysql。这个方法在监控mongo、redis或者mysql主从等时候也都适用。
2: 在zabbix_agentd下编写自动发现并监控多台mysql的脚本,脚本如下:
#!/bin/sh
#zhuangweihong 20160512 zabbix discover mysql
mysqlconf=`cat /usr/local/zabbix/mysql.conf|grep -v ‘^#‘`
mysqlcount=`echo "${mysqlconf}"|wc -l`
if [[ -z "$mysqlconf" ]];then
echo "mysql has not find"
exit 2
fi
printf ‘{\n‘
printf ‘\t"data":[\n‘
mycount=1
echo "$mysqlconf"|while read line;do
myip=`echo $line|awk ‘{print $1}‘`
myport=`echo $line|awk ‘{print $2}‘`
if [ $mysqlcount -eq $mycount ];then
printf "\t\t\t{\"{#MYSQLIP}\":\"$myip\",\"{#MYSQLPORT}\":\"$myport\"}\n"
else
printf "\t\t\t{\"{#MYSQLIP}\":\"$myip\",\"{#MYSQLPORT}\":\"$myport\"},\n"
let "mycount++"
fi
done
printf ‘\t]\n‘
printf ‘}\n‘
exit 0
其中配置文件vim /usr/local/zabbix/mysql.conf,第一个参数为ip,第二个参数为port,例如:
192.168.0.1 3306
192.168.0.2 3306
3: 在zabbix_agentd添加配置如下:
UserParameter=zabbix.discovery.mysql.all,/usr/local/zabbix/zabbix_discover_mysql.sh
UserParameter=mysql.status.all[*],mysql -h $3 -P$1 -e "show global status"|grep "$2[[:space:]]"|cut -f2
注意事项:
1: mysql.cnf里面可以配置个用户名和密码,假如配置如下:
user=zabbix
password=xxxxx
2: 被监控的机器上必须要有usage权限,命令如下:
grant usage on *.* to zabbix@‘192.168.0.99‘ identified by ‘xxxxx‘;
192.168.0.99配置成zabbix_agentd的ip
3: 配置完成后zabbix_agentd重启
4: 在zabbix_server的网页添加自动发现模版:命名为:MySQL Discovery Service ALL。
5: 添加自动发现规则,命名和键值如下:MySQL Discovery Service ALL、zabbix.discovery.mysql.all。设置成15分钟发现一次,失效的发现保留一天即可。配置截图如下:
6: 创建监控项原型,名称和键值如下:
{#MYSQLIP}/{#MYSQLPORT}:MySQL bytes sent per second mysql.status.all[{#MYSQLPORT},Bytes_sent,{#MYSQLIP}]
{#MYSQLIP}/{#MYSQLPORT}:MySQL bytes received per second mysql.status.all[{#MYSQLPORT},Bytes_received,{#MYSQLIP}]
{#MYSQLIP}/{#MYSQLPORT}:MySQL service is running net.tcp.service[tcp,{#MYSQLIP},{#MYSQLPORT}]
监控一下自己想监控的项目。
截部分图如下:
7: 如何扩展?
想要多监控几台mysql的话,只需要vim /usr/local/zabbix/mysql.conf添加自己想要监控的mysql ip和mysql port,然后在对应的mysql上grant usage on *.* to zabbix@‘192.168.0.99‘ identified by ‘xxxxx‘;即可。zabbix会自动发现并监控,如果哪些突然不想监控的话,配置上去除后,等一天后zabbix就会删除了。
本文出自 “庄伟鸿” 博客,请务必保留此出处http://zhuangweihong.blog.51cto.com/8808431/1772790
zabbix自动发现监控多台mysql
标签:zabbix自动发现监控多台mysql zabbix mysql zabbix自动发现mysql zabbix自动发现