1 配置网络发现规则

概述

配置用于发现主机和服务的网络发现规则:

  • 找到 配置→ 网络发现
  • 点击 创建规则 (或点击规则名称,编辑现有规则)
  • 编辑规则属性

规则属性

所有必填输入字段都标有红色星号。

参数 描述
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执行规则的频率。
间隔是在上一次发现实例结束后的测量,因此没有重叠。
支持 Time suffixes,例如:30s,1m,2h,1d。
支持 User macros
注意 如果使用用户宏并且其值更改(例如,1w → 1h),下一次检查将根据之前的值执行(使用示例值,远在未来)。
Maximum concurrent checks per type 设置每个服务检查的发现线程(工作线程)的最大数量,用于并行处理发现检查:
一个 - 一个线程
无限制 - 线程数量无限制(但不超过 StartDiscoverers 参数中的数量)
自定义 - 设置自定义线程数(0-999)
请注意,所有具有SNMPv3异步服务检查的发现规则都由一个工作线程处理,这是由于libsnmp实现的特殊性,即增加工作线程数量不会提高发现速度。
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的设备,它将被视为已发现,不会添加新主机。
<发现检查> - 要么 Zabbix agent 要么 SNMP agent 检查。
请注意,发现期间使用的唯一性标准与执行操作时系统中的主机识别不同。发现期间的唯一性标准定义了两个或多个发现的设备是否相同(或不同),而Zabbix中主机识别的唯一标准是IP地址(参见 Host creation)。
Host name 使用以下设置创建主机的技术主机名:
DNS名称 - DNS名称(默认)
IP地址 - IP地址
<发现检查> - 收到的 string 发现检查值(例如,Zabbix agent,SNMP agent 检查)
另请参阅:Host naming
Visible name 使用以下设置创建主机的可见主机名:
主机名 - 技术主机名(默认)
DNS名称 - DNS名称
IP地址 - IP地址
<发现检查> - 收到的 string 发现检查值(例如,Zabbix agent,SNMP agent 检查)
另请参阅:Host naming
Enabled 如果选中复选框,规则处于活动状态,将由 Zabbix server 执行。
如果未选中,规则不处于活动状态。它不会被执行。
超过文件描述符限制

在大量并发检查的情况下,可能会耗尽discovery manager的文件描述符限制。

所需文件描述符的数量等于发现工作线程的数量乘以1000。 默认情况下,有5个discovery workers,而系统的软限制大约为1024。

如果接近这个限制,Zabbix会减少每种类型每个工作线程的默认并发检查数量,并在日志文件中写入警告。 但是,如果用户为Maximum concurrent checks per type(每种类型最大并发检查数)设置的值高于Zabbix计算的值,Zabbix将为一个工作线程使用用户定义的值。

一个真实场景

在这个例子中,会演示如何给本地IP地址范围192.168.1.1-192.168.1.254设置网络发现规则。

需要在这个场景中实现:

  • 发现运行了Zabbix agent的主机
  • 每十分钟执行一次发现
  • 如果主机运行时长大于一小时,添加该主机到监控中
  • 如果主机停机时长大于二十四小时,则删除主机
  • 添加Linux主机到"Linux服务器"组中
  • 添加Windows主机到"Windows服务器"组中
  • 给Linux主机使用 Linux 模板
  • 给Windows主机使用 Windows 模板
步骤 1

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

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

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

添加此规则后,Zabbix 将自动启动发现并生成基于发现的事件,以供进一步处理。

第二步

定义一个网络发现 动作 ,用于 添加发现的Linux服务器到对应的组并链接到对应模板。

同时满足下列条件才会使动作生效:

  • "Zabbix agent" 服务是已启动(up)状态的
  • system.uname(规则里定义的Zabbix agent的键)的值包含 "Linux"
  • 运行时长(uptime)大于1小时(3600秒)

动作会执行下列操作:

  • 添加发现的主机到 "Linux服务器" 组(如果之前主机不存在,则同时创建主机)
  • 链接主机到 Linux 模板。主机会自动纳入监控,监控使用 "Linux" 模板中的监控项和触发器
第三步

定义网络发现动作,添加发现的Windows服务器到对应组并链接到对应模板。

第四步

定义网络发现动作,删除丢失的(lost)主机。

如果 "Zabbix agent" 服务停止(down)时间超过24小时(86400秒),则会删除对应主机。