9 维护

概述

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

此外,还可以通过指定触发器标签,仅为单个触发器(或部分触发器)定义维护。 在这种情况下,维护将只对这些触发器生效;主机或主机组中的所有其他触发器将不会处于维护中。

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

在“采集数据”的维护期间,触发器会照常处理,并在需要时创建事件。 但是,如果在动作配置中选中了 Pause operations for suppressed problems 选项,则处于维护中的主机/触发器的问题升级将被暂停。 在这种情况下,可能包括发送通知或执行远程命令的升级步骤将在整个维护期间内被忽略。 请注意,维护期间不会抑制问题恢复和更新操作,只有升级会被抑制。

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

如果您希望在维护期间正常(不延迟)接收问题通知,则必须在动作配置中取消选中 Pause operations for suppressed problems 选项。

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

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

timer 进程会在每分钟的第 0 秒检查是否必须将主机状态切换为进入/退出维护。 此外,在配置更新后,timer 进程每秒都会检查是否有任何维护需要根据[维护时段]启动/停止。 因此,维护时段启动/停止的速度取决于配置更新间隔(默认 10 秒)。 请注意,维护时段更改不包括 Active since/Active till 设置。 另外,如果将主机/主机组添加到现有的活动维护时段中,这些更改也只会由 timer 进程在下一分钟开始时生效。

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

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

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

如果在主机处于维护期间时添加了一个日志监控项,并且维护结束,则只会收集自维护结束以来的新日志文件条目。

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

如果用户更改了维护时段、主机、组或标签,则这些更改只有在配置缓存同步后才会生效。

配置

要配置维护时段:

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

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

参数 描述
名称 维护时段的名称。
维护类型 可设置两种维护类型:
采集数据 - 在维护期间,数据将由服务器采集,触发器将被处理;
不采集数据 - 在维护期间,数据将不会由服务器采集。
有关每种类型如何影响可用性报告,请参见 维护时段的影响
生效自 开始执行维护时段的日期和时间。
注意: 仅设置此时间并不会激活维护时段;还必须在 时段 中配置维护时段(见下文)。
生效至 停止执行维护时段的日期和时间。
时段 此块允许您定义维护发生的确切日期和时间。单击 会打开一个弹出窗口,其中包含灵活的 维护时段 表单,您可以在其中定义维护计划。有关详细说明,请参见 维护时段
主机组 选择要为其激活维护的主机组。维护将对指定主机组中的所有主机生效。此字段支持自动补全,因此在其中开始输入时,将显示包含所有可用主机组的下拉列表。
指定父主机组会隐式选择所有嵌套主机组。因此,维护也会对嵌套组中的主机生效。
主机 选择要为其激活维护的主机。此字段支持自动补全,因此在其中开始输入时,将显示包含所有可用主机的下拉列表。
标签 指定标签,以抑制问题中与维护中主机上的匹配标签对应的问题。
可以设置多个条件。标签名称匹配始终区分大小写。

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

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

只有在选择 采集数据 模式时才能指定标签。
描述 维护时段的描述。
维护时段

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

时段类型 说明
仅一次 配置一次性维护时段:
日期 - 维护时段的日期和时间;
维护时段长度 - 维护将保持活动状态的时长。
每日 配置每日维护时段:
每隔 N 天 - 维护频率(1 - (默认) 每天,2 - 每两天一次,依此类推);
在(时:分) - 维护开始的当天时间;
维护时段长度 - 维护将保持活动状态的时长。

每隔 N 天 参数大于“1”时,起始日为 活动自 时间所在的那一天。示例:
- 如果 活动自 设置为“2021-01-01 12:00”,每隔 N 天 设置为“2”,且 在(时:分) 设置为“23:00”,则第一个维护时段将于 1 月 1 日 23:00 开始,第二个维护时段将于 1 月 3 日 23:00 开始;
- 如果 活动自 设置为“2021-01-01 12:00”,每隔 N 天 设置为“2”,且 在(时:分) 设置为“01:00”,则第一个维护时段将于 1 月 3 日 01:00 开始,第二个维护时段将于 1 月 5 日 01:00 开始。
每周 配置每周维护时段:
每隔 N 周 - 维护频率(1 - (默认) 每周,2 - 每两周一次,依此类推);
星期几 - 维护应在哪一天进行;
在(时:分) - 维护开始的当天时间;
维护时段长度 - 维护将保持活动状态的时长。

每隔 N 周 参数大于“1”时,起始周为 活动自 时间所在的那一周。示例请参见上文 每日 参数说明。
每月 配置每月维护时段:
月份 - 选择执行定期维护的所有月份;
日期:每月第几天 - 如果维护应在每月相同日期进行(例如每月 1 日),请选择此选项,然后在出现的 每月第几天 字段中选择所需日期;
日期:星期几 - 如果维护应仅在某些特定日期进行(例如每月第一个星期一),请选择此选项,然后在下拉列表中选择所需的月份中的周次(第一、第二、第三、第四或最后一周),再勾选维护日;
在(时:分) - 维护开始的当天时间;
维护时段长度 - 维护将保持活动状态的时长。

在创建维护期时,使用创建者的时区。 然而,当选定维护周期(每天每周每月)时,会使用使用 Zabbix Server的时区。 为确保重复维护期内的可预测行为,需要在为Zabbix 的所有部分分配使用统一的时区设置。

完成后,点击添加将维护期添加到周期板块。 请注意,夏令时(DST)变化不会影响维护的持续时间.例如,假设我们配置了一个两小时的维护期,通常从01:00开始,到03:00结束:

  • 如果在维护进行了一小时后(在02:00时),发生了夏令时变化,当前时间从02:00调整到03:00,那么维护将继续进行一小时,直到04:00;
  • 如果在维护进行了两小时后(在03:00时),发生了夏令时变化,当前时间从03:00调整到02:00,那么维护将停止,因为已经过了两小时;
  • 如果维护期开始时间落在夏令时变化时跳过的那一小时内,维护将不会开始。

如果一个维护期被设置为“1天”(实际维护期为24小时,因为Zabbix将每天按小时来计算),从00:00开始,到第二天的00:00结束:

  • 如果当前时间向前调整了一小时,那么维护将在第二天的01:00停止;
  • 如果当前时间向后调整了一小时,那么维护将在当天的23:00停止。

展示

在维护中显示主机

主机名称旁边的橙色扳手图标 表示该主机在以下位置处于维护中:

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

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

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

显示已抑制的问题

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

  • 仪表板(在 问题主机问题按严重性分类的问题触发器概览 小部件配置中)
  • 监控 > 问题(在过滤器中)
  • 监控 > 拓扑图(在拓扑图配置中)
  • 全局 通知 (在用户配置文件配置中)

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

维护期间队列的计算

Zabbix 前端 中显示的队列(Administration > Queue)由 Zabbix 服务器计算。 其中不包括处于维护且不采集数据的监控项——即使这些监控项的值已延迟,其队列长度也始终为零。 处于维护且仍采集数据的延迟监控项仍会被计入队列。

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

因此,对于处于维护且不采集数据的同一批监控项,Zabbix 前端 与 Zabbix proxy 上的内部检查可能会报告不同的队列长度。