码迷,mamicode.com
首页 > 数据库 > 详细

zabbix自动发现监控多台mysql

时间:2016-05-13 04:46:59      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:zabbix自动发现监控多台mysql   zabbix mysql   zabbix自动发现mysql   zabbix自动发现   

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自动发现   

原文地址:http://zhuangweihong.blog.51cto.com/8808431/1772790

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!