文档章节

zabbix自动发现监控redis数据库

just_do_itit
 just_do_itit
发布于 2016/11/12 12:57
字数 718
阅读 3437
收藏 129

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

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

 

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

探索规则配置完后,同样的在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获取数据,其中项目原型配置如下:

其中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的那张数据图。

 

zabbix视频教程  附上一个视频教程链接。

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

© 著作权归作者所有

共有 人打赏支持
just_do_itit
粉丝 66
博文 51
码字总数 33669
作品 0
杭州
运维
结合Zabbix与Ansible打造自动化数据库监控体系

本文根据dbaplus社群第162期线上分享整理而成。 随着业务的飞速发展,数据库服务器量级飞速增长,比如Oracle、MySQL、Redis、MongoDB的使用更加普及,对数据库运维人员的要求也越来越高,构建...

刘宇
10/10
0
0
zabbix如何监控多个JMX/Redis等实例

本文主要主要是谈思路,不谈具体的配置过程。推荐有zabbix基础的人看,特别是有zabbix自动发现、lld(low-level-discovery)经验的同学。 zabbix自动发现 如果没有了解过zabbix自动发现,请看...

胡雨生
2017/05/14
0
0
zabbix自动发现监控redis数据库

zabbix客户端: 添加redis自动发现脚本如下: 添加获取redis数据的脚本如下:其中-k 表示获取redis.info的哪个值,-p表示端口,-P表示密码,如果有需要的话可以加入。 chmod +x /etc/zabbix...

ly8006
01/16
6
0
Redis 学习(Zabbix 监控Redis)

Redis 学习(Zabbix 监控Redis) 前面redis的配置文件盒常用命令、redis info信息都解释完了,接下来就是监控我们的redis了,我使用的是zabbix监控软件,所有在这里我在这里详细介绍下怎么设...

Aloneforyou
06/29
0
0
zabbix监控系统的介绍及zabbix监控系统的高级应用

监控系统:zabbix 数据的采集-》存储-》报警(告警)-》展示 监控对象:包括主机,主机之间的数据流量 主机:硬件设备 系统指标:CPU,memory io(disk磁盘io network网络io) cpu:sys(系统空...

paomom
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用责任链模式设计一个拦截器

前言 近期在做 Cicada 的拦截器功能,正好用到了责任链模式。 这个设计模式在日常使用中频率还是挺高的,借此机会来分析分析。 责任链模式 先来看看什么是责任链模式。 引用一段维基百科对其...

编程SHA
5分钟前
0
0
IDE,SATA,SCSI,SAS,FC,SSD说明与区别

DE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘。SCSI是”小型计算机系统专用接口”的简称,SCSI硬盘就是采用这种接口的硬盘。SAS就是串口的SCSI接口。一般...

mskk
7分钟前
0
0
MySQL面试题集锦

什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构。一个非常恰当的比喻就是书的目录页与书的正...

老道士
42分钟前
0
0
使用 LogStash 归集日志

elastic 官网: https://www.elastic.co/ 为了便于集中查看多台主机的业务日志,使用 Filebeat, Redis, Logstash的方式进行收集: (1) Filebeat 监控日志文件的变化, 将新增部分写入redis中, 每...

ouhoo
46分钟前
0
0
java序列化(六) - protostuff序列化

添加依赖 <dependency> <groupId>io.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.5.9</version> </de......

晨猫
52分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部