1 配置网络发现规则

概述

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

  • 前往Configuration → Discovery
  • 点击Create rule(或点击规则名称编辑现有规则)
  • 编辑发现规则属性

规则属性

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

参数 描述
Name 规则唯一名称。例如"本地网络"。
Discovery by proxy 执行发现的主体:
无proxy - 由Zabbix server执行发现
<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掩码:
IPv4:/16 - /30
IPv6:/112 - /128
列表:192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
自Zabbix 3.0.0起支持空格、制表符和多行输入
Update interval 定义Zabbix执行execute规则的频率。
间隔时间从前一次发现实例结束后开始计算,确保无重叠。
支持Time suffixes格式,如30s, 1m, 2h, 1d(自Zabbix 3.4.0起)
支持User macros(自Zabbix 3.4.0起)
注意:若使用用户宏且其值变更(如1w→1h),下次检查仍按原值执行
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
Device uniqueness criteria 唯一性判定标准:
IP地址 - 不处理多单IP设备。若相同IP设备已存在则视为已发现,不添加新主机
<发现检查> - Zabbix agent或SNMP agent检查
注意:发现阶段的唯一性标准不同于执行操作时的主机系统标识。前者定义多个被发现设备是否相同,而Zabbix中仅IP地址作为主机标识标准(见主机创建
Host name 设置创建主机的技术主机名方式:
DNS名称 - DNS名(默认)
IP地址 - IP地址
<发现检查> - 发现检查获取的string值(如Zabbix agent、SNMP agent检查)
另见:主机命名
本选项自4.2.0版本支持
Visible name 设置创建主机的可见主机名方式:
主机名 - 技术主机名(默认)
DNS名称 - DNS名
IP地址 - IP地址
<发现检查> - 发现检查获取的string值(如Zabbix agent、SNMP agent检查)
另见:主机命名
本选项自4.2.0版本支持
Enabled 勾选框标记时规则生效,将由Zabbix server执行
未标记时规则不生效,不会被执行

实际应用场景

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

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

  • 发现那些运行着Zabbix agent的主机
  • 每10分钟run一次发现
  • 如果主机运行时间超过1小时,则将一个主机添加到监控中
  • 如果主机停机时间超过24小时,则移除主机
  • 将Linux 主机添加到"Linux servers"组
  • 将Windows 主机添加到"Windows servers"组
  • 对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"服务处于'down'状态超过24小时(86400秒),服务器将被移除