redis监控zabbix自动化模板-节点状态、内存、连接数
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,首先介绍下监控redis那些信息:Redis ping:检验pingRedis alive:查看检查端口是否aliveRedis connections:查看连接数Redis blockedClien
千家信息网最后更新 2026年11月01日redis监控zabbix自动化模板-节点状态、内存、连接数
首先介绍下监控redis那些信息:
Redis ping:检验pingRedis alive:查看检查端口是否aliveRedis connections:查看连接数Redis blockedClients:正在等待阻塞客户端数量Redis connectionsUsage:redis的连接使用率Redis memoryUsage:redis内存使用量Redis memoryUsageRate:redis内存使用率Redis evictedKeys:运行以来删除过的key的数量Redis rejectedConnections:拒绝连接数Redis ops:redis的OPSRedis hitRate:redis命中率redis自动检测端口(shell)
#!/bin/shREDIS_SERVER_PIDS="$(ps -ef|egrep -v 'grep|egrep|vi|vim|find|cat|tac|head|tail|more|less'|grep 'redis-server'|awk '{print $2}')"REDIS_PORTS=""for pid in ${REDIS_SERVER_PIDS};do PORTS=$(sudo netstat -anlp|grep -w ${pid}|awk '{print $4}'|awk -F: '{print $2}'|grep -v "[0-9][0-9][0-9][0-9][0-9]"|grep -v "^$" |head -1) REDIS_PORTS="${PORTS} ${REDIS_PORTS}"doneport=(${REDIS_PORTS})function node_port {length=${#port[@]}printf "{\n"printf '\t'"\"data\":["for ((i=0;i<$length;i++));doprintf '\n\t\t{'printf "\"{#REDIS_PORT}\":\"${port[$i]}\"}"if [ $i -lt $[$length-1] ];thenprintf ','fidoneprintf "\n\t]\n"printf "}\n"}node_porredis自动检测端口(python)
#!/usr/bin/env pythonimport osimport json#t=os.popen("""netstat -natp|awk -F: '/redis-server/&&/LISTEN/{print $2}'|awk '{print $1}' """)t=os.popen("""ps aux |egrep -v 'grep|egrep|vi|vim|cat|tac|head|tail|more|less'|grep 'redis-server'|awk -F '*:' '{print $2}'|awk '{print $1}' """)ports = []for port in t.readlines(): r = os.path.basename(port.strip()) ports += [{'{#REDIS_PORT}':r}]print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))检测内存、节点状态、连接数、内存使用率、连接数使用率等等
#!/usr/bin/env python#-*- coding: utf-8 -*-__author__ = 'chenmingle'import sysimport subprocessimport jsontry: import redisexcept Exception, e: print 'pip install redis' sys.exit(1)class Redis(object): def __init__(self, host, port, password=None): self.host = host self.port = port self.password = password if self.password: self.rds = redis.StrictRedis(host=host, port=port, password=self.password) else: self.rds = redis.StrictRedis(host=host, port=port) try: self.info = self.rds.info() except Exception, e: self.info = None def redis_connections(self): try: return self.info['connected_clients'] except Exception, e: return 0 def redis_connections_usage(self): try: curr_connections = self.redis_connections() max_clients = self.parse_config('maxclients') rate = float(curr_connections) / float(max_clients) return "%.2f" % (rate * 100) except Exception, e: return 0 def redis_used_memory(self): try: return self.info['used_memory'] except Exception, e: return 0 def redis_memory_usage(self): try: used_memory = self.info['used_memory'] max_memory = self.info['maxmemory'] system_memory = self.info['total_system_memory'] if max_memory: rate = float(used_memory) / float(max_memory) else: rate = float(used_memory) / float(system_memory) return "%.2f" % (rate * 100) except Exception, e: return 0 def redis_ping(self): try: return self.rds.ping() except Exception, e: return False def rejected_connections(self): try: return self.info['rejected_connections'] except Exception, e: return 999 def evicted_keys(self): try: return self.info['evicted_keys'] except Exception, e: return 999 def blocked_clients(self): try: return self.info['blocked_clients'] except Exception, e: return 0 def ops(self): try: return self.info['instantaneous_ops_per_sec'] except Exception, e: return 0 def hitRate(self): try: misses = self.info['keyspace_misses'] hits = self.info['keyspace_hits'] rate = float(hits) / float(int(hits) + int(misses)) return "%.2f" % (rate * 100) except Exception, e: return 0 def parse_config(self, type): try: return self.rds.config_get(type)[type] except Exception, e: return None def test(self): print 'Redis ping: %s' % self.redis_ping() print 'Redis alive: %s ' % check_alive(self.host, self.port) print 'Redis connections: %s' % self.redis_connections() print 'Redis blockedClients %s' % self.blocked_clients() print 'Redis connectionsUsage: %s%%' % self.redis_connections_usage() print 'Redis memoryUsage: %s' % self.redis_used_memory() print 'Redis memoryUsageRate: %s%%' % self.redis_memory_usage() print 'Redis evictedKeys: %s' % self.evicted_keys() print 'Redis rejectedConnections: %s' % self.rejected_connections() print 'Redis ops: %s' % self.ops() print 'Redis hitRate: %s%%' % self.hitRate()def check_alive(host, port): cmd = 'nc -z %s %s > /dev/null 2>&1' % (host, port) return subprocess.call(cmd, shell=True)def parse(type, host, port, password): rds = Redis(host, port, password) if type == 'connections': print rds.redis_connections() elif type == 'connectionsUsage': print rds.redis_connections_usage() elif type == 'blockedClients': print rds.blocked_clients() elif type == 'ping': print rds.redis_ping() elif type == 'alive': print check_alive(host, port) elif type == 'memoryUsage': print rds.redis_used_memory() elif type == 'memoryUsageRate': print rds.redis_memory_usage() elif type == 'rejectedConnections': print rds.rejected_connections() elif type == 'evictedKeys': print rds.evicted_keys() elif type == 'hitRate': print rds.hitRate() elif type == 'ops': print rds.ops() else: rds.test()if __name__ == '__main__': try: type = sys.argv[1] host = sys.argv[2] port = sys.argv[3] if sys.argv.__len__() >=5: password = sys.argv[4] else: password = None except Exception, e: print "Usage: python %s type 127.0.0.1 6379" % sys.argv[0] sys.exit(1) parse(type, host, port, password) ###python支持redis模板否则会报错
zabbix配置配置文件添加
UserParameter=redis_port.discovery-py,/app/sinova/zabbix/scripts/check_redis_port.pyUserParameter=redis.stats[*],/app/sinova/python2.7.15/bin/python /app/sinova/zabbix/scripts/check_redis.py $1 127.0.0.1 $2###配置完重启zabbix否则不生效zabbix模板配置

自动发现规则
###配置监控相项把以上需要监控配置即可例子
redis.stats[memoryUsageRate,{#REDIS_PORT}] {HOST.NAME}:{#REDIS_PORT} redis redis 连接数使用率>80%,达到{ITEM.LASTVALUE1} {Template for redis-zabbix:redis.stats[connectionsUsage,{#REDIS_PORT}].last()}>80
配置
使用率
内存
监控
端口
检测
模板
数量
状态
节点
使用量
例子
信息
命中率
客户
客户端
文件
正在
规则
utf-8
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网高科技
南京欣网互联网络科技有限公司
互联网和科技技术
疫情对互联网科技公司影响
互联网科技有限公司图片
金诺互联网科技
嘟嘟瓜互联网科技
万易互联网科技有限公司
易通互联网络科技有限公司
兼蜜互联网科技
互联网金融 科技创新
崇明区互联网教育科技诚信经营
深圳艾果互联网通讯科技
合肥互联网科技公司公章图片
高科技互联网套路
广州千川互联网科技有限公司
互联网科技股为什么大涨
福建互联网展示科技馆设计
唐山双旺合互联网科技产业园
上海互联网科技园景观
河南云网互联网络科技有限公司
智网互联网科技
互联网科技logo设计
互联网科技公司的市场部门
湖南洣水互联网科技有限公司扣款
科技互联网大厂
群盈汇互联网科技有限公司
互联网金融科技公司的优势
互联网科技接地气
悟空问答互联网科技