您的位置:首页 > 数据库 > Redis

zabbix自动发现监控redis数据库

2018-01-16 00:00 519 查看
zabbix客户端:

添加redis自动发现脚本如下:

mkdir -p /etc/zabbix/monitor_scripts/ && cd /etc/zabbix/monitor_scripts/
vim discover_redis.py
#coding:utf-8
import json
import commands

(status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'redis-server'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u''')
outputs = output.split('\n')
ports = []
for port in  outputs:
ports += [{'{#REDISPORT}': port}]

print json.dumps({'data':ports},sort_keys=True,indent=4)

添加获取redis数据的脚本如下:其中-k 表示获取redis.info的哪个值,-p表示端口,-P表示密码,如果有需要的话可以加入。

vim check_redis.sh
#!/bin/sh
while getopts "p:k:P:" opt
do
case $opt in
p ) redis_port=$OPTARG;;
k ) info_key=$OPTARG;;
P ) redis_passwd=$OPTARG;;
? )
echo 'parameter is wrong!'
exit 1;;
esac
done
if [ ! "${redis_port}" ] || [ ! "${info_key}" ];then
echo "parameter is null"
exit 1
fi

if [ "${redis_passwd}" ];then
result=`/usr/bin/redis-cli -a ${redis_passwd} -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
else
result=`/usr/bin/redis-cli -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
fi
echo $result

chmod +x /etc/zabbix/monitor_scripts/*

然后需要在zabbix_agentd客户端配置redis的键值,配置如下:

vim /etc/zabbix/zabbix_agentd.d/redis.conf
UserParameter=redis.discover,python /etc/zabbix/monitor_scripts/discover_redis.py
UserParameter=redis.status[*],sh /etc/zabbix/monitor_scripts/check_redis.sh -k $1 -p $2 -P mimamimamima

还要允许zabbix用户无密码运行netstat,

echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers
sed -i 's/^Defaults.*.requiretty/#Defaults    requiretty/' /etc/sudoers

最后重启一下客户端/etc/init.d/zabbix_agent restart

导入模板。。。。

模板见:https://git.oschina.net/zhuangweihong/ops
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: