维护周期
概述
维护用于在预定义的时间段内抑制问题。
您可以在 Zabbix 中为主机和主机组定义维护周期。
此外,也可以通过指定触发器标签,仅为单个触发器(或触发器子集)定义维护。 在这种情况下,维护只会对这些触发器生效;主机或主机组中的其他所有触发器都不会进入维护。
维护类型有两种:With data collection 和 No data collection。
在 With data collection 维护期间,触发器会照常处理,并在需要时创建事件。 但是,如果在 action configuration 中勾选了 Pause operations for suppressed problems 选项,则处于维护中的主机/触发器的问题升级将被暂停。 在这种情况下,可能包含发送通知或远程命令的升级步骤将在维护期内被忽略。 请注意,问题恢复和更新操作在维护期间不会被抑制,只有升级会被抑制。 如果问题是在维护期间开始的,则不会发送恢复通知。
例如,如果升级步骤计划在问题开始后的 0、30 和 60 分钟执行,而在真实问题出现后 10 分钟到 40 分钟之间存在一个持续半小时的维护,那么第二和第三个步骤将延后半小时执行,即在 60 分钟和 90 分钟时执行(前提是问题仍然存在)。 同样,如果问题在维护期间出现,升级将在维护结束后开始。
如果要在维护期间正常接收问题通知(不延迟),需要在 action configuration 中取消勾选 Pause operations for suppressed problems 选项。
如果至少有一个主机(用于触发器表达式)不处于维护模式,Zabbix 将发送问题通知。
维护期间 Zabbix 服务器必须保持运行。 如果维护周期发生变化,维护会每分钟重新计算一次,或者在配置缓存重新加载后立即重新计算。
定时器进程会在每分钟的 0 秒检查主机状态是否需要切换为/退出维护。 此外,每秒定时器进程都会根据配置更新后 [maintenance periods] 是否发生变化,检查是否需要启动/停止任何维护。 因此,维护周期的启动/停止速度取决于配置 update interval(默认 10 秒)。 请注意,维护周期变更不包括 Active since/Active till 设置。 另外,如果将主机/主机组添加到一个已存在的活动维护周期中,这些更改只会在下一分钟开始时由定时器进程生效。
请注意,当主机进入维护时,Zabbix 服务器定时器进程会读取所有未关闭的问题,以检查是否需要将其抑制。 如果未关闭的问题很多,这可能会影响性能。 即使当前没有配置任何维护,Zabbix 服务器在启动时也会读取所有未关闭的问题。
请注意,无论维护类型如何,Zabbix 服务器(或 proxy)始终会收集数据(包括 No data collection 维护)。 之后,服务器会忽略这些数据,如果设置了 No data collection。
当 No data collection 维护结束后,使用 nodata() 函数的触发器在其检查期间内,直到下一次检查之前都不会触发。
如果在主机处于维护期间添加了一个日志监控项,而维护随后结束,则只会收集自维护结束以来的新日志文件条目。
如果向处于 No data collection 维护中的主机发送带时间戳的值(例如使用 Zabbix sender),则该值将被丢弃;但是,向已过期的维护周期发送带时间戳的值是可以接受的。
如果用户更改了维护周期、主机、组或标签,这些更改只有在配置缓存同步后才会生效。
配置
要配置一个维护周期:
- 转到:数据采集 > 维护。
- 单击 创建维护周期(或现有维护周期的名称)。
- 在表单中输入维护参数。

所有必填输入字段都用红色星号标记。
| Parameter | Description |
|---|---|
| Name | 维护周期的名称。 |
| Maintenance type | 可设置两种维护类型: With data collection - 在维护期间由服务器采集数据,并处理触发器; No data collection - 数据仍可能被采集,但在维护期间不会保存到数据库中,且触发器(包括 nodata() 函数)不会触发。有关每种类型如何影响可用性报告,请参见维护周期的影响。 |
| Active since | 执行维护周期开始生效的日期和时间。 注意: 仅设置此时间不会激活维护周期;必须在 Periods 中配置维护周期(见下文)。 |
| Active till | 执行维护周期停止生效的日期和时间。 |
| Periods | 此块允许您定义维护发生的具体日期和小时。单击 会打开一个弹出窗口,其中包含灵活的 Maintenance period 表单,您可以在其中定义维护计划。有关详细说明,请参见Maintenance periods。 |
| Host groups | 选择要为其激活维护的主机组。维护将对指定主机组中的所有主机生效。此字段支持自动补全,因此开始输入时会显示所有可用主机组的下拉列表。 指定父主机组会隐式选择其所有嵌套主机组。因此,维护也将对嵌套组中的主机生效。 |
| Hosts | 选择要为其激活维护的主机。此字段支持自动补全,因此开始输入时会显示所有可用主机的下拉列表。 |
| Tags | 指定标签,以便对维护中的主机上具有匹配标签的问题进行抑制。 可以设置多个条件。标签名称匹配始终区分大小写。 每个条件有两种可用运算符: Contains - 包含指定的标签名称,其中标签值包含输入的字符串(子字符串匹配,区分大小写); Equals - 包含指定的标签名称和值(区分大小写)。 条件有两种计算类型: And/Or - 必须满足所有条件,具有相同标签名称的条件将按 Or 条件分组; Or - 满足任一条件即可。 仅当选择 With data collection 维护类型时,才可以指定标签。 |
| Description | 维护周期的描述。 |
维护周期
维护周期窗口用于安排周期性或一次性维护的时间。 该表单是动态的,所显示的字段会根据所选的 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 停止。
显示
在维护中显示主机
主机名称旁边的橙色扳手图标
表示该主机处于维护中,显示位置包括:
- 仪表板
- 监控 > 问题
- 清单 > 主机 > 主机清单详情
- 数据采集 > 主机(参见“状态”列)
![]()
将鼠标指针悬停在该图标上时,会显示维护详情。
此外,在 监控 > 地图 中,处于维护中的主机会显示橙色背景。
显示被抑制的问题
通常,处于维护中的主机的问题会被抑制,也就是说,不会在前端中显示。
被抑制的问题也可能因为被手动抑制而隐藏。
可以在以下位置选择 显示被抑制的问题 选项来显示被抑制的问题:
- 仪表板(在 问题主机、问题、按严重性划分的问题、触发器概览 小部件配置中)
- 监控 > 问题(在筛选器中)
- 监控 > 地图(在地图配置中)
- 全局 通知(在用户配置文件配置中)
显示被抑制的问题时,会显示以下图标:
。
如果抑制是由于主机维护,则会显示以下图标:
- 问题因主机维护而被抑制。
- 问题在主机维护结束后已取消抑制。
将鼠标悬停在图标上可显示更多详细信息。 在事件详情中,您可以查看该事件是因为维护而被抑制,还是被手动抑制。 如果同时适用维护和手动抑制,则图标颜色以手动抑制为优先。

维护期间队列的计算
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 上的内部检查可能会报告不同的队列长度。
会打开一个弹出窗口,其中包含灵活的 Maintenance period 表单,您可以在其中定义维护计划。有关详细说明,请参见