1. 技术领域
提供一种Redis集群中各Redis节点的监控处理方法,能够采集Redis节点的资源信息、性能指标数据,集群内多个Redis节点服务运行状态监控。实现告警监控信息、资源和性能指标的采集与分析的监控方法。
2. 背景技术
2.1 Redis简介
Redis 是一种开源的内存中key-value数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings), 散列(hashes), 列表(lists), 集合(sets),有序集合(sorted sets)与范围查询。Redis也可以被看成是一个数据结构服务器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上。
Redis可使用一个或多个Redis哨兵(Sentinel),和Redis的主节点(Master)、 多个从节点(Slave)组成一个集群。Sentinel来检测Redis的Master节点是否运行正常,并在Master节点发生故障时,将 Master的Slave提升为Master,并在老的Master重新加入到Sentinel的群集之后,会被重新配置,作为新Master的Slave。基于Redis的 Sentinel可实现集群的高可用管理功能。
2.2 Redis监控方法
Redis 监控最直接的方法就是在装有Redis的服务器上使用Redis服务提供的 INFO 命令,只需要执行下面一条命令:
./redis-cli -p 端口号info
会返回一个Redis节点的Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace 8个部分的结果信息。从INFO返回结果中得到相关信息,就可以达到监控一个Redis节点的目的。
如下结果返回的是一个Redis的Master节点的信息:
# Server
redis_version:2.8.8 # Redis 的版本
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:bf5d1747be5380f
redis_mode:standalone
os:Linux 2.6.32-220.7.1.el6.x86_64 x86_64
arch_bits:64
gcc_version:4.4.7 #gcc版本
process_id:49324 # 当前 Redis 服务器进程id
run_id:bbd7b17efcf108fdde285d8987e50392f6a38f48
tcp_port:6379
uptime_in_seconds:1739082 # 运行时间(秒)
uptime_in_days:20 # 运行时间(天)
# Clients