Zabbix监控多实例Redis
软件名称 | 软件版本 |
---|---|
Zabbix Server | 6.0.17 |
Zabbix Agent | 5.4.1 |
Redis | 6.2.10 |
Zabbix客户端配置
编辑自动发现脚本
vim /usr/local/zabbix/scripts/redis_discovery.sh
#!/bin/bash
#Fucation:redis low-level discovery
#Script_name redis_discovery.sh
redis() {
#port=($(netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}'))
#port=($(ps aux|grep redis-server|grep -v grep|awk -F ":" '{print $3}'|awk '{print $1}'))
port=($(ps aux|grep redis-server|grep -v grep|awk -F "[ :]+" '{print $14}'))
printf '[\n'
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf "\t{\"{#REDISPORT}\":\"${port[${key}]}\"},\n"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf "\t{\"{#REDISPORT}\":\"${port[${key}]}\"}\n"
fi
done
printf ']\n'
}
$1
chmod +x /usr/local/zabbix/scripts/redis_discovery.sh
测试
# ./redis_discovery.sh redis
[
{"{#REDISPORT}":"6381"},
{"{#REDISPORT}":"6384"}
]
编辑信息获取脚本
调整主机名及密码
vim /usr/local/zabbix/scripts/redis_stats.sh
/usr/local/bin/redis-cli -h 192.168.62.31 -a Redis -p $1 info 2> /dev/null|awk -F ':' '{if ($1=="'$2'") print $2}'
chmod +x /usr/local/zabbix/scripts/redis_stats.sh
测试
./redis_status.sh 6381 used_cpu_sys
705.29
编辑配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/multiple_redis.conf
UserParameter=redis_discovery[*],/bin/bash /usr/local/zabbix/scripts/redis_discovery.sh $1
UserParameter=redis_stats[*],/bin/bash /usr/local/zabbix/scripts/redis_stats.sh $1 $2
Zabbix服务端配置
测试数据获取
zabbix_get -s 192.168.62.31 -p 10050 -k redis_discovery[redis]
zabbix_get -s 192.168.62.31 -p 10050 -k redis_stats[6381,used_cpu_sys]
创建模板
配置模板名称及群组
创建自动发现规则
配置自动发现名称,键值,更新间隔
创建监控项原型
配置名称,键值,更新间隔
其他监控项使用相同的方式进行配置即可
彩蛋
附上配置的模板
zbx_export_templates.yaml
https://www.aliyundrive.com/s/m6oUapHmyWD
提取码: r63m
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
心得
初次配置自动发现时获取的数据为如下格式,配置一直存在问题
{
"data":[
{"{#REDISPORT}":"6381"},
{"{#REDISPORT}":"6384"}
]
}
后面观察其他自动发现才确认正确的数据格式