redis的监控 矫情吗;* 2022-01-27 15:51 192阅读 0赞 1 Redis存活监控 redis存活监控 (redis\_alive):redis本地监控agent使用ping,如果指定时间返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。当返回值不为1时,redis挂了,告警 [root@bfd-ango-01 zabbix_agentd.d]# redis-cli -h 47.105.115.143 -p 7000 -c ping | grep -c PONG 1 客户端连接个数 连接个数 (connected\_clients):客户端连接个数,如果连接数过高,影响redis吞吐量。>5000 时告警 [root@bfd-ango-01 zabbix_agentd.d]# redis-cli -h 47.105.115.143 -p 7000 -c info |grep -w "connected_clients" | awk -F":" '{print $2}' 5 连接数使用率(connected\_clients\_pct) 连接数使用百分比,通过(connected\_clients/maxclients)计算;如果达到1,redis开始拒绝新连接创建,告警 [root@wyl01 redis]# redis-cli -h 192.168.52.128 -p 7000 info | grep -w rejected_connections rejected_connections:0 新创建连接个数 (total\_connections\_received): 如果新创建连接过多,过度地创建和销毁连接对性能有影响,说明短连接严重或连接池使用有问题,告警 [root@wyl01 redis]# redis-cli -h 192.168.52.128 -p 7000 info | grep -w total_connections_received total_connections_received:12 list阻塞调用被阻塞的连接个数 (blocked\_clients): 如果监控数据大于0,告警 [root@wyl01 redis]# redis-cli -h 192.168.52.128 -p 7000 info | grep -w blocked_clients blocked_clients:0 redis分配的内存大小 (used\_memory): redis真实使用内存,不包含内存碎片 [root@wyl01 redis]# redis-cli -h 192.168.52.128 -p 7000 info | grep -w used_memory used_memory:1507792 <table> <tbody> <tr> <td> <p>redis.cluster.status[cluster_known_nodes]</p> </td> <td> <p>集群的节点数 (cluster_known_nodes):集群中redis节点的个数</p> </td> </tr> <tr> <td> <p>redis.cluster.status[cluster_slots_fail]</p> </td> <td> <p>检测下线的数据槽slots个数 (cluster_slots_fail):集群正常运行时,应该为0. 如果大于0说明集群有slot存在故障</p> </td> </tr> <tr> <td> <p>redis.cluster.status[cluster_slots_ok]</p> </td> <td> <p>集群数据槽slots分配情况 (cluster_slots_assigned):集群正常运行时,默认16384个slots</p> </td> </tr> <tr> <td> <p>redis.status.clusterOK</p> </td> <td> <p>集群健康状态 (clusster_state):cluster_state不为OK则告警</p> </td> </tr> <tr> <td> <p>redis.status.ping</p> </td> <td> <p>PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。当返回值不为1时,redis挂了,告警</p> </td> </tr> <tr> <td> <p>redis.status.server</p> </td> <td> <p>redis-server服务个数</p> </td> </tr> <tr> <td> <p>redis.status[cluster_enabled]</p> </td> <td> <p>通过info的cluster_enabled监控是否启用集群模式。不等于1则告警</p> </td> </tr> <tr> <td> <p>redis.status[connected_clients]</p> </td> <td> <p>客户端连接个数,如果连接数过高,影响redis吞吐量。</p> </td> </tr> <tr> <td> <p>redis.status[keyspace_hits]</p> </td> <td> <p>请求键被命中次数 (keyspace_hits): redis请求键被命中的次数</p> </td> </tr> <tr> <td> <p>redis.status[keyspace_misses]</p> </td> <td> <p>请求键未被命中次数 (keyspace_misses): redis请求键未被命中的次数</p> </td> </tr> <tr> <td> <p>redis.status[rejected_connections]</p> </td> <td> <p>拒绝的连接个数(rejected_connections): redis连接个数达到maxclients限制,拒绝新连接的个数。告警</p> </td> </tr> <tr> <td> <p>redis.status[total_commands_processed]</p> </td> <td> <p>redis处理的命令数 (total_commands_processed): 监控采集周期内的平均qps</p> </td> </tr> <tr> <td> <p>redis.status[total_connections_received]</p> </td> <td> <p>如果新创建连接过多,过度地创建和销毁连接对性能有影响,说明短连接严重或连接池使用有问题,告警。</p> </td> </tr> <tr> <td> <p>redis.status[used_memory]</p> </td> <td> <p>redis分配的内存大小 (used_memory): redis真实使用内存,不包含内存碎片</p> </td> </tr> </tbody> </table> [root@bfd-ango-01 zabbix_agentd.d]# cat redis_status.conf UserParameter=redis.status.server,ps -ef |grep redis-server|grep -v grep|wc -l UserParameter=redis.status.clusterOK,/opt/redis/bin/redis-cli -c -p 7000 cluster info|grep -c cluster_state:ok UserParameter=redis.status.ping,/opt/redis/bin/redis-cli -c -p 7000 ping | grep -c PONG UserParameter=redis.status[*],/usr/bin/sh /etc/zabbix/shell/redis_status.sh $1 UserParameter=redis.cluster.status[*],/usr/bin/sh /etc/zabbix/shell/redis_cluster_status.sh $1 [root@bfd-ango-01 shell]# cat redis_status.sh redisCli=/opt/redis/bin/redis-cli host=47.105.115.143 port=7000 ${redisCli} -h ${host} -p ${port} -c info |grep -w $1|awk -F ':' '{print $2}' [root@bfd-ango-01 shell]# cat redis_cluster_status.sh redisCli=/opt/redis/bin/redis-cli host=47.105.115.143 port=7000 ${redisCli} -h ${host} -p ${port} -c cluster info |grep -w $1|awk -F ':' '{print $2}' zabbix 的监控,这里不再添加。
还没有评论,来说两句吧...