Sidebar

1 网络发现

概述

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

网络发现的优势:

  • 加快部署速度
  • 简化管理
  • 在快速变化的环境中避免过度管理

Zabbix网络发现依赖于以下信息:

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

不支持:

  • 网络拓扑发现

网络发现主要包含两个步骤:发现和动作。

发现

Zabbix周期性地扫描[网络发现规则]中定义的IP地址范围(/manual/discovery/network_discovery/rule)。每条规则可单独配置检查频率。

注意,一条发现规则始终由一个独立的发现进程处理。一个IP地址范围不会拆分给多个发现进程处理。

每条规则可定义一组基于IP地址范围的服务检查。

发现规则中定义的每项检查各自独立执行。若其中任何一项检查未发现对应服务或检查失败,其它检查仍然正常执行。

对服务和主机(IP)的每次检查都会产生一个发现事件。

事件 服务检查结果
发现服务 服务从停止(down)状态到已启动(up)状态,或服务首次被发现。
服务已启动(up) 服务保持已启动(up)状态。
服务丢失(lost) 服务从已启动(up)状态到停止(down)状态。
服务停止(down) 服务保持停止(down)状态。
发现主机 主机从全部服务停止(down)状态到至少一个服务是已启动(up)状态,或发现一个未注册的主机的服务。
主机已启动(up) 主机至少有一个服务保持已启动(up)状态。
主机丢失(lost) 主机从至少有一个服务已启动(up)状态到所有服务停止(down)状态。
主机停止(down) 主机的所有服务保持停止(down)状态。

动作

发现事件可触发相关动作,例如:

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

这些动作可基于设备类型、IP、状态、运行时长(uptime)/停机时长(downtime)等条件来配置。欲了解如何配置这些动作,参阅动作的操作条件 页面获取完整细节。

通过网络发现添加的主机,如果其链接的模板中有一个唯一属性(如监控项的键)与该主机上的唯一属性相同,或与该模板链接的其它主机上的唯一属性相同,则这台主机上的所有模板均会链接失败。

创建主机

选择 添加主机 操作来创建主机。但无需 添加主机 操作一样可以创建主机,只要该操作对主机造成了变更即可。此类操作有:

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

新建的主机会添加到 发现的主机 组 (默认设置,也可到 管理通用其它界面自定义)。 如果想更改主机的主机组,可以执行 从主机组中移除 的操作(选定 "发现的主机"组) 并执行 添加到主机组 的操作(选定另一个主机组),因为一个主机必须属于某个主机组。

命名主机

当添加主机时,主机名是反向DNS解析的结果,如果解析失败,则主机名设置为IP地址。如果Zabbix server执行网络发现,则解析就在Zabbix server上执行,如果Zabbix proxy执行网络发现,则解析在Zabbix proxy上执行。 如果在proxy上解析失败,不会再到Zabbix server上做解析。如果同名主机已经存在,新发现的主机会在名字后面添加 _2后缀,后续新发现的同名主机的后缀数字依次增加。

可以使用监控项的主机名覆盖DNS/IP解析的主机名,比如:

  • 可以使用安装在服务器上的Zabbix agent,通过agent的监控项来发现多台主机并自动给这些主机分配合适的主机名,主机名取决于监控项返回的字符串值
  • 可以使用SNMP agent监控项发现多台网络设备并自动分配合适的主机名,主机名取决于监控项返回的字符串值

如果已经使用了监控项的返回值作为主机名,则接下来的网络发现不会更新主机名。如果不使用监控项的返回值作为主机名,则使用默认值(DNS名称)。

如果新发现的主机IP地址已经存在,那么不会创建该主机。然而如果发现动作中包含添加模板、添加到主机组等操作,则会在现有的主机上执行相应操作。

删除主机

如果发现的主机不再属于发现规则定义的IP地址范围内,则该主机自动从 监控网络发现 中删除。主机会立刻被删除。

创建主机接口

当通过网络发现规则添加主机时,主机接口遵循以下原则创建:

  • 检测到的服务 - 比如,如果一个SNMP服务被检测到,则会创建一个SNMP接口
  • 如果一个主机同时对Zabbix agent和SNMP请求做出响应,则会同时创建两种接口(Zabbix agent接口和SNMP接口)
  • 如果设备唯一标识设置为Zabbix agent或SNMP,则会创建所发现的第一个接口并将其设置为默认接口。 发现的其它IP地址会设置为额外的接口。
  • 如果主机只对Zabbix agent作出响应,则只有agent接口会被创建。如果主机以后对SNMP请求做出响应,则额外的SNMP接口会被创建。
  • 如果通过网络发现规则创建三台独立的主机,并且规则中配置了设备唯一标识为"IP",但该规则后续被修改了,并且主机A、B和C通过设备唯一标识计算出相同的结果(相同IP地址),则B和C会变成第一台主机(主机A)的额外接口。主机B和主机C会保留。添加的接口会显示在监控 →网络发现 界面的"发现的设备" 一栏,用黑体字和缩进标识,但"监控的主机"一栏只显示第一个创建的主机A。 不会对额外接口的IP地址检测"运行时长/停机时长"(Uptime/Downtime)。

更改proxy设置

通过不同的proxy发现的主机始终被视为不同的主机。即便这种操作可以对不同的子网执行自动发现,但是为一个已纳入监控的子网替换proxy也很复杂,因为proxy的变更会同时应用到所有已发现的主机上。

比如下面在发现规则中替换proxy的步骤:

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