1 网络发现
概述
Zabbix提供高效灵活的网络自动发现功能。
网络发现的优势:
- 加快部署速度
- 简化管理
- 在快速变化的环境中避免过度管理
Zabbix网络发现依赖于以下信息:
- IP地址范围
- 可用的外部服务 (FTP, SSH, WEB, POP3, IMAP, TCP等)
- 来自Zabbix agent的信息(仅支持未加密模式)
- 来自SNMP agent的信息
不支持:
- 网络拓扑发现
网络发现主要包含两个步骤:发现和动作。
发现
Zabbix周期性地扫描网络发现规则中定义的IP地址范围。每条规则可单独配置检查频率。
注意,一条发现规则始终由一个独立的发现进程处理。一个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的步骤:
- 禁用规则
- 同步proxy配置
- 替换规则中的proxy
- 替换此规则发现的所有主机的proxy
- 启用规则