title: redis监控脚本 #标题tags: redis,zabbix, #标签
categories: redis # 分类
date: 2020-04-07

记录下redis监控的脚本!

  1. #!/usr/bin/env bash
  2. # Author: Ray
  3. # Description : monitor redis and send data to zabbix-server
  4. # -------------------------------------------------------------------------------------------
  5. # IDC1 dt-redis节点 存储数据缓存 ss-redis节点: 存储session数据
  6. # dt-redis-3 dt-redis-4 dt-redis-5 dt-redis-6 dt-redis-7 dt-redis-8 dt-redis-9 dt-redis-10
  7. # ss-redis-3 ss-redis-4 ss-redis-5 ss-redis-6 ss-redis-7 ss-redis-8 ss-redis-9 ss-redis-10
  8. # -------------------------------------------------------------------------------------------
  9. function check_cluster_status(){
  10. # $1: redis-type (dt|ss)
  11. # $2: redis-node
  12. # $3: port
  13. status=`redis-cli -c -h $2 -p $3 cluster info | grep "cluster_state" | awk -F ':' '{print $NF}'`
  14. if echo $status | grep "ok" >/dev/null;then
  15. zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd.redis.info.cluster_state -o ${status}
  16. else
  17. status="Fail"
  18. zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd.redis.info.cluster_state -o ${status}
  19. fi
  20. }
  21. # redis 集群状态数据上报
  22. check_cluster_status dt 10.10.5.3 6379
  23. check_cluster_status ss 10.10.5.3 6380
  24. function get_data(){
  25. # $1: redis-type (dt|ss)
  26. # $2: redis-node
  27. # $3: port
  28. # $4: check_key
  29. # $5: redis-number
  30. data=`/usr/bin/redis-cli -h ${2} -p ${3} info | grep -w ${4} | awk -F ':' '{print $NF}'`
  31. /usr/bin/zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd-${5}.redis.info.${4} -o ${data}
  32. }
  33. # keys 注释
  34. #-----------------------------------------------------------
  35. # used_memory_peak: Redis使用内存的峰值,字节数
  36. # used_memory_peak_human: redis使用内存的峰值 单位G
  37. # connected_clients: 已连接客户端的数量(不包括通过从属服务器连接的客户端)
  38. # instantaneous_input_kbps: 瞬间的Redis输入网络流量(kbps)
  39. # instantaneous_output_kbps: 瞬间的Redis输出网络流量(kbps)
  40. # instantaneous_ops_per_sec: 服务器每秒钟执行的命令数量
  41. # keyspace_misses: 查找键未命中的次数
  42. # evicted_keys: 因内存used_memory达到maxmemory后,每秒被驱逐的key个数
  43. # expired_keys: 因为过期而被自动删除的数据库键数量
  44. # rejected_connections: 因连接数达到maxclients上限后,被拒绝的连接个数
  45. #-----------------------------------------------------------
  46. keys="used_memory_peak
  47. connected_clients
  48. instantaneous_input_kbps
  49. instantaneous_output_kbps
  50. instantaneous_ops_per_sec
  51. keyspace_misses
  52. evicted_keys
  53. expired_keys
  54. rejected_connections
  55. "
  56. # 获取redis info信息,并发送至zabbix
  57. for i in $(seq 3 10);do
  58. for key in $keys;do
  59. get_data dt 10.10.5.${i} 6379 $key $i
  60. get_data ss 10.10.5.${i} 6380 $key $i
  61. done
  62. done