文档章节

zabbix自动发现监控redis数据库

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

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如何监控多个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
zabbix监控系统的介绍及zabbix监控系统的高级应用

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

paomom
2017/12/05
0
0
Redis 学习(Zabbix 监控Redis)

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

Aloneforyou
06/29
0
0
利用zabbix API进行管理

zabbix 现在之所以那么流行,个人感觉跟zabbix 强大的API有一个很大的关系,利用API可以帮我们完成很多事情: 1、获取相关组,主机信息。 2、比如有人喜欢获取历史数据重新出图。 3、添加删除...

小罗ge11
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]python3快速入门教程1 turtle绘图-2函数

菲波那契序列: >>> # Fibonacci series:... # the sum of two elements defines the next... a, b = 0, 1>>> while b < 10:... print(b)... a, b = b, a+b...112......

python测试开发人工智能安全
今天
0
0
java环境变量配置最正确的方式

原贴:https://blog.csdn.net/qq_40007997/article/details/79784711,十分详细,亲测有效

kitty1116
今天
0
0
49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部