宇文氏 发表于 2018-11-4 14:21:24

Zabbix监控之Redis自动发现并监控(python)

  1、python支持
  yum -y install python-simplejson
  2、discovery脚本
  # catredis_port.py
  #!/usr/bin/env python
  import os
  #import json
  import simplejson as json#特别要注意的地方
  t=os.popen("""sudo netstat -tlpn |grep redis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """)
  ports = []
  for port int.readlines():
  r = os.path.basename(port.strip())
  ports += [{'{#REDISPORT}':r}]
  print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
  3,、试执行脚本
  # python redis_port.py
  {
  "data":[
  {
  "{#REDISPORT}":"6379"
  }
  ]
  }
  4,zabbix_agent设置
  # 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
  # chmod a+x /usr/local/zabbix/etc/redis_port.py
  5,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.
  6,服务端验证
  # zabbix_get -s 172.17.2.114 -k redis.discovery
  {
  "data":[
  {
  "{#REDISPORT}":"6379"
  }
  ]
  }
  # zabbix_get -s 172.17.2.114 -k redis_stats
  651534360
  # zabbix_get -s 172.17.2.114 -k "redis_stats"
  0
  7,zabbix web界面导入下载的模板,添加监控项后检查监控图像

  转载至:http://www.linuxidc.com/Linux/2015-07/120138.htm

2008小周 发表于 2018-11-4 21:16:10

谢谢楼主分享!
页: [1]
查看完整版本: Zabbix监控之Redis自动发现并监控(python)