• Zabbix low-level discovery


    Version: zabbix 3.0.1

    概述

    Low-Level discovery 可以自动创建items,triggers,graphs为不同的实体对象。

    例如:zabbix能自动监控服务器上的所有文件系统,网路接口。而不用手动在每个文件系统,网络接口上创建items。

    除此之外,也可以根据discovery返回的结果,配置zabbix移除不需要的实体对象

    zabbix支持六种不同的discovery items

      discovery of file systems;
      discovery of network interfaces;
      discovery of CPUs and CPU cores;
      discovery of SNMP OIDs;
      discovery using ODBC SQL queries;
      discovery of Windows services.


    用户也可以自定义discovery,通过独有的JSON协议

      1、用户定义discovery脚本

        返回宏变量  例如:{#DEVICENAME} -> sda,{#DEVICENAME} -> sdb

      2、创建prototypes

        例如:custom.vfs.dev.io.active[{#DEVICENAME}]

    以下是一般的自定义discovery处理结构

      首先,创建discovery rule在”Configuration” → “Templates” → “Discovery“列

      (discovery rule的组成(1)发现实体对象(列如:文件系统,网络接口) (2)prototypes:在之前发现的实体对象上创建items,triggers,graphs)

    (1)

    属性说明

    Discovery rule

      Keep lost resources period (in days)  # 数据保留的天数

    Filter

      对返回的数据进行过滤筛选,支持regexp

    (2)

    lld-disks.py;chmod +x lld-disks.py

    #!/usr/bin/env python
    
    '''
        zabbix disks Low-Level discovery
    '''
    
    import os
    import re
    import json
    
    def Devices(diskdir, skippable):
    
        raw_devices = (device for device in os.listdir(diskdir) if not any(ignore in device for ignore in skippable))
        devices = (device for device in raw_devices if re.match(r'^w{3}$', device))  # 保留整块磁盘 去掉分区, such as remove sda1 sdb2
        data = [{"{#DEVICENAME}": device} for device in devices]
        print(json.dumps({"data": data}, indent=4))
    
    if __name__ == "__main__":
        # Iterate over all block devices, but ignore them if they are in the skippable set
        diskdir = "/sys/class/block"
        skippable = ("sr", "loop", "ram", "dm")
        Devices(diskdir, skippable)

    response  # json格式

    {
        "data": [
            {
                "{#DEVICENAME}": "sdb"
            },
            {
                "{#DEVICENAME}": "sda"
            }
        ]
    }
  • 相关阅读:
    纳尼?不用码代码,就可回归主流程,一只海豚就可以做到
    教育产品-组件化视觉设计实践
    从整理看视觉设计(网易云课堂我的学习中心-微专业视觉优化)
    搜索意图识别浅析
    如何配置使用Dnsmasq
    如何实现最佳的跨平台游戏体验?Unity成亮解密实时渲染技术!
    PAT 1024. Palindromic Number
    PAT 1023. Have Fun with Numbers
    PAT 1022. Digital Library
    PAT 1021. Deepest Root
  • 原文地址:https://www.cnblogs.com/metasequoia/p/5721321.html
Copyright © 2020-2023  润新知