yum -y install python-simplejson #安装python 支持
cat redis-port.py #!/usr/bin/env python import os #import json import simplejson as json #特别要注意的地方 t=os.popen("""sudo netstat -tlpn |grep codis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """) ports = [] for port in t.readlines(): r = os.path.basename(port.strip()) ports += [{'{#REDISPORT}':r}] print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
chmod +x redis-port.py python redis-port.py # 下面执行结果 { "data":[ { "{#REDISPORT}":"6379" }, { "{#REDISPORT}":"6380" } ] }
vim /etc/zabbix/zabbix_agentd.conf #添加下面两行 UserParameter=redis.discovery,/data/shell/redis_port.py UserParameter=redis_stats[*],/home/redis/redis-cli -h 127.0.0.1 -p $1 info|grep $2|cut -d : -f2
sudo权限
tail -n 1 /etc/sudoers zabbix ALL=(root) NOPASSWD:/bin/netstat sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers grep requiretty /etc/sudoers #显示如下 #Defaults requiretty # changed in order to be able to use sudo without a tty. See requiretty above.
服务端测试
zabbix_get -s 192.168.106.50 -k redis.discovery { "data":[ { "{#REDISPORT}":"6379" }, { "{#REDISPORT}":"6380" } ] } zabbix_get -s 192.168.106.50 -k redis_stats[6379,used_memory:] 369767672
模版链接:https://pan.baidu.com/s/1boCv2Ez 密码:eq6r
转载请注明:暖风 » Zabbix 自动发现Redis并监控