37_zabbix自动发现监控mysql

为什么要自动发现?

mysql可能监听不同的端口,可能一台服务器有多个mysql实例监听多个端口

mysql自动发现脚本

cat >/tmp/discovrey_mysql.py <<EOF
# -*-coding:utf-8 -*-
try:
  import json
except:
  import simplejson as json
import commands
(status,output)=commands.getstatusoutput("""sudo netstat -tlnp | grep 'mysqld' | awk '{print \$4}' | awk -F':' '{print \$2}' | sort -u""")
outputs=output.split('\n')
result=[]
for one in outputs:
  result.append({"{#ONE}":one})
print(json.dumps({'data':result},sort_keys=True,indent=4))
EOF

给用户zabbix添加sudo权限

cat >>/etc/sudoers <<EOF
zabbix ALL = NOPASSWD:/bin/netstat
Defaults:zabbix !requiretty
EOF

zabbix自定义key配置

cat >/usr/local/zabbix/etc/zabbix_agentd.conf.d/discovery_mysql.conf <<EOF
UserParameter=mysql.discovery,python /tmp/discovrey_mysql.py
EOF
pkill zabbix_agentd
zabbix_agentd

测试能否获取值

zabbix_get -s 127.0.0.1 -k mysql.discovery

使用自动发现监控mysql