2 自定义时间间隔
概述
可以创建有关监控项检查时间的自定义规则。 有两种方法可以实现这一点:灵活间隔,用于重新定义默认更新间隔;以及 计划,通过它可以在特定时间或一系列特定时间执行监控项检查。
灵活时间间隔
灵活时间间隔允许为特定时间段重新定义默认更新间隔。
灵活时间间隔由 Interval 和 Period 定义,其中:
如果多个灵活时间间隔发生重叠,则在重叠时间段内使用最小的 Interval 值。
请注意,如果重叠的灵活时间间隔中的最小值为“0”,则不会执行轮询。
在灵活时间间隔之外,将使用默认更新间隔。
请注意,如果灵活时间间隔等于该时间段的长度,则监控项将只被检查一次。
如果灵活时间间隔大于该时间段,则监控项可能会被检查一次,也可能完全不会被检查(因此不建议使用此类配置)。
如果灵活时间间隔小于该时间段,则监控项至少会被检查一次。
如果灵活时间间隔设置为“0”,则在该灵活时间间隔期间不会轮询监控项,并会在该时间段结束后按照默认的 Update interval 恢复轮询。
示例:
| Interval | Period | Description |
|---|---|---|
| 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 检查一次。请注意,这曾被用作计划检查的变通方法,建议对此类检查使用计划时间间隔。 |
调度间隔
调度间隔用于在特定时间检查监控项。 灵活间隔旨在重新定义监控项的默认更新间隔,而调度间隔则用于指定独立的检查计划,并行执行。
调度间隔定义为:md<filter>wd<filter>h<filter>m<filter>s<filter>,其中:
- md - 每月日期
- wd - 星期几
- h - 小时
- m - 分钟
- s – 秒
<filter> 用于为其前缀指定值(日期、小时、分钟、秒),定义如下:[<from>[-<to>]][/<step>][,<filter>],其中:
<from>和<to>定义匹配值的范围(包含边界值)。 如果省略<to>,则过滤器匹配<from> - <from>范围。 如果<from>也被省略,则过滤器匹配所有可能的值。<step>定义在该范围内跳过的数值步长。 默认情况下,<step>的值为 1,这意味着将匹配所定义范围内的所有值。
虽然过滤器定义是可选的,但必须至少使用一个过滤器。 过滤器必须定义范围,或者定义 <step> 值。
空过滤器在未定义更低级别过滤器时匹配“0”,否则匹配所有可能的值。 例如,如果省略小时过滤器,则仅匹配“0”点,前提是分钟和秒过滤器也都被省略;否则,空的小时过滤器将匹配所有小时值。
各过滤器前缀对应的有效 <from> 和 <to> 值如下:
| Prefix | Description | <from> | <to> |
|---|---|---|---|
| md | 每月日期 | 1-31 | 1-31 |
| wd | 星期几 | 1-7 | 1-7 |
| h | 小时 | 0-23 | 0-23 |
| m | 分钟 | 0-59 | 0-59 |
| s | 秒 | 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 点只会执行一次。
示例:
| Interval | Will be executed |
|---|---|
| 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 | 每五分钟 |
| 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 | 每月 1 日的 9:30 |
| md1wd1h9m30 | 如果每月 1 日是星期一,则在 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:00:30、10:00:30、11:00:30、12:00:30、15:00:30 |
| h9-12s30 | 每天的 9:00:30、9:01:30、9:02:30 ... 12:58:30、12:59:30 |
| h9m/30;h10 (API-specific syntax) | 每天的 9:00、9:30、10:00 |
| h9m/30 h10 (add this as another row in frontend) |
每天的 9:00、9:30、10:00 |
为 proxy 和 agent 对齐时区
请注意,Zabbix proxy 和 agent 在处理调度间隔时会使用其本地时区。
因此,当调度间隔应用于由 Zabbix proxy 监控的监控项或 agent active 监控项时,建议将相应 proxy 或 agent 的时区设置为与 Zabbix 服务器相同,否则,队列 可能会错误地报告监控项延迟。
Zabbix proxy 或 agent 的时区可以通过在 systemd 单元文件中使用环境变量 TZ 来设置:
[Service]
...
Environment="TZ=Europe/Amsterdam"