11. 维护期

概述

在 Zabbix 中,您可以为主机组、主机以及特定的触发器或服务定义维护期。

Zabbix 提供两种维护类型 - 有数据收集(with data collection)和没有数据收集(with no data collection)。

在“有数据收集”的维护期间,触发器会像平常一样进行处理,并在需要时创建事件。然而,如果在操作配置中勾选了“暂停操作以解决被抑制的问题(Pause operations for suppressed problems)* 选项,则会暂停维护中的主机/触发器的问题升级。在此情况下,包括发送通知或远程命令的升级步骤将被忽略,维护期间持续期间内不会执行这些步骤。需要注意的是,问题的恢复和更新操作在维护期间不会被抑制,只有升级操作会被暂停。

例如,如果在问题发生后的0、30和60分钟安排了升级步骤,并且在实际问题发生后进行了30分钟的维护,那么第二步和第三步将会延迟半小时执行,即在60分钟和90分钟时执行(前提是问题仍然存在)。同样地,如果在维护期间出现了问题,升级步骤会在维护结束后开始执行。

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

在触发器表达式中使用的主机,只要至少有一个主机未处于维护模式中,Zabbix 将发送问题通知。

Zabbix server 在维护期间必须保持运行状态。维护期每分钟重新计算一次,或者在配置缓存重新加载时进行。如果维护期间有更改,定时器进程会在每分钟的0秒检查是否需要更改主机状态进入或退出维护模式。此外,每秒钟定时器进程会根据配置更新的间隔(默认为10秒)检查是否需要开始或停止任何维护期。因此,启动或停止维护期的速度取决于配置更新间隔。

需要注意的是,维护期更改不包括“自激活时间/自停止时间”设置。另外,如果将主机或主机组添加到现有的活动维护期中,这些更改将在下一分钟开始时由定时器进程激活。

当主机进入维护模式时,Zabbix Server定时器进程将读取所有未解决的问题以确定是否需要抑制这些问题。如果存在许多未解决的问题,这可能会对性能产生影响。此外,即使在此时没有配置维护期,Zabbix server 在启动时也会读取所有未解决的问题。

需要注意的是,Zabbix Server(或proxy)始终会收集数据,无论维护类型如何(包括“无数据”维护)。如果设置了“无数据收集”,server 会忽略后来的数据。

当“无数据”维护结束时,使用 nodata() 函数的触发器在它们检查期间不会在下一次检查之前触发。

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

如果在“无数据”维护类型中为主机发送了时间戳值(例如使用Zabbix sender),则该值将被丢弃。然而,可以在维护期已过期的情况下发送时间戳值,系统将接受该值。

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

配置

配置维护期有以下操作步骤:

  • 转到:配置(Configuration) → 维护(Maintenance)
  • 单击创建维护期(或现有维护期的名称)
  • 在表格中输入维护参数

所有必填字段都标有红色星号。

参数 描述
名称 维护期的名称。
维护类型 可设置两种维护类型:
带数据收集 - 维护期间服务器会收集数据,并处理触发器;
无数据收集 - 维护期间服务器不会收集数据。
生效时间 维护期生效的日期和时间。
注意: 单独设置此时间并不会激活维护期;必须在时间段中配置维护期(详见下文)。
结束时间 维护期结束的日期和时间。
时间段 这个部分允许您定义维护期间确切的天数和小时。点击打开一个灵活的维护期表单弹窗,您可以在那里定义维护期的计划。详见维护期时间段获取详细描述。
主机组 选择要激活维护期的主机组。维护期将对指定主机组中的所有主机生效。此字段支持自动完成,开始输入时将显示所有可用的主机组下拉列表。
隐式选择父主机组会同时选择所有嵌套的主机组。因此,维护期也将在嵌套组的主机上生效。
主机 选择要激活维护期的主机。此字段支持自动完成,开始输入时将显示所有可用的主机下拉列表。
标签 如果指定了维护标签,将会激活所选主机的维护期,但只会抑制匹配标签的问题(即不会执行任何操作)。

对于多个标签,计算方法如下:
And/Or - 所有标签必须对应;但标签具有相同标签名称的情况下,按Or条件计算;
Or - 只需要一个标签对应即可。

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

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

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

周期类型 描述
仅一次 配置仅一次的维护期:
日期 - 维护期开始的日期和时间;
维护期长度 - 维护期持续时间。
每天 配置每日维护期:
每天(s) - 维护频率(1 - (默认) 每天,2 - 每两天,以此类推);
在 (小时:分钟) - 维护开始的时间;
维护期长度 - 维护期持续时间。

每天(s)参数大于 "1" 时,起始日期是生效时间所在的日期。例如:
- 如果生效时间设置为 "2021-01-01 12:00",每天(s)设置为 "2",在 (小时:分钟) 设置为 "23:00",则第一个维护期将于1月1日23:00开始,第二个维护期将于1月3日23:00开始;
- 如果生效时间设置为 "2021-01-01 12:00",每天(s)设置为 "2",在 (小时:分钟) 设置为 "01:00",则第一个维护期将于1月3日01:00开始,第二个维护期将于1月5日01:00开始。
每周 配置每周维护期:
每周(s) - 维护频率(1 - (默认) 每周,2 - 每两周,以此类推);
星期几 - 维护应该在哪一天进行;
在 (小时:分钟) - 维护开始的时间;
维护期长度 - 维护期持续时间。

每周(s)参数大于 "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停止。

展示

显示维护中的主机

主机名旁边的橙色扳手图标 表示该主机正在维护中:

  • 仪表盘(Dashboard)
  • 监控(Monitoring) → 问题(Problems)
  • 资产清单(Inventory) → 主机(Hosts) → 主机清单详细信息(Host inventory details)
  • 数据收集(Data collection ) → 主机(Hosts)(参见“状态(status)”列)

将鼠标指针悬停在图标上时会显示维护详细信息。

此外,维护中的主机在监控(Monitoring) → 拓扑图(Maps)中显示为橙色背景。

显示抑制的问题

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

  • 仪表板(Dashboard)(在问题主机(Problem hosts)问题(Problems)严重性问题(Problems by severity)触发器概览(Trigger overview)小部件配置)
  • 监控(Monitoring)问题(Problems)(在过滤器中)
  • 监控(Monitoring)拓扑图(Maps)(在拓扑图配置中)
  • 全局 通知(在用户配置文件配置中)

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