zabbix(10)自动发现规则(low level discovery)
1、概念
在配置Iterms的过程中,有时候需要对类似的Iterms进行添加,这些Iterms具有共同的特征,表现为某些特定的参数是变量,而其他设置都是一样的,例如:一个程序有多个端口,而需要对端口配置Iterms。再如,磁盘分区,网卡的名称等等,由于具有不确定性,古配置固定的Items会出现无法通用的问题。
Low level discovery的Key可以对网卡、文件系统等进行自动发现,当然也支持自定义。
Low level discovery的使用过程分如下两步:
(1)自动发现特定变量的名称。
(2)添加对变量的Items。
Zabbix中Low level discovery的Key返回值是一个JSON格式。查看Low level discovery Key返回格式如下:

2、案列
使用Zabbix监控Hadoop集群的进程。每台机器启动的进程不一样,而这个时候想要监控每一台机器的hadoop进程,就需要自动发现规则了,如果配置通用的模板,把每一个监控项(监控每一个hadoop的进程)都配置上,会发现每一台主机对有些监控项是不支持的。
zabbix客户端配置如下:
EnableRemoteCommands=1 开启远程执行命令,默认是0,当监控到hadoop进程掉了以后,自动启动。
Timeout=30 超时
StartAgents=8 开启处理线程
编写自动发现脚本如下:
[root@manager1 script_py ::]#cat hadoopDiscovery.py
#!/usr/bin/env python3
import os
import json with open("/data1/zabbix_sh/jps.txt", "r") as f:
text_lst = [i.split("\n")[] for i in f.readlines()] hadoopProcess = [] for i in text_lst:
hadoopProcess += [{'{#hadoopProcessName}':i}]
print(json.dumps({'data':hadoopProcess},sort_keys=True,indent=,separators=(',',':')))
[root@manager1 script_py ::]#cat /data1/zabbix_sh/jps.txt 这里面存储的是当前节点本应该启动的进程
DataNode
Master
执行效果如下:

(1)自定义Key,如下:
# cat /etc/zabbix/zabbix_agentd.d/hadoop_process.conf
UserParameter=hadoop_process[*],sudo /data1/zabbix_sh/hadoopProcess.py $
UserParameter=hadoop_state,sudo /data1/zabbix_sh/hadoopState.py
UserParameter=hadoop.process.discovery,sudo /data1/zabbix_sh/hadoopDiscovery.py
hadoopProcess.py脚本如下:
# cat hadoopProcess.py
#!/usr/bin/env python3
'this is a system monitor scripts'
__author__="yjt" import os
import sys
def hadoop_program():
with open("/data1/zabbix_sh/jps.txt", "r") as f:
list_jps = [i.split("\n")[] for i in f.readlines()] job_value = []
# hadoop_process = ['JournalNode','ResourceManager','HMaster','DataNode','DFSZKFailoverController','QuorumPeerMain','HQuorumPeerMain','JobHistory','Kfaka','NodeManager','Worker','Master','HRegionServer','NameNode','PrestoServer','RunJar']
job_lst = os.popen('/data1/jdk/bin/jps').readlines()
for i in job_lst:
value = i.split()[]
if value != 'Jps':
job_value.append(value)
if sys.argv[] in job_value:
print( )
elif sys.argv[] in list_jps:
print()
# else:
# print() if __name__ == "__main__":
if len(sys.argv) > :
hadoop_program()
配置完重启zabbix客户端
测试,是否可以从server端获取到数据:

(2)web界面的配置:
1)创建一个模板:配置---> 模板--->创建模板

2)在改模板上创建自动发现规则:

3)自动发现规则配置


4)为这个模板创建原型的监控项


5)创建触发器:

6)创建图形:

到这里这个模板就创建好了。这个时候在创建主机的时候,关联这个模板看看效果,需要等待一段时间。效果如下:
第一台机器:

第二台机器:

OK
zabbix(10)自动发现规则(low level discovery)的更多相关文章
- Zabbix网络自动发现规则和自动添加hosts及link模板
Version: zabbix 3.0 一.配置网络发现规则 Device uniqueness criteria:选择主机名作为唯一标识(Configuation Hosts中显示的NAME) 二. ...
- zabbix mysql自动发现规则
1.配置mysql,添加监控用的账号,授予查看所有用户线程/连接的权限 GRANT PROCESS ON *.* TO 'zabbix'@'127.0.0.1' identified BY '20c1 ...
- zabbix/自动发现规则
对于zabbix 我们并不陌生 他是开源的监控系统,现在的一部分企业都在用zabbix,今天给大家分享的是企业级监控zabbix的自动发现规则,有了它我们自定义健康的时候根据宏值可以让他自动发现对 ...
- zabbix主机自动发现
环境说明 角色 主机名 IP zabbix-server c1.heboan.com 192.168.88.1 zabbix-agent c2.heboan.com 192.168.88.2 zabb ...
- Zabbix监控Low level discovery实时监控网站URL状态
今天我们来聊一聊Low level discovery这个功能,我们为什么要用到loe level discovery这个功能呢? 很多时候,在使用zabbix监控一些东西,需要对类似于Itens进行 ...
- zabbix监控redis多实例(low level discovery)
对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作. 注:Zabbix版本: Zabbix 3.0.2 一.服务 ...
- zabbix模板的自动发现规则(ldd)实现被监控项自动发现
zabbix模板的自动发现规则(ldd)实现被监控项自动发现 自动发现规则(ldd)用途说明 在zabbix自带的linux模板的自动发现规则中,有一个Mounted filesystem disco ...
- Zabbix监控系统配置之-自动发现规则入门
假设你已经知道[模板-监控项-监控项原型-自动发现规则]之间的关系.(此处应有关系图,待填坑) 1. 添加模板 我新建了一个名叫Dapianzi SNMP Linux的模板,里面添加了已经启动了SNM ...
- zabbix 添加自动发现端口并监控
最近在部署zabbix监控 有些服务器上开启的服务端口非常多 如果一个个添加监控会很繁琐,于是想到了自动发现规则 自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...
随机推荐
- raspbian buster阿里镜像
配置以前,谨记教诲,先去看一下是否有对应版本的源,如下所示,阿里这更新速度...确实挺赶潮流的 最后就是正常更新即可,这样就快多了,要不然用国外的源,还不知道要等到猴年马月的. sudo apt-ge ...
- 今天还是python游戏
话不多说,上源码: import random, pygame, sys from pygame.locals import * FPS = 30 # frames per second, the g ...
- tree 树形加载及增删改
//异步1<template> <div class="addequipment org"> <div class="top"&g ...
- js垃圾回收及内存泄漏
js垃圾回收 js能够自动回收申请却未使用的内存,由于每次清除需要的性能较大,不是时时在刷新,而是每隔一段时间才进行一次. 回收的两种方式 标记清除(常用) 在内存中先标记变量,然后清除那些那些进入环 ...
- Python函数Day1
一.函数的初识 函数的定义:函数最主要的目的是封装一个功能,一个函数就是一个功能 定义函数的格式: def 函数名(): 函数体 def my_len(): count = 0 s1 = 'hahah ...
- spice在桌面虚拟化中的应用系列之三(USB映射实现,SSL加密,密码认证,多客户端支持)
本系列其它文章 spice在桌面虚拟化中的应用系列之一(spice简介,性能优化等) spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射) 1.spice ...
- 001——搭建OpenCV实验环境
开发环境 VS 2017 15.7.6 OpenCV 3.4.1 搭建环境 设置环境变量 创建Win32 空项目 配置属性管理器 测试代码 #include<opencv2/opencv.hpp ...
- HTML&CSS基础-清除浮动
HTML&CSS基础-清除浮动 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看浮动效果 1>.HTML源代码 <!DOCTYPE html> &l ...
- AD 复制状态检查
微软提供了一下工具进行AD复制状态检查 Repadmin: http://technet.microsoft.com/en-us/library/cc811551%28v=ws.10%29.asp ...
- php中long2ip和2iplong
<?php $string=ip2long("127.0.0.1"); $ip=long2ip($string); echo $string; echo "< ...