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)的更多相关文章

  1. Zabbix网络自动发现规则和自动添加hosts及link模板

    Version: zabbix 3.0 一.配置网络发现规则 Device uniqueness criteria:选择主机名作为唯一标识(Configuation Hosts中显示的NAME) 二. ...

  2. zabbix mysql自动发现规则

    1.配置mysql,添加监控用的账号,授予查看所有用户线程/连接的权限 GRANT PROCESS ON *.* TO 'zabbix'@'127.0.0.1' identified BY '20c1 ...

  3. zabbix/自动发现规则

      对于zabbix 我们并不陌生 他是开源的监控系统,现在的一部分企业都在用zabbix,今天给大家分享的是企业级监控zabbix的自动发现规则,有了它我们自定义健康的时候根据宏值可以让他自动发现对 ...

  4. zabbix主机自动发现

    环境说明 角色 主机名 IP zabbix-server c1.heboan.com 192.168.88.1 zabbix-agent c2.heboan.com 192.168.88.2 zabb ...

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

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

  6. zabbix监控redis多实例(low level discovery)

    对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作.  注:Zabbix版本: Zabbix 3.0.2 一.服务 ...

  7. zabbix模板的自动发现规则(ldd)实现被监控项自动发现

    zabbix模板的自动发现规则(ldd)实现被监控项自动发现 自动发现规则(ldd)用途说明 在zabbix自带的linux模板的自动发现规则中,有一个Mounted filesystem disco ...

  8. Zabbix监控系统配置之-自动发现规则入门

    假设你已经知道[模板-监控项-监控项原型-自动发现规则]之间的关系.(此处应有关系图,待填坑) 1. 添加模板 我新建了一个名叫Dapianzi SNMP Linux的模板,里面添加了已经启动了SNM ...

  9. zabbix 添加自动发现端口并监控

    最近在部署zabbix监控  有些服务器上开启的服务端口非常多  如果一个个添加监控会很繁琐,于是想到了自动发现规则  自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...

随机推荐

  1. raspbian buster阿里镜像

    配置以前,谨记教诲,先去看一下是否有对应版本的源,如下所示,阿里这更新速度...确实挺赶潮流的 最后就是正常更新即可,这样就快多了,要不然用国外的源,还不知道要等到猴年马月的. sudo apt-ge ...

  2. 今天还是python游戏

    话不多说,上源码: import random, pygame, sys from pygame.locals import * FPS = 30 # frames per second, the g ...

  3. tree 树形加载及增删改

    //异步1<template> <div class="addequipment org"> <div class="top"&g ...

  4. js垃圾回收及内存泄漏

    js垃圾回收 js能够自动回收申请却未使用的内存,由于每次清除需要的性能较大,不是时时在刷新,而是每隔一段时间才进行一次. 回收的两种方式 标记清除(常用) 在内存中先标记变量,然后清除那些那些进入环 ...

  5. Python函数Day1

    一.函数的初识 函数的定义:函数最主要的目的是封装一个功能,一个函数就是一个功能 定义函数的格式: def 函数名(): 函数体 def my_len(): count = 0 s1 = 'hahah ...

  6. spice在桌面虚拟化中的应用系列之三(USB映射实现,SSL加密,密码认证,多客户端支持)

    本系列其它文章 spice在桌面虚拟化中的应用系列之一(spice简介,性能优化等) spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射) 1.spice ...

  7. 001——搭建OpenCV实验环境

    开发环境 VS 2017 15.7.6 OpenCV 3.4.1 搭建环境 设置环境变量 创建Win32 空项目 配置属性管理器 测试代码 #include<opencv2/opencv.hpp ...

  8. HTML&CSS基础-清除浮动

    HTML&CSS基础-清除浮动 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看浮动效果 1>.HTML源代码 <!DOCTYPE html> &l ...

  9. AD 复制状态检查

      微软提供了一下工具进行AD复制状态检查 Repadmin: http://technet.microsoft.com/en-us/library/cc811551%28v=ws.10%29.asp ...

  10. php中long2ip和2iplong

    <?php $string=ip2long("127.0.0.1"); $ip=long2ip($string); echo $string; echo "< ...