1 网络发现

概述

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

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

  • 加快 Zabbix 的部署速度
  • 简化管理工作
  • 在快速变化的环境中使用 Zabbix,而无需过多的管理操作

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

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

不提供

  • 网络拓扑的发现

网络发现基本上包括两个阶段:发现和动作。

发现

Zabbix会定期扫描network discovery rules中定义的IP地址范围。扫描频率取决于 每条规则均可单独配置检查项。

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

发现规则由发现管理器处理。发现管理器会创建 每条规则对应一个包含任务列表(网络检查)的作业。网络检查以并行方式执行。 由可用的发现工作进程处理(每个规则在前端均可配置工作进程数量)。 仅当检查具有相同IP和端口时才会按顺序调度,因为 某些设备不接受同一端口上的并行连接。

网络检查的队列大小限制约为2000000或4 GB的memory。如果队列已满,则 发现规则将被跳过,并在日志中打印一条警告消息。您可以使用 zabbix[discovery_queue] 内部 监控项 用于监控队列中的发现检查数量。

发现检查与其他检查是独立处理的。如果任何检查未找到服务(或失败), 其他检查仍将被处理。

如果在执行过程中修改了发现规则,当前发现执行将被中止。

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

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

动作

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

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

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

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

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

主机创建

如果选择了添加 主机 操作,则会添加一个主机。一个主机也会 添加,即使缺少添加 主机 操作,如果你选择 在一个主机上执行操作的操作包括:

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

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

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

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

主机命名

添加 主机 时,一个主机 名称为反向 DNS 查找结果或 IP 如果反向查找失败,则使用该地址。查找由 Zabbix 执行 服务器或Zabbix proxy,具体取决于执行发现的主体。 在proxy上查找失败,不会在服务器上重试。如果主机 具有相同名称的项已存在,下一个 主机 将会 get _2 附加到名称末尾,然后是 _3,依此类推。

也可以覆盖DNS/IP查找,而使用监控项。 主机名 的值,例如:

  • 您可以使用Zabbix agent发现多台正在运行的服务器 用于发现的Zabbix agent 监控项并为其分配合适的名称 根据此监控项返回的string值自动进行
  • 您可以使用 SNMP agent 来发现多个 SNMP 网络设备 用于发现的监控项并自动为其分配合适的名称, 基于此 string 返回的 监控项 值

如果使用监控项值设置了主机名称,则该名称不会更新 在以下发现检查期间。如果无法设置 主机 使用监控项值的名称,使用默认值(DNS名称)。

如果已存在具有已发现IP地址的一个主机,则会创建一个新的主机。 未创建。但是,如果发现动作包含操作(链接 模板,添加到 主机组 等),这些操作是在现有的 主机

主机移除

由网络发现规则发现的主机,如果某个已发现的实体不再位于该规则的IP范围内,则会从 监控发现 中自动移除。主机 会被立即移除。

添加主机时的接口创建

当通过网络发现添加主机时,它们会get 根据这些规则创建的接口:

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

修改 proxy 设置

由不同 proxies 发现的 主机 始终被视为不同的 主机。虽然这允许在不同子网使用的匹配IP范围内执行发现,但对于已经监控的子网,更改 proxy 操作较为复杂,因为必须同时将 proxy 的更改应用到所有已发现的 主机。

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

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