您好,登錄后才能下訂單哦!
目前腳本可以監(jiān)控 redis內(nèi)存使用率,fork時(shí)間
腳本使用方法:
監(jiān)控內(nèi)存使用率
./check_redis.py -H 192.168.1.100 -p 6379 -C memuse -w 80 -c 90
監(jiān)控上次fork消耗時(shí)間(通常redis在進(jìn)行fork時(shí),redis服務(wù)的響應(yīng)會(huì)有影響)
./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()
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。