这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.

11 维护

概述

您可以在Zabbix中为主机和主机组定义维护周期。

此外,通过指定触发器标签,可以仅针对单个触发器(或触发器子集)定义维护。在这种情况下,维护仅对这些触发器激活;主机或主机组的其他所有触发器将不处于维护状态。

维护分为两种类型:带数据收集和不带数据收集。

在"带数据收集"的维护期间,触发器会正常处理并在需要时生成事件。但如果动作配置中勾选了暂停对抑制问题的操作选项,则处于维护状态的主机/触发器的问题升级将被暂停。这种情况下,在维护周期持续期间,包括发送通知或远程命令在内的升级步骤将被忽略。请注意,问题恢复和update操作在维护期间不会被抑制,仅升级步骤受影响。

例如,如果升级步骤计划在问题开始后的0、30和60分钟执行,而实际发生问题时有一个从10分钟持续到40分钟的半小时维护,那么第二和第三步将在半小时后执行,即在60分钟和90分钟执行(假设问题仍然存在)。类似地,如果问题在维护期间发生,升级将在维护结束后开始。

要在维护期间正常接收问题通知(无延迟),您需要在动作配置中取消勾选暂停对抑制问题的操作选项。

如果至少有一个主机(用于触发器表达式)未处于维护模式,Zabbix将发送问题通知。

维护期间必须运行Zabbix server。维护每分钟重新计算一次,或者如果维护周期有变更,在configuration cache重新加载后立即重新计算。

定时器进程每分钟的第0秒检查是否需要将主机状态更改为/从维护状态。此外,定时器进程每秒检查是否因配置update后维护周期的变化而需要启动/停止任何维护。因此,启动/停止维护周期的速度取决于配置update interval(默认为10秒)。请注意,维护周期变更不包括活动起始/活动截止设置。同样,如果一个主机/主机组被添加到现有的活动维护周期中,变更仅会在下一分钟开始时由定时器进程激活。

请注意,当一个主机进入维护状态时,Zabbix server定时器进程将读取所有未解决的问题以检查是否需要抑制这些问题。如果存在大量未解决问题,这可能会影响性能。Zabbix server在启动时也会读取所有未解决问题,即使当时没有配置任何维护。

请注意,Zabbix server(或proxy)始终会收集数据,无论维护类型如何(包括"无数据收集"维护)。如果设置为"无数据收集",服务器随后会忽略这些数据。

当"无数据收集"维护结束时,使用nodata()函数的触发器在检查周期内的下一次检查之前不会触发。

如果在一个主机处于维护状态时添加日志监控项,且维护结束,则仅收集维护结束后新的日志文件条目。

如果为处于"无数据收集"维护类型的一个主机发送带时间戳的值(例如使用Zabbix sender),则该值将被丢弃,但可以为过期的维护周期发送带时间戳的值,该值将被接受。

如果用户更改维护周期、主机、组或标签,变更仅在configuration cache同步后生效。

配置

配置维护时段:

  1. 转到:数据采集 → 维护
  2. 点击 创建维护时段(或现有维护时段的名称)。
  3. 在表单中输入维护参数。

所有必填字段均以红色星号标记。

参数 描述
Name 维护时段的名称。
Maintenance type 可设置两种类型的维护:
带数据采集 - 在维护期间服务器将继续采集数据,触发器将被处理;
无数据采集 - 在维护期间服务器将不采集数据。
Active since 执行维护时段变为活动状态的日期和时间。
注意: 仅设置此时间不会激活维护时段;必须在 时段 中配置维护时段(见下文)。
Active till 执行维护时段停止活动的日期和时间。
Periods 此区块允许定义维护发生的精确日期和时间。点击 将弹出一个灵活的 维护时段 窗口,您可以在其中定义维护计划。详细描述请参见 维护时段
Host groups 选择维护将激活的 主机 组。指定的 主机组(s) 内的所有 主机 将激活维护。此字段支持自动补全,因此开始输入时将显示所有可用 主机 组的下拉列表。
指定父级 主机组 将隐式选择所有嵌套的 主机 组。因此,嵌套组中的 主机 也将激活维护。
Hosts 选择维护将激活的 主机。此字段支持自动补全,因此开始输入时将显示所有可用 主机 的下拉列表。
Tags 如果指定了维护标签,将激活所选 主机 的维护,但仅抑制具有匹配标签的问题(即不执行任何操作)。

多个标签的计算方式如下:
And/Or - 所有标签必须匹配;但具有相同标签名称的标签通过 Or 条件计算;
Or - 只要一个标签匹配即可。

标签值的匹配方式有两种:
包含 - 区分大小写的子字符串匹配(标签值包含输入的 string);
等于 - 区分大小写的 string 匹配(标签值等于输入的 string)。

仅在选择了 带数据采集 模式时才能指定标签。
Description 维护时段的描述。
维护周期

维护周期窗口用于安排周期性或一次性维护的时间。该表单是动态的,可用字段会根据所选的周期类型而变化。

周期类型 描述
One time only 配置一次性维护周期:
日期 - 维护周期的日期和时间;
维护周期长度 - 维护将激活的时长。
Daily 配置每日维护周期:
每天(天) - 维护频率(1 - (默认) 每天,2 - 每两天,等等);
在 (小时:分钟) - 维护开始的每日时间;
维护周期长度 - 维护将激活的时长。

每天(天) 参数大于 "1" 时,起始日为 活动自 时间所在的那一天。示例:
- 如果 活动自 设置为 "2021-01-01 12:00",每天(天) 设置为 "2",在 (小时:分钟) 设置为 "23:00",则第一个维护周期将在1月1日 23:00 开始,而第二个维护周期将在1月3日 23:00 开始;
- 如果 活动自 设置为 "2021-01-01 12:00",每天(天) 设置为 "2",在 (小时:分钟) 设置为 "01:00",则第一个维护周期将在1月3日 01:00 开始,而第二个维护周期将在1月5日 01:00 开始。
Weekly 配置每周维护周期:
每周(周) - 维护频率(1 - (默认) 每周,2 - 每两周,等等);
星期几 - 维护应发生的星期几;
在 (小时:分钟) - 维护开始的每日时间;
维护周期长度 - 维护将激活的时长。

每周(周) 参数大于 "1" 时,起始周为 活动自 时间所在的那一周。示例,请参见上面的 每日 参数描述。
Monthly 配置每月维护周期:
月份 - 选择进行定期维护的所有月份;
日期:每月某日 - 如果维护应在每月的相同日期(例如,每月的第一天)进行,请选择此选项,然后在出现的 每月某日 字段中选择所需的日期;
日期:星期几 - 如果维护仅应在特定的星期几(例如,每月的第一个星期一)进行,请选择此选项,然后从下拉菜单中选择所需的月份周数(第一、第二、第三、第四或最后一个),然后勾选维护日的复选框;
在 (小时:分钟) - 维护开始的每日时间;
维护周期长度 - 维护将激活的时长。

创建维护周期时,使用的是创建该周期的用户的time zone。 然而,当设置周期性维护周期(每日每周每月)时,使用的是Zabbix server的时区。 为了确保周期性维护周期的行为可预测,要求Zabbix所有组件使用相同的时区。

完成后,点击 添加 将维护时段添加到 时间段 块中。

请注意,夏令时(DST)的变更不会影响维护的持续时间。
例如,假设我们配置了一个两小时的维护,通常从 01:00 开始,到 03:00 结束:

  • 如果在维护一小时后(02:00)发生夏令时变更,当前时间从 02:00 跳变为 03:00,维护将继续一小时(直到 04:00);
  • 如果在维护两小时后(03:00)发生夏令时变更,当前时间从 03:00 跳变为 02:00,维护将停止,因为已经过了两小时;
  • 如果维护时段在被夏令时跳过的小时内开始,则维护将不会启动。

如果维护时段设置为 "1 天"(由于 Zabbix 按小时计算天数,维护的实际持续时间为 24 小时),从 00:00 开始,并在次日 00:00 结束:

  • 如果当前时间向前跳了一小时,维护将在次日的 01:00 停止;
  • 如果当前时间向后退了一小时,维护将在当天的 23:00 停止。

显示

显示处于维护模式的主机

一个橙色扳手图标 位于主机名称旁边的图标表示该主机处于维护状态:

  • 仪表板
  • 监控 → 问题
  • 资产 → 主机 → 主机资产详情
  • 数据采集 → 主机(请参见'状态'列)

当鼠标指针放置在该图标上时,会显示维护详情。

此外,处于维护状态的主机在监控 → 拓扑图中会显示为get橙色背景。

显示被抑制的问题

通常,处于维护状态的 主机 的问题会被抑制,即不会在前端显示。但是,也可以通过在以下位置选择 显示被抑制的问题 选项来配置显示被抑制的问题:

  • 仪表盘(在 问题 主机问题按严重性划分的问题触发器概览 小部件get 配置中)
  • 监控问题(在过滤器中)
  • 监控地图(在地图配置中)
  • 全局 notifications (在用户配置file 中)

当显示被抑制的问题时,将显示以下图标: 。将鼠标悬停在图标上会显示更多详细信息。

维护期间队列计算

在 Zabbix 前端(Administration > Queue)中显示的队列是通过 Zabbix server 计算得出的。它们不包括处于维护状态且未进行数据采集的 监控项——这些 监控项 的队列长度始终为零,即使它们的值存在延迟。对于处于维护状态但进行数据采集的延迟 监控项,它们仍会计入队列中。

Zabbix proxy 并不了解维护周期,因为在 Zabbix server 和 proxy 之间没有维护配置的同步。在 Zabbix proxies 上计算的内部检查(例如 zabbix[queue,,]zabbix[stats,,,queue,,])会报告延迟的 监控项,而不管 Zabbix server 上的维护状态如何。

因此,对于处于维护状态且未进行数据采集的相同 监控项,Zabbix 前端和 Zabbix proxies 上的内部检查可能会报告不同的队列长度。