Martin.xu

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
1、python支持
yum -y install python-simplejson
 
2、discovery脚本
[root@localhost etc]# 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=(',',':'))

3、试执行脚本

[root@localhost etc]# python redis_port.py
{
    "data":[
        {
            "{#REDISPORT}":"6379"
        }
    ]
}

4、zabbix_agent设置

[root@localhost ~]# tail -n 2 /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=redis.discovery,/usr/local/zabbix/etc/redis_port.py
UserParameter=redis_stats[*],redis-cli -h 127.0.0.1 -a redis_passwd -p $1 info|grep $2|cut -d : -f2
[root@localhost ~]# chmod a+x /usr/local/zabbix/etc/redis_port.py 
 
5、sudo权限
[root@localhost ~]# tail -n 1 /etc/sudoers
zabbix ALL=(root) NOPASSWD:/bin/netstat
[root@localhost ~]# sed -i 's/^Defaults.*.requiretty/#Defaults    requiretty/' /etc/sudoers
[root@localhost ~]# grep requiretty /etc/sudoers
#Defaults    requiretty
# changed in order to be able to use sudo without a tty. See requiretty above.
 
6、服务端验证
[root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k redis.discovery
{
    "data":[
        {
            "{#REDISPORT}":"6379"
        }
    ]
}
[root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k redis_stats[6379,used_memory:]
651534360
[root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k "redis_stats[6379,blocked_clients]"
0
 
7、zabbix web界面导入下载的模板,添加监控项后检查监控图像

 

posted on 2017-03-27 23:57  Martin.xu  阅读(124)  评论(0编辑  收藏  举报