重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
目前脚本可以监控 redis内存使用率,fork时间
成都创新互联专注于企业成都营销网站建设、网站重做改版、邹城网站定制设计、自适应品牌网站建设、html5、商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为邹城等各大城市提供网站开发制作服务。
脚本使用方法:
监控内存使用率
./check_redis.py -H 192.168.1.100 -p 6379 -C memuse -w 80 -c 90
监控上次fork消耗时间(通常redis在进行fork时,redis服务的响应会有影响)
./check_redis.py -H 192.168.1.100 -p 6379 -C fork -w 3 -c 5
cat check_redis.py
- #!/bin/env python
- #-*-encoding=utf8-*-
- __author__ = 'songtao'
- import redis
- import sys
- import getopt
- def usage():
- print """
- -H 127.0.0.1
- -p 6379
- -C [memuse|fork]
- -w 50
- -c 80
- ./check_redis.py -H 127.0.0.1 -p 6379 -C memuse -c 80 -w 90
- """
- sys.exit(3)
- #def conn_redis(host,port):
- # r = redis.Redis(hosthost=host,portport=port)
- # if r.ping():
- # r = redis.Redis(hosthost=host,portport=port)
- # return r
- # else:
- # print "can not connect!!"
- # sys.exit(0)
- #r = redis.Redis(hosthost=host,portport=port)
- warning = 80
- critical = 90
- def memused():
- maxmem = r.config_get()['maxmemory']
- usedmem = r.info()['used_memory']
- result = float(usedmem) / float(maxmem) * 100
- if result >=warning and result < critical:
- print "Warning!;mem_used:%.2f%%|mem_used:%.2f%%" % (result,result)
- sys.exit(1)
- elif result > critical:
- print "Critical!;mem_used:%.2f%%|mem_used:%.2f%%" % (result,result)
- sys.exit(2)
- else:
- print "OK!;mem_used:%.2f%%|mem_used:%.2f%%" % (result,result)
- sys.exit(0)
- def redis_fork():
- fork_used = r.info()['latest_fork_usec'] / 1000
- result = float(fork_used) / 1000
- if result >=warning and result < critical:
- print "Warning!;latest_fork:%.2f%%|latest_fork:%.2f%%" % (result,result)
- sys.exit(1)
- elif result > critical:
- print "Critical!;latest_fork:%.2f%%|latest_fork:%.2f%%" % (result,result)
- sys.exit(2)
- else:
- print "OK!;latest_fork:%.2f%%|latest_fork:%.2f%%" % (result,result)
- sys.exit(0)
- if "__main__" == __name__:
- try:
- opts,args = getopt.getopt(sys.argv[1:],"h:H:p:C:w:c:")
- for opt,arg in opts:
- if opt in ("-h","--help"):
- usage()
- if opt in ("-H","--host"):
- host = arg
- if opt in ("-p","--port"):
- port = int(arg)
- if opt in ("-C","--command"):
- cmd = arg
- if opt in ("-w","--warning"):
- warning = float(arg)
- if opt in ("-c","--critical"):
- critical = float(arg)
- except:
- print "please check the host or opts"
- usage()
- sys.exit(3)
- # print opts
- # print args
- # print "host is %s ,port is %s,cmd is %s,warning is %s,critical is %s" % (host,port,cmd,warning,critical)
- try:
- r = redis.Redis(hosthost=host,portport=port)
- r.ping()
- except:
- print "redis can not connected or command is error"
- usage()
- sys.exit(3)
- if cmd == "memuse":
- memused()
- if cmd == "fork":
- redis_fork()