对于多实例部署的tomcat、redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作。
 注:Zabbix版本: Zabbix 3.0.2
一、服务端配置
1、创建模板
模板名称: Template_Redis_Monitor
 
2、创建自动发现规则
给已创建好的模板Template_Redis_Monitor添加自动发现规则。
 
 
 
3、添加监控项原型
从上面截图可以看到,我已经创建了4个,具体如下:
 
看看其中一个:
 
再来看看主机关联模板后的监控项:
 
二、客户端配置
zabbix_agentd.conf配置文件添加或修改内容如下:
UnsafeUserParameters=   #允许zabbix用户运行root命令
UserParameter=redis.discovery,/data/zabbix/externalscripts/redis_port.py #获取json格式数据,上报端口
UserParameter=redis[*],/data/zabbix/externalscripts/redis_stats.sh $ $ #自定义Key值

用到的两个脚本内容如下:

发现端口的脚本:

# cat redis_port.py
#!/usr/bin/env python
import os
import json
p=os.popen("""sudo netstat -anp|awk -F: '/redis-server/&&/LISTEN/{sub(/ .*/,"",$2);if($2)print $2}' """)
ports = []
for port in p.readlines():
r = os.path.basename(port.strip())
ports += [{'{#REDISPORT}':r}]
print json.dumps({'data':ports},sort_keys=True,indent=,separators=(',',':'))

获取监控数据的脚本:

# cat redis_stats.sh
#!/bin/bash
METRIC="$1"
PORT="${2:-6379}"
CACHE_FILE="/data/zabbix/externalscripts/redis_$PORT.cache"
redis-cli -p ${PORT} -a 'USLF93SUVwtSF$$#@W' info > ${CACHE_FILE} >/dev/null || exit
awk -F'[:,]+' '/'"${METRIC}"':/{gsub(/^[^0-9]+/,"",$2);print $2}' ${CACHE_FILE}
三、测试
在zabbix_server上进行测试,执行以下命令:
zabbix_get -s 客户端IP -k redis.discovery

客户端redis两个实例端口为6380和6444,可以看到自动发现端口成功!
测试是否可以获取数据:
获取数据成功!
最后可以创建图形,查看数据:
 
其它问题:zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,因此可以配置sudo解决。
也可以使用chmod +s /bin/netstat进行解决。

zabbix监控redis多实例(low level discovery)的更多相关文章

  1. zabbix监控redis多实例cpu mem-自动发现

    1.自动发现实例端口脚本,用于zbx item prototypes #!/bin/bash REDIS_PORT=`ps aux |grep redis-server | grep -v 'grep ...

  2. Zabbix监控Low level discovery实时监控网站URL状态

    今天我们来聊一聊Low level discovery这个功能,我们为什么要用到loe level discovery这个功能呢? 很多时候,在使用zabbix监控一些东西,需要对类似于Itens进行 ...

  3. zabbix(10)自动发现规则(low level discovery)

    1.概念 在配置Iterms的过程中,有时候需要对类似的Iterms进行添加,这些Iterms具有共同的特征,表现为某些特定的参数是变量,而其他设置都是一样的,例如:一个程序有多个端口,而需要对端口配 ...

  4. Zabbix监控redis status

    概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...

  5. 01:zabbix监控redis

    一.zabbix 自动发现并监控redis多实例 1.1 编写脚本 1.1.1 redis_low_discovery.sh 用于发现redis多实例 [root@redis02 homed]# ca ...

  6. Zabbix应用六:Zabbix监控Redis

    利用Zabbix监控Redis Zabbix监控redis就比较简单了,因为zabbix官方提供了监控redis的模版和脚本,而且脚本有nodejs和python两种,下载地址:https://git ...

  7. Zabbix 监控redis

    Zabbix 监控redis 1.监控脚本,github上的 [root@localhost ~]# cat /etc/zabbix/script/redis-status.sh #!/bin/bas ...

  8. 最新 centos7下zabbix 监控redis状态

    准备 先准备两台服务器,已经部署好了zabbix-sever和zabbix-agent zabbix-server 192.168.1.70 centos7.2 zabbix-agent 192.16 ...

  9. zabbix 监控redis python3脚本

    一:安装redis-python模块 wge  thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...

随机推荐

  1. oracle 11g 64位安装sqldeveloper打开不了

    oracle 11g 64位安装sqldeveloper打开不了解决方法: 1.到官网下载对应版本的sqldeveloper. 2.找对应安装路径下的F:\app\Administrator\prod ...

  2. hpple 简单使用

    最近项目使用到hpple,简单说一下使用方式,做做笔记 let responseData = response as! NSData let utf8Html = responseData.strin ...

  3. Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

    Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...

  4. ECMAScript一元操作符

    在ECMAScript中提供了一元操作符进行简单的运算,一元操作符是ECMAScript中最简单的操作符,它只能对一个值进行操作. 一元操作符有两种类型,一种是递增和递减操作符,一种是一元加和一元减操 ...

  5. tr设置border无效的解决方法

    给table的css添加属性:border-collapse: collapse; 边框不折叠的表格 行,列,行组是不具有border的

  6. 数据库创建&数据表创建

    --第2_1题创建数据库 create database Student201038897041 on primary (name='student1', filename='F:\coures\SQ ...

  7. Python学习笔记——正则表达式入门

    # 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. ...

  8. iOS 9适配技巧

    中文快速导航: 1.iOS9网络适配_ATS:改用更安全的HTTPS(见Demo1) i. WHAT(什么是SSL/TLS?跟HTTP和HTTPS有什么关系) ii. WHY(以前的HTTP不是也能用 ...

  9. glibc 安装( version `GLIBC_2.14' not found")

    在ubuntu上编译的东西 拿到CentOS 下运行 提示 :“/lib64/libc.so.6: version `GLIBC_2.14' not found” 原因是ubuntu上用的libc 版 ...

  10. STM32固件库

    一.STM32固件库开发和传统寄存器开发方式的区别 二.CMSIS标准 CMSIS标准--Cortex Microcontroller Software Interface Standard,是ARM ...