Zabbix 自动发现Redis并监控

Zabbix wangleiadmin 1806℃ 0评论
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


I[CGAB%O7KDQC6(TI0{G3CF

模版链接:https://pan.baidu.com/s/1boCv2Ez 密码:eq6r

转载请注明:暖风 » Zabbix 自动发现Redis并监控

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址