zabbix自动发现监控redis数据库

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

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

 

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

探索规则配置完后,一样的在zabbix agentd端须要添加以下配置而后重启zabbix_agentd,配置以下:redis

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

其中/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添加以下:json

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

 

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

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

获取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的那张数据图。

 

Zabbix实战教程:https://edu.51cto.com/sd/36433

相关文章
相关标签/搜索