11 不可达/不可用主机接口设置

概述

当 Agent 检查(Zabbix、 SNMP、IPMI、JMX)失败并且主机变得不可达时,一些配置 参数 定义了 Zabbix 作何反应。

不可达接口

当 Zabbix、SNMP、IPMI 或 JMX agent 执行检查失败(网络错误、超时)后,主机接口会被视为不可达。自 Zabbix 6.2.0 起,主动式 Zabbix agent 检查也会影响接口可用性。当主动检查变为不可用时,它们会计入 agent 接口的整体可用性状态。

从接口变为不可达的那一刻起,UnreachableDelay 定义了使用某个监控项(包括 LLD 规则)重新检查该接口的频率。
这些重新检查由不可达轮询器执行(对于 IPMI 检查,则由 IPMI 轮询器执行)。
默认情况下,连续两次可达性检查之间的间隔为 15 秒。

由异步轮询器执行的检查不会转移到不可达轮询器。

在 Zabbix 服务器日志中,不可达会通过如下消息表示:

Zabbix agent item "system.cpu.load[percpu,avg1]" on host "New host" failed: first network error, wait for 15 seconds
Zabbix agent item "system.cpu.load[percpu,avg15]" on host "New host" failed: another network error, wait for 15 seconds

日志消息会明确指出失败的具体监控项及其类型(Zabbix agent)。

Timeout 参数也会影响接口在不可达期间多早会被重新检查。
如果 Timeout 设置为 20 秒,而 UnreachableDelay 设置为 30 秒,则下一次检查将在首次尝试后的 50 秒进行。

UnreachablePeriod 参数定义了不可达周期的总持续时间。默认情况下,UnreachablePeriod 为 45 秒。
该值应比 UnreachableDelay 大数倍,以确保在接口被标记为不可用之前会被重新检查多次。

内部监控项 zabbix[host,active_agent,available] 可用于监控不可达场景下主动检查的可用性。

将主机接口状态切换回可用

当不可达时期结束时,再次轮询接口,降低导致主机接口无法访问的监控项的优先级状态。如果不可达接口再次出现,则监控自动恢复正常:

resuming Zabbix agent checks on host "New host": connection restored

一旦接口可用,主机不会立即轮询所有监控项,有两个原因:

  • 它可能会使主机过载。
  • 主机接口恢复时间并不总是与监控项计划轮询时间匹配。

因此,在主机接口可用后,监控项不会立即被轮询,但他们将被重新安排到下一次轮询。

不可用接口

在 UnreachablePeriod 结束后,如果接口仍未重新出现, 则该接口会被视为不可用。

在服务器日志中,会显示如下消息:

temporarily disabling Zabbix agent checks on host "New host": interface unavailable

并且在 前端 中,主机可用性图标会从绿色/灰色变为黄色/红色(当鼠标悬停在主机可用性图标上时, 会显示提示框,其中可查看不可用接口的详细信息):

UnavailableDelay 参数定义了在接口不可用期间, 检查接口的频率。

默认值为 60 秒(因此在这种情况下,上述日志消息中的“temporarily disabling” 表示禁用检查 1 分钟)。

当与该接口的连接恢复后,监控也会自动恢复正常:

enabling Zabbix agent checks on host "New host": interface became available