zabbix监控redis

1.配置所有Agent(标准化目录结构)

[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf #编辑配置文件引用key

Include=/etc/zabbix/zabbix_agentd.d/*.conf  

[root@linux-node1 ~]# mkdir /etc/zabbix/scripts #存放Shell脚本


2.编写Shell脚本

 

脚本端口、连接redis服务地址根据具体情况进行修改

AUTH认证没有开启,将PASSWD修改为空即可。

[root@linux-node1 ~]# cd /etc/zabbix/scripts

[root@linux-node1 scripts]# vim redis_status.sh

#!/bin/bash

R_COMMAND="$1"

R_PORT="6379"  #根据实际情况调整端口

R_SERVER="127.0.0.1"  #根据具体情况调整IP地址

PASSWD="123"     #如果没有设置Redis密码,为空即可

redis_status(){

   (echo -en "AUTH $PASSWD\r\nINFO\r\n";sleep 1;) | /usr/bin/nc "$R_SERVER" "$R_PORT" > /tmp/redis_"$R_PORT".tmp

      REDIS_STAT_VALUE=$(grep "$R_COMMAND:" /tmp/redis_"$R_PORT".tmp | cut -d ':' -f2)

       echo "$REDIS_STAT_VALUE"

}

case $R_COMMAND in

    used_cpu_user_children)

redis_status "$R_PORT" "$R_COMMAND"

;;

    used_cpu_sys)

redis_status "$R_PORT" "$R_COMMAND"

;;

    total_commands_processed)

redis_status "$R_PORT" "$R_COMMAND"

;;

    role)

redis_status "$R_PORT" "$R_COMMAND"

;;

    lru_clock)

redis_status "$R_PORT" "$R_COMMAND"

;;

    latest_fork_usec)

redis_status "$R_PORT" "$R_COMMAND"

;;

    keyspace_misses)

redis_status "$R_PORT" "$R_COMMAND"

;;

    keyspace_hits)

redis_status "$R_PORT" "$R_COMMAND"

;;

    keys)

redis_status "$R_PORT" "$R_COMMAND"

;;

    expires)

redis_status "$R_PORT" "$R_COMMAND"

;;

    expired_keys)

redis_status "$R_PORT" "$R_COMMAND"

;;

    evicted_keys)

redis_status "$R_PORT" "$R_COMMAND"

;;

    connected_clients)

redis_status "$R_PORT" "$R_COMMAND"

;;

    changes_since_last_save)

redis_status "$R_PORT" "$R_COMMAND"

;;

    blocked_clients)

redis_status "$R_PORT" "$R_COMMAND"

;;

    bgsave_in_progress)

redis_status "$R_PORT" "$R_COMMAND"

;;

    bgrewriteaof_in_progress)

redis_status "$R_PORT" "$R_COMMAND"

;;

    used_memory_peak)

redis_status "$R_PORT" "$R_COMMAND"

;;

    used_memory)

redis_status "$R_PORT" "$R_COMMAND"

;;

    used_cpu_user)

redis_status "$R_PORT" "$R_COMMAND"

;;

    used_cpu_sys_children)

redis_status "$R_PORT" "$R_COMMAND"

;;

    total_connections_received)

redis_status "$R_PORT" "$R_COMMAND"

;;

*)

echo $"USAGE:$0 {used_cpu_user_children|used_cpu_sys|total_commands_processed|role|lru_clock|latest_fork_usec|keyspace_misses|keyspace_hits|keys|expires|expired_keys|connected_clients|changes_since_last_save|blocked_clients|bgrewriteaof_in_progress|used_memory_peak|used_memory|used_cpu_user|used_cpu_sys_children|total_connections_received}"

    esac


Redis状态参数解释: 

server : Redis 服务器信息,包含以下域:

redis_version : Redis 服务器版本

redis_git_sha1 : Git SHA1

redis_git_dirty : Git dirty flag

os : Redis 服务器的宿主操作系统

arch_bits : 架构(3264位)

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 : 正在等待阻塞命令(BLPOPBRPOPBRPOPLPUSH)的客户端的数量

memory : 内存信息,包含以下域:

used_memory : Redis分配器分配的内存总量,以字节(byte)为单位

used_memory_human : 以人类可读的格式返回 Redis分配的内存总量

used_memory_rss : 从操作系统的角度,返回 Redis已分配的内存总量(俗称常驻集大小)。这个值和 topps等命令的输出一致。

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 作为默认参数。

 

3.给脚本添加执行权限

[root@linux-node1 scripts]# chmod +x redis_status.sh

 

4.Zabbix权限不足处理办法

[root@linux-node1 ~]# rm -f /tmp/redis_6379.tmp

 

5.keyredis_status.conf的子配置文件如下:

[root@linux-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/redis_status.conf

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

 

6.重启zabbix-agent

[root@linux-node1 ~]# systemctl restart  zabbix-agent

 

7.测试一定使用Zabbix_get来获取值

[root@linux-node1 ~]# zabbix_get -s 192.168.88.135 -k redis_status[used_cpu_sys]

16.81

 

8.展示所有Key(记得将模板关联主机)如图

 

9.查看图形

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值