zabbix自动发现监控redis数据库

zabbix自动发现监控redis数据库与自动发现mongo,mysql的思路差不多。这次汇总完就把模板,脚本上传到git上。如果公司使用的redis都是6379端口的话,那么还是建议创建一套模板,然后链接到各个服务器即可。如果公司的redis使用的端口比较多,各个都不一样,那还是自动发现并监控redis比较方便。还是一样,先来看下监控的效果图:

124248_0m4S_1588616.png

上述图形是使用zabbix的筛选功能汇总在一起的图片。监控redis的客户端连接数,使用的内存,实际使用的内存和redis的内存碎片化情况。

 

下面来讲讲自动发现redis的实现,首先,还是先看下redis自动发现的配置:

124531_jbfX_1588616.png

探索规则配置完后,同样的在zabbix agentd端需要添加如下配置然后重启zabbix_agentd,配置如下:

UserParameter=redis.discover,python /usr/local/zabbix/discover_redis.py

其中/usr/local/zabbix/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)

同样的,还是使用netstat发现正在监听的端口,visudo的权限也是需要加入netstat的权限。visudo添加如下:

zabbix ALL= NOPASSWD: /bin/netstat
Defaults:zabbix   !requiretty

 

探索完端口后,zabbix server就会以端口为参数向zabbix agentd获取数据,其中项目原型配置如下:

125203_6hTW_1588616.png

其中redis.status的键值需要在zabbix agentd客户端进行配置,配置如下:
UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $1 -p $2 (如果有密码的话,加个-P参数,例如-P 'xxxx')

获取redis数据的/usr/local/zabbix/check_redis.sh脚本如下,其中-k表示获取redis info的哪个值,-p表示端口,如果redis有密码的话,-P参数也需要传入。

#!/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/local/bin/redis-cli -a ${redis_passwd} -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
else
        result=`/usr/local/bin/redis-cli -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
fi
echo $result

通过以上的配置,就能实现自动发现并监控redis了,监控完把数据添加到筛选里面,就能得到如图1的那张数据图。

 

最后附上本人的网络课堂地址,如有兴趣请点击: 实践哥

模板见:https://git.oschina.net/zhuangweihong/ops

转载于:https://my.oschina.net/zhuangweihong/blog/786711

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值