ItGo.me - 专注IT技术分享

首页 > Redis > Nagios的redis监控插件 check_redis.py

Nagios的redis监控插件 check_redis.py

时间:2016-08-28来源:网友分享 点击:
最近写的简单监控redis-server的nagios插件,请大家多多拍砖
使用python3 ,由于用了argparse,2.7以后版本才有
使用redis-py API
使用前执行:
#git clone
#python3 redis-py/ install
附赠nagiosgraph绘图模版
# CHECK_REDIS
# OK - |MEMORY USEAGE 55%; CURRENT CONNECTIONS IS 177
/perfdata:MEMORY USEAGE ([.\d]+)%; CURRENT CONNECTIONS IS ([.\d]+)/
and push @s, [ 'REDIS',
               [ 'MEMORY_USAGE', GAUGE, $1 ],
               [ 'CURRENT_CONNS', GAUGE, $2 ] ];
#
标签:
代码片段(3)
1. [代码]check_redis.py    跳至
!/usr/local/bin/python3'''2012 09 19 sun.qingyun@check_redis.py v0.1Check Redis Server plugin for Nagios.This Plugin requires the Redis-py API.This Plugin was tested only in the python 3.2.3'''import sysimport argparseimport redis#SET NAGIOS EXIT STATUS CODEST_OK=0 #ST_WR=1 #ST_CR=2 #ST_UK=3 ##INITIALIZE SYS ARGUMENTS PARSERparser = argparse.ArgumentParser()parser.add_argument('-H', '--host', help='Redis Server IP Address')parser.add_argument('-p', '--port', type=int, default=6379, help='Redis Service Port default:6379')parser.add_argument('-d', '--dbid', type=int, default=0, help='Redis Database ID Number default:0')parser.add_argument('-w', '--warning', type=int, default=80, help='Threshold Warning Percent default:80')parser.add_argument('-c', '--critical', type=int, default=95, help='Threshold Critical Percent default:95')parser.add_argument('-v', '--verbose',action="count", help='Increase Output Verbosity Example:-v -vv')args = parser.parse_args()rHost = args.hostrPort = args.portrWarn = args.warningrCrit = args.criticalrDbid = args.dbid#SET REDIS CONNECTIONrConn = redis.Redis(host=rHost, port=rPort, db=rDbid, socket_timeout=3)if rConn.ping():#   GET SOME VALUES OF SERVER STATUSrConf = rConn.config_get()rConfMaxmem = int(rConf['maxmemory'])rInfo = ()rInfoCurrmem = int(rInfo['used_memory'])rInfoCurrconns = rInfo['connected_clients']rInfoDbkeys = rInfo['db{}'.format(rDbid)]['keys']rInfoMemusage = int(rInfoCurrmem / rConfMaxmem * 100)#   CHECK OUTPUT IF VERBOSITY IS CALLEDif args.verbose == 2:rOutput = rInfo.items()elif args.verbose == 1:rOutput = 'SET MAX MEMORY IS {}; CURRENT USED MEMORY IS {}; CURRENT CONNECTIONS IS {}; {}KEYS IN DB{}'.format(rConfMaxmem, rInfoCurrmem,rInfoCurrconns, rInfoDbkeys, rDbid)else:rOutput = 'MEMORY USEAGE {}%; CURRENT CONNECTIONS IS {}'.format(rInfoMemusage, rInfoCurrconns)#DECIDE THE MEMORY USAGE STATUSif rInfoMemusage >= rCrit:print('CRITICAL - |{}'.format(rOutput))sys.exit(ST_CR)elif rInfoMemusage >= rWarn:print('WARNING - |{}'.format(rOutput))sys.exit(ST_WR)else:print('OK - |{}'.format(rOutput))sys.exit(ST_OK)else:print('PROBLEM IN CONNECTING SERVER')sys.exit(ST_UK)

2. [图片] check_redis.jpg    
3. [图片] check_redispy.jpg    

Nagios的redis监控插件 check_redis.py

Nagios的redis监控插件 check_redis.py  讨论


redis集群部署及常用的操作命令(上)

简单说下自己测试搭建简单的redis集群的大体步骤: 1.首先你的有6个redis(官方说最少6个,3master,3slave),可以先在一台机器上搭建,搭建到多台上应该只需要改变启动命令即可(可能需要一...

用python和redis开发高性能监控平台及框架升级过程

关于python应用监控平台的话题 最近的更新: 先说明,这不是人人业务的监控框架,是我在以前公司参与的一个项目。。。 刚入行的时候,对于监控方面,用的是nagios和cacti。 两个都很强大的...

使用 acl 库编写高效的 C++ redis 客户端应用

一、概述 (可以直接略过此段)redis 最近做为 nosql 数据服务应用越来越广泛,其相对于 memcached 的最大优点是提供了更加丰富的数据结构,所以应用场景就更为广泛。redis 的出现可谓是广大网...

最近写的简单监控redis-server的nagios插件,请大家多多拍砖 使用python3 ,由于用了argparse,2.7以后版本才有 使用redis-py API 使用前执行: #git clone #python3 redis-py/ install 附赠nagiosgraph绘图模版 # CHECK
------分隔线----------------------------