您可以在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同步后生效。
配置维护时段:
所有必填字段均以红色星号标记。
参数 | 描述 |
---|---|
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 结束:
如果维护时段设置为 "1 天"(由于 Zabbix 按小时计算天数,维护的实际持续时间为 24 小时),从 00:00 开始,并在次日 00:00 结束:
一个橙色扳手图标 位于主机名称旁边的图标表示该主机处于维护状态:
当鼠标指针放置在该图标上时,会显示维护详情。
此外,处于维护状态的主机在监控 → 拓扑图中会显示为get橙色背景。
通常,处于维护状态的 主机 的问题会被抑制,即不会在前端显示。但是,也可以通过在以下位置选择 显示被抑制的问题 选项来配置显示被抑制的问题:
当显示被抑制的问题时,将显示以下图标: 。将鼠标悬停在图标上会显示更多详细信息。
在 Zabbix 前端(Administration > Queue)中显示的队列是通过 Zabbix server 计算得出的。它们不包括处于维护状态且未进行数据采集的 监控项——这些 监控项 的队列长度始终为零,即使它们的值存在延迟。对于处于维护状态但进行数据采集的延迟 监控项,它们仍会计入队列中。
Zabbix proxy 并不了解维护周期,因为在 Zabbix server 和 proxy 之间没有维护配置的同步。在 Zabbix proxies 上计算的内部检查(例如 zabbix[queue,,]
和 zabbix[stats,,,queue,,]
)会报告延迟的 监控项,而不管 Zabbix server 上的维护状态如何。
因此,对于处于维护状态且未进行数据采集的相同 监控项,Zabbix 前端和 Zabbix proxies 上的内部检查可能会报告不同的队列长度。