cheyunhua

zabbix示例之监控Redis状态(九)

监控redis也是通过info信息来监控redis的状态:http://www.51niux.com/?id=130    #此链接里面有info信息各参数的意思

一、 zabbix监控单实例redis(通过自动发现的方式)

#这种方式呢也是不太推荐的一种方式,虽然比较省事,但是在出图上面就有点麻烦了,这里脚本格式就不写的那么严谨了。

1.1 客户端的配置

自动发现脚本编写:

# cat /etc/zabbix/scripts/redis_parameter   #自动发现redis脚本参数的脚本

Bash
#!/bin/bash
/usr/local/bin/redis-cli -p 3000 -a  redis66cs "info">/home/zabbix/tmp/info.txt
cat /tmp/info.txt |grep -v "^#"|awk -F ":" {\'print $1\'}|grep -v [[:space:]] >/home/zabbix/tmp/info_parameter
Redis_parameter_discovery () {
   Redis_Site=`cat /home/zabbix/tmp/info_parameter`
   Redis_Site_Num=`echo ${Redis_Site}|awk {\'print NF\'}`
   Redis_Site_parameter=($Redis_Site)
   printf \'{\n\'
   printf \'\t"data":[\n\'
   for((i=0;i<${Redis_Site_Num};i++))
   {
      if [ `expr $i + 1 ` != ${Redis_Site_Num} ];then  
         printf "\t{\"{#SITENAME}\":\"${Redis_Site_parameter[$i]}\"},\n"
      else
         printf "\t{\"{#SITENAME}\":\"${Redis_Site_parameter[$i]}\"}\n"
      fi
   }
   printf \'\t]\n\'
   printf \'}\n\'
}
case "$1" in
redis_parameter_discovery)
   Redis_parameter_discovery
;;
*)
echo "Usage:$0 redis_parameter_discovery"
;;
esac

#这是是根据之前写的硬盘自动发现。网卡自动发现的脚本改的,这种就是将redis的info信息里面左边的参数名都提取出来输出为json格式。

创建上面脚本对应的目录和文件:

#mkdir /home/zabbix/tmp

#touch /home/zabbix/tmp/info.txt

#touch /home/zabbix/tmp/info_parameter

#chown -R zabbix:zabbix /home/zabbix

#chmod 777 /home/zabbix/tmp/{info.txt,info_parameter}

编写redis的info取值的脚本:

# cat /etc/zabbix/scripts/redis_info.sh   #这个脚本就是根据自动发现传过来的info的参数名进行grep取值

Bash
#!/bin/bash
/usr/local/bin/redis-cli -p 3000 -a  redis66cs "info">/home/zabbix/tmp/info.txt
Redis_Site=`cat /home/zabbix/tmp/info_parameter`
Redis_info_value=$(grep "$1"\: /home/zabbix/tmp/info.txt|awk -F ":" {\'print $NF\'})
echo $Redis_info_value

#注意这里一定grep 一定要是"$1"\:这种以:结尾,比如:used_memory:和  used_memory_human:,会精确匹配而非模糊匹配

编写自定义的key:

# cat /etc/zabbix/zabbix_agentd.conf.d/redis_parameter_discovery.conf   #redis.parameter.discovery就是我们自定义的key

Bash
UserParameter=redis.parameter.discovery,/etc/zabbix/scripts/redis_parameter redis_parameter_discovery

#redis.parameter.discovery这个key的作用就是调用redis_parameter这个脚本,将redis的所有info的参数名提取出来。

# cat /etc/zabbix/zabbix_agentd.conf.d/redis_info_value.conf   #通过上面自动发现提取出来的参数名作为$1传递给下面的脚本

Bash
UserParameter=redis.info.value[*],/etc/zabbix/scripts/redis_info.sh $1

给对应的脚本授权:

#chown -R zabbix:zabbix /etc/zabbix/*

#chmod +x  zabbix:zabbix /etc/zabbix/scripts/*

重启客户端服务:

#/etc/init.d/zabbix/zabbix_agentd restart

博文来自:www.51niux.com

1.2 zabbix_proxy代理的操作

#/usr/local/zabbix/bin/zabbix_get -s 192.168.14.56 -k redis.parameter.discovery  #测试redis的自动发现info参数的脚本

Bash
{
        "data":[
        {"{#SITENAME}":"redis_version"},
        {"{#SITENAME}":"redis_git_sha1"},
        {"{#SITENAME}":"redis_git_dirty"},
        {"{#SITENAME}":"redis_build_id"},
        {"{#SITENAME}":"redis_mode"},
        {"{#SITENAME}":"os"},
        {"{#SITENAME}":"arch_bits"},
        {"{#SITENAME}":"multiplexing_api"},
        {"{#SITENAME}":"gcc_version"},
        {"{#SITENAME}":"process_id"},
        {"{#SITENAME}":"run_id"},
        {"{#SITENAME}":"tcp_port"},
        {"{#SITENAME}":"uptime_in_seconds"},
        {"{#SITENAME}":"uptime_in_days"},
        {"{#SITENAME}":"hz"},
        {"{#SITENAME}":"lru_clock"},
        {"{#SITENAME}":"executable"},
        {"{#SITENAME}":"config_file"},
        {"{#SITENAME}":"connected_clients"},
        {"{#SITENAME}":"client_longest_output_list"},
        {"{#SITENAME}":"client_biggest_input_buf"},
        {"{#SITENAME}":"blocked_clients"},
        {"{#SITENAME}":"used_memory"},
        {"{#SITENAME}":"used_memory_human"},
        {"{#SITENAME}":"used_memory_rss"},
        {"{#SITENAME}":"used_memory_rss_human"},
        {"{#SITENAME}":"used_memory_peak"},
        {"{#SITENAME}":"used_memory_peak_human"},
        {"{#SITENAME}":"total_system_memory"},
        {"{#SITENAME}":"total_system_memory_human"},
        {"{#SITENAME}":"used_memory_lua"},
        {"{#SITENAME}":"used_memory_lua_human"},
        {"{#SITENAME}":"maxmemory"},
        {"{#SITENAME}":"maxmemory_human"},
        {"{#SITENAME}":"maxmemory_policy"},
        {"{#SITENAME}":"mem_fragmentation_ratio"},
        {"{#SITENAME}":"mem_allocator"},
        {"{#SITENAME}":"loading"},
        {"{#SITENAME}":"rdb_changes_since_last_save"},
        {"{#SITENAME}":"rdb_bgsave_in_progress"},
        {"{#SITENAME}":"rdb_last_save_time"},
        {"{#SITENAME}":"rdb_last_bgsave_status"},
        {"{#SITENAME}":"rdb_last_bgsave_time_sec"},
        {"{#SITENAME}":"rdb_current_bgsave_time_sec"},
        {"{#SITENAME}":"aof_enabled"},
        {"{#SITENAME}":"aof_rewrite_in_progress"},
        {"{#SITENAME}":"aof_rewrite_scheduled"},
        {"{#SITENAME}":"aof_last_rewrite_time_sec"},
        {"{#SITENAME}":"aof_current_rewrite_time_sec"},
        

分类:

技术点:

相关文章:

  • 2021-05-01
  • 2021-05-03
  • 2021-10-29
  • 2021-12-08
  • 2021-05-28
  • 2021-12-19
  • 2021-05-09
  • 2021-12-19
猜你喜欢
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-07-06
  • 2021-06-20
  • 2019-07-18
  • 2020-07-30
相关资源
相似解决方案