[comment]: # translation:outdated

[comment]: # ({ffc3ea50-ffc3ea50})
# 2 自定义时间间隔

[comment]: # ({/ffc3ea50-ffc3ea50})

[comment]: # ({2c00d21c-2c00d21c})
#### 概述

可以创建关于检查监控项时间间隔的自定义规则。这两种方法分别是*灵活间隔*，允许重新定义默认的更新间隔；以及*调度*，可以在特定时间或时间序列执行监控项检查。

[comment]: # ({/2c00d21c-2c00d21c})

[comment]: # ({e9ab49b5-41315093})
#### 灵活间隔

灵活间隔允许重定义特定时间段的默认更新间隔。灵活间隔由*时间间隔*和*时间周期*进行定义，其中：

-   *时间间隔* – 在指定时间段内更新间隔
-   *时间周期* – 灵活间隔处于活动状态的时间段（请参阅[时间段](/manual/appendix/time_period) 以了解 *时间周期* 格式的详细说明）

如果多个灵活间隔重叠，则重叠期间使用最小的*间隔*值。请注意，如果重叠灵活间隔的最小值为“0”，则不会进行轮询。在灵活间隔之外，将使用默认更新间隔。

注意，如果灵活间隔等于时间周期，则该项目将只被检查一次。如果灵活间隔大于周期，则该项目可能被检查一次或根本不被检查（因此这种配置不可取）。如果弹性间隔小于周期，则该监控项将至少被检查一次。

如果将灵活间隔设置为“0”，则在灵活间隔期间不会轮询该监控项，并且一旦周期结束，将根据默认的“更新间隔”恢复轮询。示例：

|时间间隔|时间周期|描述|
|--|--|------|
|10|1-5,09:00-18:00|监控项将在工作时间内每10秒检查一次。|
|0|1-7,00:00-7:00|监控项不会在夜间检查。|
|0|7-7,00:00-24:00|监控项不会在星期日检查。|
|60|1-7,12:00-12:01|监控项将在每天12:00点检查。请注意，这是作为计划检查的变通方法，建议使用调度间隔进行此类检查。|

[comment]: # ({/e9ab49b5-41315093})

[comment]: # ({128c5833-128c5833})
#### 调度间隔

调度间隔用于在特定时间检查监控项。灵活间隔旨在重新定义默认监控项的更新间隔，而调度间隔常用于指定并行执行的独立检查计划。

调度间隔的定义是:
`md<filter>wd<filter>h<filter>m<filter>s<filter>` 其中:

-   **md** - month days
-   **wd** - week days
-   **h** - hours
-   **m** - minutes
-   **s** – seconds

`<filter>` 用于为其前缀（日、时、分、秒）指定值，定义为：`[<from>[-<to>]][/<step>][,<filter>]`

其中：
-   `<from>` 和`<to>` 定义匹配值的范围（包括）。如果省略 `<to>`，则过滤器匹配 `<from> - <from>` 范围。如果还省略了 `<from>`，则过滤器将匹配所有可能的值。
-   `<step>` 定义数值在范围内的跳过次数。默认情况下，`<step>` 的值为 1，这意味着匹配定义范围内的所有值。

虽然过滤器定义是可选的，但必须使用至少一个过滤器。过滤器必须具有范围或定义的 *<step>* 值。

如果没有定义低级别过滤器，则空过滤器匹配“0”，否则匹配所有可能的值。例如，如果省略了小时过滤器，则只有“0”小时会匹配，前提是分钟和秒过滤器也被省略，否则空小时过滤器将匹配所有小时值。

过滤器前缀的有效 <from> 和 <to> 值分别为：

|前缀|描述|*<from>*|*<to>*|
|------|-----------|--------------|------------|
|md|Month days|1-31|1-31|
|wd|Week days|1-7|1-7|
|h|Hours|0-23|0-23|
|m|Minutes|0-59|0-59|
|s|Seconds|0-59|0-59|

`<from>` 值必须小于或等于 `<to>` 值。`<step>` 值必须大于或等于 1 且小于或等于 `<to>` -`<from>`。

单个数字的月份、日期、小时、分钟和秒值可以以 0 为前缀。例如，`md01-31` 和 `h/02` 是有效间隔，但 `md01-031` 和 `wd01-07` 不是。

在 Zabbix 前端，多个调度间隔输入到单独的行中。在 Zabbix API 中，它们被连接成一个字符串，以分号 `;` 作为分隔符。

如果一个时间与多个间隔匹配，则仅执行一次。例如，`wd1h9;h9` 将在星期一上午 9 点仅执行一次。

示例:

|间隔|执行效果|
|--------|----------------|
|m0-59|每分钟执行一次|
|h9-17/2|从9:00开始每2小时执行一次（9:00，11:00 ...）|
|m0,30 or m/30|在每小时的hh:00 和 hh:30执行|
|m0,5,10,15,20,25,30,35,40,45,50,55 or m/5|每5分钟执行|
|wd1-5h9|每周一至周五9:00|
|wd1-5h9-18|每个星期一到星期五在9：00,10：00，...，18:00|
|h9,10,11 or h9-11|每天上午9:00，10:00和11:00|
|md1h9m30|每个月的第一天在9:30|
|md1wd1h9m30|如果是星期一，每个月的第一天在9:30执行|
|h9m/30|在9:00，9:30执行|
|h9m0-59/30|在9:00，9:30执行|
|h9,10m/30|在9:00，9:30，10:00，10:30执行|
|h9-10m30|在9:30，10:30执行|
|h9m10-40/30|在9:10，9:40执行|
|h9,10m10-40/30|在9:10，9:40，10:10，10:40执行|
|h9-10m10-40/30|在9:10，9:40，10:10，10:40执行|
|h9m10-40|在9:10，9:11，9:12，... 9:40执行|
|h9m10-40/1|在9:10，9:11，9:12，... 9:40执行|
|h9-12,15|在9:00，10:00，11:00，12:00，15:00执行|
|h9-12,15m0|在9:00，10:00，11:00，12:00，15:00执行|
|h9-12,15m0s30|在上午9时30分，上午10时30分，11时30分，12时30分，15时30分执行|
|h9-12s30|在9:00:30，9:01:30，9:02:30 ... 12:58:30，12:59:30执行|
|h9m/30;h10 (*API-指定语法*)|在9:00，9:30，10:00执行|
|h9m/30<br>h10 (*在前端的另一行添加*)|在9:00，9:30，10:00执行|

[comment]: # ({/128c5833-128c5833})

[comment]: # ({5f53ed1f-4cc438e8})
##### 为 proxies 和 agent 对齐时区

请注意，Zabbix proxies 和 agent 在处理调度间隔时使用其本地时区。

因此，当将调度间隔应用于受 Zabbix proxies 和 agent 监控的活跃监控项时，建议将相应 proxies 和 agent 的时区设置为与 Zabbix 服务器相同，否则 [队列](/manual/config/items/queue) 可能会错误地报告监控项延迟。

可以使用 `systemd` 单元文件中的环境变量 `TZ` 设置 Zabbix proxies 和 agent 的时区：

  [Service]
  ...
  Environment="TZ=Europe/Amsterdam"

[comment]: # ({/5f53ed1f-4cc438e8})
