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