1 配置网络发现规则

概述

要配置由 Zabbix 使用的网络发现规则以发现 主机 和服务:

  • 转至 数据采集 → 发现
  • 点击 创建发现规则(或点击现有规则名称以编辑该规则)
  • 编辑发现规则属性

规则属性

所有必填输入字段均以红色星号标记。

参数 描述
Name 规则的唯一名称。例如,“本地网络”。
Discovery by 发现由以下内容执行:
服务器 - 由 Zabbix server
Proxy - 由 Zabbix proxy(在 proxy 名称字段中选择)
IP range 用于发现的IP地址范围。它可以有以下格式:
单个IP:192.168.1.33
IP地址范围:192.168.1-10.1-255。范围受总覆盖地址数限制(少于64K)。
IP掩码:192.168.4.0/24
支持的IP掩码:
/16 - /30 用于IPv4地址
/112 - /128 用于IPv6地址
列表:192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
此字段支持空格、制表符和多行格式。
发现间隔 Update interval 该参数定义了 Zabbix 将以多长时间间隔 execute 执行一次此规则。
间隔时间从上一次发现实例执行结束后开始计算,因此不会有重叠。
支持 Time suffixes 格式,例如 30s、1m、2h、1d。
支持用户宏 User macros
注意:如果使用了用户宏,并且其值发生了更改(例如 1w → 1h),则下一次检查将根据旧值执行(在示例中,新值为 1h,但旧值为 1w,因此下次检查会在很久之后才执行)。
Maximum concurrent checks per type 为每个服务检查设置发现线程(工作线程)的最大数量以进行发现检查的并行处理:
一个 - 一个线程
无限制 - 无限制数量的线程(但不超过 启动发现进程 参数中的数量)
自定义 - 设置自定义线程数量(0-999)
请注意,由于 libsnmp 实现的特性,所有带有 SNMPv3 异步服务检查的发现规则均由一个工作线程处理,即增加工作线程数量不会提高发现速度。
Checks Zabbix 将使用此检查列表进行发现。点击 在弹出窗口中配置新的检查。
支持的检查类型:SSH、LDAP、SMTP、FTP、HTTP、HTTPS、POP、NNTP、IMAP、TCP、Telnet、Zabbix agent、SNMPv1 agent、SNMPv2 agent、SNMPv3 agent、ICMP ping。
基于协议的发现使用 net.tcp.service[] 功能来测试每个 主机,SNMP 除外,它会通过 queries 一个 SNMP OID 来测试。Zabbix agent 是通过以未加密模式查询一个 监控项 来测试的。详情请参见 agent items
'端口' 参数可以是以下之一:
单个端口:22
端口范围:22-45
端口列表:22-45,55,60-70
从 Zabbix 7.0 开始,除 LDAP 检查外,所有服务检查都是异步执行的。
从 Zabbix 7.0 开始,HTTP/HTTPS 检查通过 libcurl 实现。如果 Zabbix server/proxy 在没有 libcurl 的情况下编译,则 HTTP 检查将像旧版本一样工作(即作为 TCP 检查),但 HTTPS 检查将无法工作。
Device uniqueness criteria 发现规则唯一性条件可能包括:
IP地址 - 不处理多个单IP设备。如果已存在相同IP的设备,则认为该设备已被发现,不会添加新的主机。
<discovery check> - 即Zabbix agent或SNMP agent检查。
请注意,发现过程中使用的唯一性条件与执行操作时系统中主机的识别标准不同。发现过程中的唯一性条件定义两个或多个已发现设备是否相同(或不同),而在Zabbix中,只有IP地址是主机识别的标准(参见主机创建)。
Host name 使用以下选项设置已创建的 主机 的技术 主机名:
DNS 名称 - DNS 名称(默认)
IP 地址 - IP 地址
<发现检查> - 发现检查接收到的 string 值(例如 Zabbix agent、SNMP agent 检查)
另请参阅:主机命名
Visible name 使用以下选项设置已创建的 主机名 的可见 主机:
主机名 - 技术 主机名(默认)
DNS 名称 - DNS 名称
IP 地址 - IP 地址
<discovery check> - 接收到的发现检查 string 值(例如 Zabbix agent、SNMP agent 检查)
另请参阅:主机命名
Enabled 勾选复选框后,此规则处于激活状态,并将由 Zabbix server 执行。
若未勾选,则规则不激活,也不会被执行。
超出文件描述符限制

当存在大量并发检查时,可能会耗尽用于 file 的描述符限制,具体取决于 服务器进程类型与线程

用于检测所需的 file 描述符数量等于发现工作者数量乘以 1000。 默认情况下,有 5 个 启动发现进程,而系统的软限制大约为 1024。

如果接近此限制,Zabbix 将减少每个工作者每种类型的默认并发检查数量,并向日志文件写入警告。 但是,如果用户为 每种类型的并发检查最大数量 设置的值高于 Zabbix 计算出的值,则 Zabbix 将为一个工作者使用用户定义的值。

实际应用场景

在这个示例中,我们希望为具有IP范围192.168.1.1-192.168.1.254的本地网络设置网络发现。

在我们的场景中,我们希望:

  • 发现那些运行着Zabbix agent的主机
  • 每10分钟执行一次run发现
  • 如果主机的正常运行时间超过1小时,则将一个主机添加到监控中
  • 如果主机的停机时间超过24小时,则移除主机
  • 将Linux 主机添加到“Linux服务器”组
  • 将Windows 主机添加到“Windows服务器”组
  • 对Linux 主机使用模板Linux
  • 对Windows 主机使用模板Windows
步骤1

为我们的IP范围定义一个网络发现规则。

Zabbix 将尝试通过连接到 Zabbix agents 并获取 system.uname 键的值,在 192.168.1.1-192.168.1.254 的IP范围内发现 主机。从 agent 接收到的值可用于命名 主机,并可根据不同的操作系统应用不同的操作。例如,将Windows服务器链接到模板 Windows,Linux服务器链接到模板 Linux

该规则将每 10 分钟执行一次。

添加此规则后,Zabbix 将自动开始进行发现,并生成基于发现的事件以供后续处理。

步骤 2

定义一个自动发现 action,用于将发现的 Linux 服务器添加到相应的主机组/模板。

如果满足以下条件,此动作将被激活:

  • "Zabbix agent" 服务为 "up"
  • system.uname 的值(我们在规则定义中使用的 Zabbix agent 键)包含 "Linux"
  • 系统运行时间大于等于 1 小时(3600 秒)

此动作将执行以下 execute 操作:

  • 将发现的 主机 添加到 "Linux servers" 主机组(如果尚未添加,则同时添加 主机)
  • 将 主机 链接到 Linux 模板。Zabbix 将自动开始使用来自 "Linux" 模板的 监控项、监控项和触发器监控 主机。
步骤3

为将发现的 Windows 服务器添加到相应的组/模板中,定义一个发现动作。

步骤4

为删除丢失的服务器定义发现动作。

如果 "Zabbix agent" 服务“关闭”超过 24 小时(86400 秒),则服务器将被删除。