这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 配置网络发现规则

概述

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

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

规则属性

所有强制输入区域会标记为红色星号。

参数 描述
名称 唯一的规则名称。比如,"Local network"。
执行发现的proxy 哪个组件执行网络发现:
没有proxy - Zabbix server执行网络发现
<proxy 名称> - 此proxy执行网络发现
IP地址范围 需要发现的IP地址范围。包括下列格式:
单IP: 192.168.1.33
IP地址范围: 192.168.1-10.1-255。IP地址范围取决于包含的所有地址数量(小于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
从Zabbix 3.0.0起支持空格、制表符和多行。
更新间隔 此参数定义了规则执行的时间间隔。
前一次发现任务执行完毕才会开始时间间隔计时,所以不会有重叠。
从Zabbix 3.4.0开始支持时间后缀,例如30s, 1m, 2h, 1d。
从Zabbix 3.4.0开始支持用户宏
注意 如果使用了用户宏并且其值改变(比如 1w → 1h),下次检查会基于上一个值进行计算。(如果时间拉到很远的未来,会以示例值计算)。
检查 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 OID的SNMP服务不在此列。通过查询未加密模式的监控项来探测Zabbix agent的存在。请查阅agent监控项获取更多信息。
'端口'参数的格式如下:
单一端口: 22
端口范围: 22-45
列表: 22-45,55,60-70
设备唯一标识 唯一标识可以设置为:
IP地址 - 不对多台相同IP的设备做处理。如果一台相同IP的设备已经存在,则该设备视为已经发现并且不会添加新设备。
<发现检查> - 选择Zabbix agent或SNMP agent检查。
主机名称 设置主机的技术名称:
DNS名称 - DNS名称 (默认)
IP地址 - IP地址
<发现检查> - 通过发现检查收到的字符串值 (比如 Zabbix agent, SNMP agent 检查)
另请参阅: 主机命名.
从4.2.0版本起支持此选项。
可见名称 设置主机的可见名称:
Host name - 技术主机名称 (默认)
DNS名称 - DNS名称
IP地址 - IP地址
<发现检查> - 通过发现检查收到的字符串值 (比如 Zabbix agent, SNMP agent check)
另请参阅: 主机命名.
从4.2.0版本起支持此选项。
启用 勾选检查框启用规则。
如果取消勾选,则规则变成未启用状态且不会执行。
Exceeding file descriptor limit

In case of large number of concurrent checks it is possible to exhaust the file descriptor limit for the discovery manager.

The number of file descriptors required for detection equates to the number of discovery workers * 1000. By default there are 5 discovery workers, while the soft limit of the system is ~1024.

In this case Zabbix will reduce the default number of concurrent checks per type for each worker and write a warning to the log file. But, if the user has set a higher value for Maximum concurrent checks per type than the value calculated by Zabbix, Zabbix will use the user value for one worker.

一个真实场景

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

需要在这个场景中实现:

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

给IP地址范围定义网络发现规则。

主机的发现机制是通过尝试连接主机上的Zabbix agent并获取 system.uname 这个键来实现的。从Zabbix agent获取到的值可以用于给主机命名以及为不同操作系统执行不同的动作。比如链接Windows服务器到 Windows 模板,链接Linux服务器到 Linux 模板。

规则每十分钟执行一次。

添加规则后,发现会自动执行,同时会产生相关事件。

第二步

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

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

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

动作会执行下列操作:

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

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

第四步

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

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