zabbix示例之監控Redis狀態(九)
監控redis也是通過info信息來監控redis的狀態:http://www.51niux.com/?id=130 #此鏈接里面有info信息各參數的意思
一、 zabbix監控單實例redis(通過自動發現的方式)
#這種方式呢也是不太推薦的一種方式,雖然比較省事,但是在出圖上面就有點麻煩了,這里腳本格式就不寫的那么嚴謹了。
1.1 客戶端的配置
自動發現腳本編寫:
# cat /etc/zabbix/scripts/redis_parameter #自動發現redis腳本參數的腳本
#!/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取值
#!/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
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傳遞給下面的腳本
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參數的腳本
{ "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"