1 网络发现

概述

Zabbix提供自动网络发现功能,该功能高效且非常灵活。

通过正确设置网络发现,您可以:

  • 加速Zabbix部署

  • 简化管理

  • 在快速变化的环境中使用Zabbix而无需过多干预

    administration

Zabbix网络发现基于以下信息:

  • IP范围
  • 外部服务可用性(FTP、SSH、WEB、POP3、IMAP、TCP等)
  • 从Zabbix agent接收的信息(仅支持未加密模式)
  • 从SNMP agent接收的信息

它不提供:

  • 网络拓扑发现

网络发现基本包含两个阶段:发现和操作。

发现

Zabbix定期扫描network discovery rules中定义的IP范围。扫描的 每个规则可单独配置检查项。

请注意,单个发现规则始终由单一进程处理 发现器进程。IP范围不会在多个进程之间分割。 发现器进程

每个规则都定义了一组要针对IP执行的服务检查 范围

发现检查与其他处理过程相互独立 检查。如果任何检查未找到服务(或失败),其他检查将 仍需处理。

每次网络执行的一个主机(IP)和服务检查 发现模块生成一个发现事件。

事件 服务结果检查
服务已发现 服务在从'宕机'状态恢复后或首次被发现时处于'运行'状态。
服务运行中 服务状态为'运行中',此前已处于'运行中'状态。
服务丢失 服务从'运行'状态变为'停止'状态。
服务宕机 服务已处于'宕机'状态后再次出现'宕机'。
主机 已发现 当某个主机的所有服务均处于'down'状态后,至少有一个一个主机服务恢复为'up',或发现属于未注册主机的服务时触发。
主机 运行中 当至少一个一个主机服务状态为'运行中',且此前已有至少一个服务处于'运行中'状态时触发。
主机 丢失 在至少一个服务处于'运行'状态后,一个主机的所有服务均变为'停止'状态。
主机 宕机 一个主机 的所有服务在已处于'宕机'状态后再次出现'宕机'

动作

发现事件可以作为相关 actions的基础,例如:

  • 发送通知
  • 添加/删除 主机
  • 启用/禁用 主机
  • 将 主机 添加到组
  • 从组中移除 主机
  • 将 主机 链接到模板/从模板取消链接
  • 执行远程脚本

这些操作可以根据设备类型、IP、 状态、运行时间/停机时间等进行配置。有关为基于网络发现的事件配置操作的完整详细信息,请参阅操作 operationconditions 页面。

由于网络发现操作是基于事件的,它们会在发现的 主机 在线和离线时触发。强烈建议添加一个操作 condition 发现状态:在线 以避免诸如 添加 主机 之类的操作在 服务丢失/服务停机 事件时被触发。否则,如果手动移除一个发现的 主机,它仍然会 generate 服务丢失/服务停机 事件,并在下一个发现周期中重新创建。

如果任何可链接模板具有与 主机 或另一个可链接模板上已存在的唯一实体(例如 监控项 键)相同的唯一实体(例如 监控项 键),则链接发现的 主机 到模板将整体失败。

主机创建

如果选择了添加主机操作,则会添加一个主机。即使缺少添加主机操作,如果选择对一个主机执行操作的命令,也会添加一个主机。这些操作包括:

  • 启用主机
  • 禁用主机
  • 将主机添加到一个主机组
  • 将模板链接到一个主机

创建的主机会被添加到已发现的主机组(默认情况下,可在管理常规其他参数中配置)。 如果希望将主机添加到其他组,请添加从主机组中移除操作(指定"已发现的主机"),并同时添加添加到主机组操作(指定另一个主机组),因为主机必须属于一个主机组。

发现设备的IP地址是在系统中查找一个主机的标准。如果具有该IP地址和接口类型的一个主机已存在,则该主机将成为执行操作的目标。

如果发现的主机的IP地址发生更改或接口被删除,则在下次发现时将创建一个新的主机。

主机命名

添加主机时,一个主机名称是反向DNS查询的结果,若查询失败则使用IP地址。查询由Zabbix服务器或Zabbix proxy执行,具体取决于执行发现的组件。如果在proxy上查询失败,则不会在服务器上重试。若已存在同名主机,则下一个主机会在名称后get追加_2,然后是_3,依此类推。

也可覆盖DNS/IP查询,改用监控项值作为主机名,例如:

  • 可通过Zabbix agent的监控项值发现多台运行Zabbix agent的服务器,并根据该监控项返回的string值自动分配正确名称

  • 可通过SNMP agent发现多台SNMP网络设备

    item for discovery and assign proper names to them automatically, based on the string value returned by this item

若主机名称已通过监控项值设置,则在后续发现检查中不会更新。若无法通过监控项值设置主机名称,则使用默认值(DNS名称)。

若具有被发现IP地址的一个主机已存在,则不会创建新主机。但若发现操作包含关联模板、添加到主机组等操作,这些操作将在现有主机上执行。

主机移除

由网络发现规则发现的主机如果不再处于规则的IP范围内,则会自动从监控发现中移除。主机会被立即删除。

添加主机时的接口创建

当主机作为网络发现的结果被添加时,它们get 根据以下规则创建接口:

  • 检测到的服务 - 例如,如果SNMP检查成功,将创建一个SNMP接口
  • 如果一个主机同时响应Zabbix agent和SNMP请求,则会创建两种类型的接口
  • 如果唯一性标准是Zabbix agent或SNMP返回的数据,则将为一个主机找到的第一个接口创建为默认接口。其他IP地址将作为附加接口添加。 操作条件(如主机 IP)不会影响接口的添加。 注意:这仅在所有接口都由同一发现规则发现时有效。如果不同的发现规则发现同一主机的不同接口,则会添加额外的主机。
  • 如果一个主机仅响应agent检查,则它将仅创建agent接口。如果之后开始响应SNMP,则会添加额外的SNMP接口。
  • 如果最初通过"IP"唯一性标准发现了3个独立的主机,然后修改发现规则使得主机 A、B和C具有相同的唯一性标准结果,则B和C将作为A(第一个主机)的附加接口创建。单独的主机 B和C仍然存在。在监控 → 发现中,添加的接口将以黑色字体和缩进显示在"已发现设备"列中,但"受监控主机"列仅显示A(第一个创建的主机)。 对于被视为附加接口的IP,不测量"运行时间/停机时间"。

修改 proxy 设置

由不同proxies发现的主机始终被视为不同的主机. 虽然这允许对不同子网使用的匹配IP范围执行发现, 但为已监控子网更改proxy会很复杂, 因为proxy变更必须同时应用于所有已发现的主机.

例如替换发现规则中proxy的步骤:

  1. 禁用发现规则
  2. 同步proxy配置
  3. 替换发现规则中的proxy
  4. 替换该规则发现的所有主机的proxy
  5. 启用发现规则