维护周期

概述

维护用于在预定义的时间段内抑制问题。

您可以为以下实体定义维护时段:

  • 主机组
  • 主机
  • 触发器
  • 事件名称
  • 标签

如果为特定标签或事件名称定义了维护,则维护仅会对相应的触发器生效;主机或主机组的所有其他触发器不会处于维护状态。

维护有两种类型:收集数据 和 不收集数据。

在 收集数据 维护期间,触发器会照常处理,并在需要时创建事件。 但是,如果在动作配置中选中了 暂停对已抑制问题的操作 选项,则处于维护状态的实体会暂停问题升级。 在这种情况下,只要维护时段持续,可能包括发送通知或执行远程命令的升级步骤都会被忽略。 请注意,维护期间不会抑制问题恢复和更新操作,仅会抑制升级。 如果问题在维护期间开始,则不会发送恢复通知。

例如,如果升级步骤安排在问题开始后的第 0、30 和 60 分钟执行,而在实际问题发生后第 10 至 40 分钟之间存在一个持续半小时的维护时段,则第二步和第三步会延迟半小时执行,即在第 60 分钟和第 90 分钟执行(前提是问题仍然存在)。 同样,如果问题在维护期间发生,升级将在维护结束后开始。

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

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

维护期间,Zabbix 服务器必须保持运行。 维护时段每分钟重新计算一次;如果维护时段发生更改,则会在配置缓存重新加载后立即重新计算。

计时器进程会在每分钟第 0 秒检查是否必须将主机状态更改为维护状态或从维护状态恢复。 此外,在配置更新后,计时器进程每秒检查一次是否需要根据[维护时段]的更改启动或停止维护。 因此,维护时段的启动/停止速度取决于配置更新间隔(默认为 10 秒)。 请注意,维护时段更改不包括 生效时间/失效时间 设置。 此外,如果将某个实体(主机组/主机/触发器等)添加到现有的活动维护时段中,则更改只有在下一分钟开始时由计时器进程激活。

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

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

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

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

如果为处于 不收集数据 维护状态的主机发送带时间戳的值(例如,使用 Zabbix sender),则该值会被丢弃;但是,可以为已过期的维护时段发送带时间戳的值,并且该值会被接受。

如果用户更改了维护时段或维护选项(主机组、主机、触发器等),则更改只有在配置缓存同步后才会生效。

配置

要立即开始维护期:

  1. 转到 监测 > 问题。
  2. 单击问题名称。
  3. 从事件菜单中选择维护选项(主机、触发器、事件名称、标签)。
  4. 在表单中修改维护参数。

要配置计划维护期:

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

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

参数 描述
名称 维护期的名称。
维护类型 可以设置两种维护类型:
带数据采集 - 维护期间由服务器采集数据,并处理触发器;
不采集数据 - 仍可能采集数据,但维护期间不会将数据保存到数据库,并且触发器(包括 nodata() 函数)不会触发。
有关每种类型如何影响可用性报告,请参阅维护期的影响。
生效时间 执行维护期开始生效的日期和时间。
注意:仅设置此时间不会激活维护期;必须在 时间段 中配置维护期(见下文)。
失效时间 执行维护期停止生效的日期和时间。
时间段 此区域允许您定义维护进行的具体日期和时间。单击 可打开弹出窗口,其中包含灵活的 维护期 表单,您可以在其中定义维护计划。有关详细说明,请参阅维护期。
主机群组 选择要激活维护的主机群组。维护将对指定主机群组中的所有主机激活。此字段支持自动补全,因此开始输入时会显示包含所有可用主机群组的下拉列表。
指定父主机群组会隐式选择所有嵌套的主机群组。因此,维护也会对嵌套群组中的主机激活。
主机 选择要激活维护的主机。
此字段支持自动补全,因此开始输入时会显示包含所有可用主机的下拉列表。
触发器 选择要激活维护的触发器。
此字段支持自动补全,因此开始输入时会显示包含所有可用触发器的下拉列表。
事件名称 指定要激活维护的事件名称。
可以设置多个条件。
每个条件有两个可用运算符:
包含 - 包含指定的标签名称,其中标签值包含输入的字符串(子字符串匹配,不区分大小写)
不包含 - 排除指定的标签名称,其中标签值包含输入的字符串(子字符串匹配,不区分大小写)
标签 指定要激活维护的标签。
可以设置多个条件。标签名称匹配始终区分大小写。

每个条件有多个可用运算符:
包含 - 包含指定的标签名称,其中标签值包含输入的字符串(子字符串匹配,区分大小写);
等于 - 包含指定的标签名称和值(区分大小写)。
不等于 - 排除指定的标签名称和值(区分大小写)
不包含 - 排除指定的标签名称,其中标签值包含输入的字符串(子字符串匹配,不区分大小写)

条件有两种计算类型:
与/或 - 必须满足所有条件,具有相同标签名称的条件将按“或”条件分组;
或 - 满足一个条件即可。

仅在选择 带数据采集 维护类型时才能指定标签。
描述 维护期的描述。
维护周期

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

Period type Description
One time only 配置一次性维护周期:
Date - 维护周期的日期和时间;
Maintenance period length - 维护将保持活动的时长。
Daily 配置每日维护周期:
Every day(s) - 维护频率(1 - (默认) 每天,2 - 每两天,等等);
At (hour:minute) - 维护开始的当天时间;
Maintenance period length - 维护将保持活动的时长。

当 Every day(s) 参数大于 "1" 时,起始日为 Active since 时间所在的日期。例如:
- 如果 Active since 设置为 "2021-01-01 12:00",Every day(s) 设置为 "2",且 At (hour:minute) 设置为 "23:00",则第一个维护周期将于 1 月 1 日 23:00 开始,而第二个维护周期将于 1 月 3 日 23:00 开始;
- 如果 Active since 设置为 "2021-01-01 12:00",Every day(s) 设置为 "2",且 At (hour:minute) 设置为 "01:00",则第一个维护周期将于 1 月 3 日 01:00 开始,而第二个维护周期将于 1 月 5 日 01:00 开始。
Weekly 配置每周维护周期:
Every week(s) - 维护频率(1 - (默认) 每周,2 - 每两周,等等);
Day of week - 维护应在一周中的哪一天进行;
At (hour:minute) - 维护开始的当天时间;
Maintenance period length - 维护将保持活动的时长。

当 Every week(s) 参数大于 "1" 时,起始周为 Active since 时间所在的那一周。示例请参见上方 Daily 参数说明。
Monthly 配置每月维护周期:
Month - 选择执行常规维护的所有月份;
Date: Day of month - 如果维护应在每个月的同一天进行(例如,每月 1 日),请选择此选项,然后在出现的 Day of month 字段中选择所需日期;
Date: Day of week - 如果维护只应在某些特定日期进行(例如,每月的第一个星期一),请选择此选项,然后在下拉列表中选择所需的月份中的周次(第一、第二、第三、第四或最后),再勾选维护日期的复选框;
At (hour:minute) - 维护开始的当天时间;
Maintenance period length - 维护将保持活动的时长。

创建维护周期时,将使用创建该维护周期的用户的时区。 但是,在安排重复维护周期(Daily、Weekly、Monthly)时,将使用 Zabbix 服务器的时区。 为确保重复维护周期的行为可预测,要求 Zabbix 的所有部分使用统一的时区。

完成后,点击 Add,将维护周期添加到 Periods 部分。

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

  • 如果在维护进行一小时后(02:00)发生 DST 变更,当前时间从 02:00 变为 03:00,则维护还会继续一小时(直到 04:00);
  • 如果在维护进行两小时后(03:00)发生 DST 变更,当前时间从 03:00 变为 02:00,则维护将停止,因为两小时已经过去;
  • 如果维护周期开始于 DST 变更中被跳过的那一小时,则维护不会开始。

如果将维护周期设置为“1 day”(维护的实际周期为 24 小时,因为 Zabbix 按小时计算天数),并且从 00:00 开始,到次日 00:00 结束:

  • 如果当前时间向前调整一小时,则维护会在次日 01:00 停止;
  • 如果当前时间向后调整一小时,则维护会在当天 23:00 停止。

显示

在维护中显示主机

主机名称旁边的橙色扳手图标 表示该主机处于维护中,显示位置包括:

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

将鼠标指针悬停在该图标上时,会显示维护详情。

此外,在 监控 > 地图 中,处于维护中的主机会显示橙色背景。

显示被抑制的问题

通常,处于维护中的主机的问题会被抑制,也就是说,不会在前端中显示。

被抑制的问题也可能因为被手动抑制而隐藏。

可以在以下位置选择 显示被抑制的问题 选项来显示被抑制的问题:

  • 仪表板(在 问题主机、问题、按严重性划分的问题、触发器概览 小部件配置中)
  • 监控 > 问题(在筛选器中)
  • 监控 > 地图(在地图配置中)
  • 全局 通知(在用户配置文件配置中)

显示被抑制的问题时,会显示以下图标: 。 如果抑制是由于主机维护,则会显示以下图标:

  • icon_suppression_maintenance.png - 问题因主机维护而被抑制。
  • icon_unsuppressed_maintenance.png - 问题在主机维护结束后已取消抑制。

将鼠标悬停在图标上可显示更多详细信息。 在事件详情中,您可以查看该事件是因为维护而被抑制,还是被手动抑制。 如果同时适用维护和手动抑制,则图标颜色以手动抑制为优先。

维护期间的队列计算

Zabbix 前端中显示的队列(Administration > Queue)由 Zabbix 服务器计算。 它们不包括处于 No data collection 维护中的监控项,并且这些监控项的队列长度始终为零,即使其值已延迟也是如此。 处于 With data collection 维护中的延迟监控项仍会计入队列。

Zabbix proxy 不会感知维护周期,因为 Zabbix 服务器与 proxy 之间没有维护配置同步。 在 Zabbix proxy 上计算的内部检查(例如,zabbix[queue,,] 和 zabbix[stats,,,queue,,])会报告延迟的监控项,而不考虑 Zabbix 服务器上的维护状态。

因此,对于同一批处于 No data collection 维护中的监控项,Zabbix 前端和 Zabbix proxy 上的内部检查可能会报告不同的队列长度。