zabbix监控redis状态

redis监控脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/bin/bash
COMMAND=$1
PORT="6379" #根据实际情况调整端口
SERVER="127.0.0.1" #根据具体情况调整IP地址
PASSWD="" #如果没有设置Redis密码,为空即可
redis_status(){
(echo -en "AUTH $PASSWD\r\nINFO\r\n";sleep 1;) | /usr/bin/nc "$SERVER" "$PORT" > /tmp/redis_"$PORT".tmp
REDIS_STAT_VALUE=$(grep "$COMMAND:" /tmp/redis_"$PORT".tmp | cut -d ':' -f2)
echo "$REDIS_STAT_VALUE"
}
used_cpu_user_children() {
redis_status "$PORT" "$COMMAND"
}
used_cpu_sys() {
redis_status "$PORT" "$COMMAND"
}
total_commands_processed() {
redis_status "$PORT" "$COMMAND"
}
role() {
redis_status "$PORT" "$COMMAND"
}
lru_clock() {
redis_status "$PORT" "$COMMAND"
}
latest_fork_usec() {
redis_status "$PORT" "$COMMAND"
}
keyspace_misses() {
redis_status "$PORT" "$COMMAND"
}
keyspace_hits() {
redis_status "$PORT" "$COMMAND"
}
keys() {
redis_status "$PORT" "$COMMAND"
}
expires() {
redis_status "$PORT" "$COMMAND"
}
expired_keys() {
redis_status "$PORT" "$COMMAND"
}
evicted_keys() {
redis_status "$PORT" "$COMMAND"
}
connected_clients() {
redis_status "$PORT" "$COMMAND"
}
changes_since_last_save() {
redis_status "$PORT" "$COMMAND"
}
blocked_clients() {
redis_status "$PORT" "$COMMAND"
}
bgsave_in_progress() {
redis_status "$PORT" "$COMMAND"
}
bgrewriteaof_in_progress() {
redis_status "$PORT" "$COMMAND"
}
used_memory_peak() {
redis_status "$PORT" "$COMMAND"
}
used_memory() {
redis_status "$PORT" "$COMMAND"
}
used_cpu_user() {
redis_status "$PORT" "$COMMAND"
}
used_cpu_sys_children() {
redis_status "$PORT" "$COMMAND"
}
total_connections_received() {
redis_status "$PORT" "$COMMAND"
}
$1

Redis状态参数解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
server : Redis 服务器信息,包含以下域:
redis_version : Redis 服务器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服务器的宿主操作系统
arch_bits : 架构(32 或 64 位)
multiplexing_api : Redis 所使用的事件处理机制
gcc_version : 编译 Redis 时所使用的 GCC 版本
process_id : 服务器进程的 PID
run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port : TCP/IP 监听端口
uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数
uptime_in_days : 自 Redis 服务器启动以来,经过的天数
lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理
clients : 已连接客户端信息,包含以下域:
connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list : 当前连接的客户端当中,最长的输出列表
client_longest_input_buf : 当前连接的客户端当中,最大输入缓存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
memory : 内存信息,包含以下域:
used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量
used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_peak : Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值
used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息
参数还可以是下面这两个:
all : 返回所有信息
default : 返回默认选择的信息
当不带参数直接调用 INFO 命令时,使用 default 作为默认参数。

agent配置

1
2
cat /etc/zabbix/zabbix_agentd.conf
UserParameter=redis_status[*],/bin/bash /etc/zabbix/scripts/redis_status.sh "$1"

git项目地址

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器