redis3.0叢集狀態監控for zabbix 需要python2.7
阿新 • • 發佈:2018-12-25
#coding=utf-8 __author__ = '[email protected]' '''This scripte use to monitor online redis cluster status and nodes status! need python 2.7''' import os,sys,time,traceback from rediscluster import StrictRedisCluster cluster_nodes = [{"host":"Redis1.xxxxx.db","port":"7000"},{"host":"Redis1.xxxxx.db","port":"7001"},{"host":"Redis2.xxxxx.db","port":"7002"}, {"host":"Redis2.xxxxx.db","port":"7003"},{"host":"Redis3.xxxxx.db","port":"7004"},{"host":"Redis3.xxxxx.db","port":"7005"}] try: rc = StrictRedisCluster(startup_nodes=cluster_nodes, decode_responses=True) except Exception, err: print err print 'failed to connect redis cluster!' sys.exit(0) def getClusterStatus(): cs = rc.execute_command('cluster','info') clusterstatus = cs.split('\r')[0].split(':') if clusterstatus[1] == 'ok': rediscluster = 0 else: rediscluster = 1 print rediscluster def getClusterNode(): cn = rc.execute_command('cluster','nodes') nodescount1 = cn.count("connected") nodescount2 = cn.count("disconnected") nodescount = nodescount1 - nodescount2 print nodescount if __name__ == '__main__': if str(sys.argv[1]) == 'nodes': getClusterNode() elif str(sys.argv[1]) == 'status': getClusterStatus()