nagios插件-查看redis的内存使用率
使用python写的一个nagios插件,主要实现的功能就是查看redis的内存使用率,写这个插件起初是因为公司服务器的redis一个端口的内存使用完了,导致公司网站访问出现异常,所以写了这个插件來检测redis的内存使用率。
使用方法见脚本:check_redis_mem
-
-
-
-
- import redis
- import sys
- import getopt
-
- def usage():
- print
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sys.exit(3)
-
- try:
- options,args = getopt.getopt(sys.argv[1:],"hH:P:w:c:",["help","host=","port=","warning=","critical="])
- except getopt.GetoptError as e:
- usage()
-
- warning = 75
- critical = 85
- host = ''
- port = 0
-
- for name,value in options:
- if name in ("-h","--help"):
- usage()
- if name in ("-H","--host"):
- host = value
- if name in ("-P","--port"):
- port = int(value)
- if name in ("-w","--warning"):
- warning = value
- if name in ("-c","--critical"):
- critical = value
-
- if host == '' or port == 0:
- usage()
-
- try:
- r = redis.Redis(host=host,port=port)
- if r.ping() == True:
- maxmem = r.config_get(pattern='maxmemory').get('maxmemory')
- usedmem = r.info().get('used_memory')
- temp=float(usedmem) / float(maxmem)
- tmp = temp*100
-
- if tmp >= warning and tmp < critical:
- print "mem is used %.2f%%" % (tmp)
- sys.exit(1)
- elif tmp >= critical:
- print "mem is used %.2f%%" % (tmp)
- sys.exit(2)
- else:
- print "It's ok and mem is used %.2f%%" % (tmp)
- sys.exit(0)
- else:
- print "can't connect."
- sys.exit(2)
- except Exception as e:
- print e.message
- usage()