zabbix 监控redis

1. 在zabbix_agent 配置脚本

  1. #!/bin/bash
  2. redis_status(){
  3. R_PORT=$1
  4. R_COMMAND=$2
  5. (echo -en "INFO \r\n";sleep 1;) | ncat 127.0.0.1 "$R_PORT" > /usr/local/zabbix/redis_"$R_PORT".tmp
  6. REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /usr/local/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2)
  7. echo $REDIS_STAT_VALUE
  8. }
  9. help(){
  10. echo "${0} + redis_status + PORT + COMMAND"
  11. }
  12. main(){
  13. case $1 in
  14. redis_status)
  15. redis_status $2 $3;;
  16. *)
  17. help ;;
  18. esac
  19. }
  20. main $1 $2 $3
root@Z4:~# mkdir /usr/local/zabbix
root@Z4:~# chown zabbix.zabbix  /usr/local/zabbix  -R
root@Z4:/etc/zabbix/zabbix_agentd.d# chmod +x redis.sh

2. 调用脚本

先再本机测

root@Z4:/etc/zabbix/zabbix_agentd.d# bash redis.sh redis_status 6379 connected_clients
1

再修改zabbix-agent.conf

UserParameter=redis.status[*],/etc/zabbix/zabbix_agentd.d/redis.sh  "$1"  "$2" "$3"

再在proxy 或server 上测,若遇到以下问题 ,是由于/usr/local/zabbix/redis_6379.tmp 刚才脚本用bash执行过,删除即可

root@z2:~
/etc/zabbix/zabbix_agentd.d/redis.sh: 7: /etc/zabbix/zabbix_agentd.d/redis.sh: cannot create /usr/local/zabbix/redis_6379.tmp: Permission denied
1

在server或proxy 上测

root@z2:~# zabbix_get -s 192.168.1.104 -p 10050  -k  redis.status[redis_status,6379,connected_clients]
2
root@z2:~# zabbix_get -s 192.168.1.104 -p 10050  -k  redis.status[redis_status,6379,used_memory]
881992

3. 创建模板、监控项、图形

zabbix 监控redis - 灰信网(软件开发博客聚合) - 图1




zabbix 监控redis - 灰信网(软件开发博客聚合) - 图2

4.创建触发器

当redis 连接数大于3时报警

zabbix 监控redis - 灰信网(软件开发博客聚合) - 图3

验证

当redis 连接数大于3时报警

zabbix 监控redis - 灰信网(软件开发博客聚合) - 图4

长黑虚线为3 ,触发器的准线

zabbix 监控redis - 灰信网(软件开发博客聚合) - 图5