######## Created by luxf, https://www.luxifan.com ########
本文不会讲zabbix基础设置,基础内容请自己了解。
1.监控指标分析(根据自己实际场景分析,此处只是简单指标。)
2.创建redis监控脚本 redis_monitor.sh
vim redis_monitor.sh
#!/bin/bash
#Created by luxf Url: https://www.luxifan.com
#source /etc/profile
echo ${1} |egrep "^[0-9]{4,5}$" >/dev/null
if [ ${?} == 0 ];then
#获取内网地址
Redis_Ip=$(ip addr|awk '/inet 10./ {print $2}'|sed -r 's/\/([0-9]{2})//g'|head -n 1)
#获取redis密码
Redis_Pass=$( (grep "^requirepass " /etc/redis/redis*${1}.conf|| echo '0 0')|head -n 1|awk '{print $2}'|tr -d "\"")
#参数1传递端口号
if [ ${Redis_Pass} == 0 ];then
redis-cli -h ${Redis_Ip} -p ${1} info > /tmp/redis_${1}.log
else
redis-cli -h ${Redis_Ip} -p ${1} -a ${Redis_Pass} info > /tmp/redis_${1}.log
fi
#查询数据,redis info文本为doc格式,非unix格式,使用tr去除换行符
Total_Keys=$( (egrep "^db[0-9]{1,2}:" /tmp/redis_${1}.log ||echo '0,0')|awk -F',' '{print $1}'|awk -F'=' '{SUM += $2} END {print SUM}'|tr -d "\r")
Clients=$(grep "^connected_clients:" /tmp/redis_${1}.log |awk -F':' '{print $2}'|tr -d "\r")
QPS=$(grep "^instantaneous_ops_per_sec:" /tmp/redis_${1}.log |awk -F':' '{print $2}'|tr -d "\r")
Rss_Mem=$(grep "^used_memory_rss:" /tmp/redis_${1}.log |awk -F':' '{print $2}'|tr -d "\r")
#部分redis没有配置MAX_MEM 输出为0
Max_Mem=$( (grep "^maxmemory:" /tmp/redis_${1}.log || echo '0:0')|awk -F':' '{print $2}'|tr -d "\r")
Used_Mem=$(grep "^used_memory:" /tmp/redis_${1}.log |awk -F':' '{print $2}'|tr -d "\r")
#输出Json数据结果
echo '{"Total_Keys":"'${Total_Keys}'","Clients":"'${Clients}'","QPS":"'${QPS}'","Rss_Mem":"'${Rss_Mem}'","Max_Mem":"'${Max_Mem}'","Used_Mem":"'${Used_Mem}'"}'
else
echo "Redis Port Error"
fi
3.使用通用自动Tcp Port发现Redis,并增加redis自定义key
#zabbix-agent.conf 中的Tcp Port自定义key
UserParameter=tcpportlisten[*],/etc/zabbix/scripts/discovertcpport.sh $1
#zabbix-agent.conf 中的Redis自定义key
UserParameter=check_redis[*],sudo /etc/zabbix/scripts/redis_monitor.sh $1
自发现脚本discovertcpport.sh :
https://blog.luxifan.com/api/file/getAttach?fileId=5d5e6ede491628000c000076
4.Zabbix控制台创建自发现规则
5.创建监控原型
6.创建相关项目监控
7.并且选择进行,进行数据解析
8.监控原型列表如下,跟第6步相似,修改Key即可。
9.创建触发,此处只写一个demo,为内存使用达到最大内存的90%进行触发(因有没有做最大内存限制的实力,固对最大内存限制为0的进行排除)。其他触发器自行根据实际需求进行添加。
触发器及图形 ,以及grafana配置 请到https://blog.luxifan.com查看