2 自定义间隔
概述
可以create自定义规则来指定监控项的检查时间。 实现这一功能的两种方法是:灵活间隔(允许重新定义默认的update间隔)和调度(可在特定时间或时间序列执行监控项检查)。
灵活间隔
灵活间隔允许为特定时间段重新定义默认更新间隔。 灵活间隔由 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 | 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:00 只会执行一次。
示例:
| 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 | 每 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 执行 |
对齐 proxies 和 agent 的时区
请注意,Zabbix proxies和agent在处理调度间隔时会使用其本地时区。
因此,当对由Zabbix proxy或agent主动监控项监控的监控项应用调度间隔时,建议将相应proxies或agent的时区设置为与Zabbix server相同,否则queue可能会错误地报告监控项延迟。
Zabbix proxy或agent的时区可通过在systemd单元file中设置环境变量TZ来实现:
默认
[Service]
...
Environment="TZ=Europe/Amsterdam"
[comment]: # ({/6806cc58-4cc438e8})