可以在 Zabbix 中定义主机群组、主机和特定触发器/服务的维护期。
有两种维护类型 - 有数据收集(with data collection)和没有数据收集(with no data collection)。
在“有数据收集(with data collection)”的维护期间,触发器照常处理,并在需要时创建事件。但是,如果在操作配置中选中了 暂停操作以解决被抑制的问题(Pause operations for suppressed problems) 选项,则会暂停维护中的主机/触发器的问题升级。在这种情况下,只要维护期持续,可能包括发送通知或远程命令的升级步骤将被忽略。请注意,维护期间不会抑制问题恢复和更新操作,只会抑制升级。
例如,如果升级步骤安排在问题开始后的 0、30 和 60 分钟,并且在真正问题出现后的 10 分钟到 40 分钟之间进行半小时的维护,则将在半小时或 60 分钟和 90 分钟(假设问题仍然存在)后执行步骤 2 和 3。同样,如果在维护过程中出现问题,则在维护后开始升级。
要在维护期间正常(无延迟)接收问题通知,您必须取消选中操作配置中的 暂停操作以解决被抑制的问题(Pause operations for suppressed problems) 选项。
如果至少有一台主机(在触发器表达式中使用)未处于维护模式,Zabbix 将发送问题通知。
Zabbix server 必须在维护期间运行。如果维护周期发生更改,维护将每分钟重新计算一次,或者在重新加载配置缓存时立即生效。
定时器进程会在每分钟的0秒检查主机状态是否需要切换到维护状态/从维护状态返回。 此外,定时器进程每秒都要检查是否有维护动作需要启动/停止,这个行为的发生取决于配置更新后是否有针对[maintenance periods]的更改。 因此,启动/停止维护期间的速度取决于配置[update interval]更新间隔(默认为10秒)。需要注意的是,维护期间的更改不包括“Active since”和“Active till”设置。另外,如果将主机/主机组添加到现有的已经存在的活动维护周期的话,这些更改将在下一分钟开始时由定时器进程激活。
请注意,当有主机进入维护状态时,Zabbix Server的定时器进程将读取所有还在持续状态的未解决的问题,以确定是否需要抑制这些问题。如果存在许多未解决的问题,这可能会对性能产生影响。即使在此时未配置任何维护期间,Zabbix 服务器在启动时也会读取所有未解决的问题。
请注意,Zabbix Server(或proxy)始终会收集数据,不论维护类型是什么(包括“无数据”维护)。如果设置了“无数据收集”,服务器稍后会忽略这些数据。无论维护类型如何(包括“无数据收集”维护),proxy 都将始终收集数据。如果设置了“无数据收集”,则 server 会忽略该数据。
当“无数据”维护结束时,使用 nodata() 函数的触发器在它们检查期间不会在下一次检查之前触发。
如果在主机维护和维护结束时添加日志类型监控项,则只会收集自维护结束以来的新日志文件条目。
如果为处于 “无数据收集” 维护类型的主机发送带时间戳的值(例如使用 Zabbix sender),则该值将被丢弃。然而,可以再维护期过去之后发送带有时间戳的数值,此时该值将会被接受。
为了确保重复维护周期(每天、每周、每月)的可预测性,Zabbix 的所有组件都需要使用同一个公共时区。
如果维护周期、主机、主机群组或标签由用户更改,更改将在配置缓存同步后生效。
配置维护期有以下操作步骤:
所有必填字段都标有红色星号。
参数 | 描述 |
---|---|
名字(Name) | 维护期的名称。 |
维护类型(Maintenance type) | 可以设置两种维护方式: 有数据采集(With data collection) - 维护时服务器采集数据,处理触发器 无数据采集(No data collection) - 维护时服务器不采集数据 |
启用自从(Active since) | 执行维护期的日期和时间变为活动状态。 注意:单独设置此时间不会激活维护期;为此,请转到期间(Periods)选项卡 |
启用直到(Active till) | 执行维护期停止活动的日期和时间。 |
时期(Periods) | 此块允许您定义进行维护的确切日期和时间。单击 ![]() |
主机组(Host groups) | 选择将为其激活维护的主机组。将为指定主机组中的所有主机激活维护。此字段是自动完成的,因此开始输入它将显示所有可用主机组的下拉列表。 指定父主机组会隐式选择所有嵌套主机组。因此,维护也将在嵌套组的主机上激活。 |
主机(Hosts) | 选择将为其激活维护的主机。此字段是自动完成的,因此输入它将显示所有可用主机的下拉列表。 |
标签(Tags) | 如果指定了维护标签,对选定主机的维护仍将被激活,但只有当它们的标签匹配时才会抑制问题(即不采取任何措施)。 如果有多个标签,则计算如下: And/Or - 所有标签必须对应;但是标签名相同的标签由 Or 条件计算 Or - 一个标签对应即可 匹配标签值有两种方式: Contains - 区分大小写的子字符串匹配(标签值包含输入的字符串) Equals - 区分大小写字符串匹配(标签值等于输入的字符串) |
描述(Description) | 维护期说明。 |
维护期间窗口用于安排定期或一次性维护的时间。该表单是动态的,可用字段根据所选的期间类型(Period type)而变化。
期间类型(Period type) | 描述(Description) |
---|---|
一次性(One time only) | 定义日期和时间,以及维护期的长度。 |
每日(Daily) | 每天(Every day(s)) - 维护频率:1(默认) - 每天,2 - 每两天等。 于(时:分)(At (hour:minute)) - 维护开始的一天中的时间 维护期长度(Maintenance period length) - 维护将持续多长时间。 |
每周(Weekly) | 每周(Every week(s)) - 维护频率:1(默认) - 每天,2 - 每两天等。 星期几(Day of week) - 应该在哪一天进行维护。 在(时:分)(At (hour:minute)) - 维护开始的一天中的时间 维护期长度(Maintenance period length) - 维护将持续多长时间。 |
每月(Monthly) | 月(Month) - 选择进行定期维护的所有月份。 日期(Date): 月的指定天(Day of month) - 如果维护发生在每个月的同一日期(例如,每月的第一天),请选择此选项。然后,在出现的新字段中选择所需的日期。 日期(Date): 星期几(Day of week) - 如果仅在特定日期(例如,每月的第一个星期一)进行维护,请选择此选项。然后,在下拉列表中选择每月所需的一周(第一、第二、第三、第四或最后一周)并标记维护日的复选框。 于(时:分)(At (hour:minute)) - 一天中开始维护的时间 维护期长度(Maintenance period length) - 维护将持续多长时间。 |
完成后,点击 Add 将维护期添加到 期间(Periods)块。
注意:
创建维护期时,使用创建它的用户的时区。但是,当定期维护期(Daily、Weekly、Monthly)被安排时, 使用 Zabbix 服务器的时区。为了确保重复维护周期的可预测行为,需要为 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停止。
主机名旁边的橙色扳手图标 表示该主机正在维护中:
将鼠标指针放在图标上时会显示维护详细信息。
此外,维护中的主机在监控(Monitoring) → 拓扑图(Maps)中显示为橙色背景。
通常,维护中的主机问题会被抑制,即不会显示在前端。但是,也可以通过在以下位置选择 显示抑制的问题 选项来配置显示抑制的问题:
显示抑制的问题时,会显示以下图标:。将鼠标悬停在图标上会显示更多详细信息: