当 Agent 检查(Zabbix、 SNMP、IPMI、JMX)失败并且主机变得不可达时,一些配置 参数 定义了 Zabbix 作何反应。
当Zabbix、SNMP、IPMI或JMX agents 检查失败(网络错误、超时)时,主机接口被视为不可达。自Zabbix 6.2.0版本起,主动 Zabbix agent 检查也影响接口的可用性。当主动检查变得不可用时,它们会贡献到 agent 接口的整体可用性状态中。
从接口变为不可达的那一刻起,UnreachableDelay(不可达延迟)定义了使用其中一个 监控项(包括LLD规则)重新检查接口的频率。这些重新检查由不可达轮询器(或IPMI检查的IPMI轮询器)执行。默认情况下,下一次检查在15秒后进行。
异步轮询器执行的检查不会移至不可达轮询器。
在 Zabbix server 日志中,不可达性通过如下消息指示:
Zabbix agent 监控项 "system.cpu.load[percpu,avg1]" on host "New host" failed: first network error, wait for 15 seconds
Zabbix agent 监控项 "system.cpu.load[percpu,avg15]" on host "New host" failed: another network error, wait for 15 seconds
日志消息指定了确切的 监控项 失败及其类型(Zabbix agent)。
Timeout(超时时间)参数也会影响接口在不可达期间重新检查的时间点。如果超时时间设置为20秒,而不可达延迟设置为30秒,那么在首次尝试后的50秒,将进行下一次检查。
UnreachablePeriod(不可达周期)参数定义了不可达周期的总持续时间。默认情况下,UnreachablePeriod为45秒。 此值应比UnreachableDelay大几倍,以确保在接口被标记为不可用之前,其被重新检查多次。
一个内部 监控项,zabbix[host,active_agent,available],允许在不可达场景中监控主动检查的可用性。
当不可达时期结束时,再次轮询接口,降低导致主机接口无法访问的监控项的优先级状态。如果不可达接口再次出现,则监控自动恢复正常:
一旦接口可用,主机不会立即轮询所有监控项,有两个原因: - 它可能会使主机过载。 - 主机接口恢复时间并不总是与监控项计划轮询时间匹配。
因此,在主机接口可用后,监控项不会立即被轮询,但他们将被重新安排到下一次轮询。
在不可达周期结束后,如果接口仍未重新出现,则将该接口视为不可用。
在服务器日志中,这将通过类似以下的消息指示:
在 frontend 中,主机可用性图标将从绿色/灰色变为黄色/红色(将鼠标定位在主机可用性图标上时显示的提示框中可以查看不可用接口的详细信息):
UnavailableDelay 参数定义了在接口不可用期间检查接口的频率。
默认情况下,该参数为60秒(因此,在这种情况下,“暂时禁用”,如上述日志消息所示,意味着禁用检查一分钟)。
当接口的连接恢复时,监控也会自动恢复正常: