2 自定义时间间隔
概述
可以创建关于检查监控项时间间隔的自定义规则。这两种方法分别是灵活间隔,允许重新定义默认的更新间隔;以及调度,可以在特定时间或时间序列执行监控项检查。
灵活间隔
灵活间隔允许重定义特定时间段的默认更新间隔。灵活间隔由时间间隔和时间周期进行定义,其中:
- 时间间隔 – 在指定时间段内更新间隔
- 时间周期 – 灵活间隔处于活动状态的时间段(请参阅时间段 以了解 时间周期 格式的详细说明)
如果多个灵活间隔重叠,则重叠期间使用最小的间隔值。请注意,如果重叠灵活间隔的最小值为“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点检查。请注意,这是作为计划检查的变通方法,建议使用调度间隔进行此类检查。 |
调度间隔
调度间隔用于在特定时间检查监控项。灵活间隔旨在重新定义默认监控项的更新间隔,而调度间隔常用于指定并行执行的独立检查计划。
调度间隔的定义是: 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 h10 (在前端的另一行添加) | 在9:00,9:30,10:00执行 |
为 proxies 和 agent 对齐时区
请注意,Zabbix proxies 和 agent 在处理调度间隔时使用其本地时区。
因此,当将调度间隔应用于受 Zabbix proxies 和 agent 监控的活跃监控项时,建议将相应 proxies 和 agent 的时区设置为与 Zabbix 服务器相同,否则 队列 可能会错误地报告监控项延迟。
可以使用 systemd
单元文件中的环境变量 TZ
设置 Zabbix proxies 和 agent 的时区:
[Service] … Environment=”TZ=Europe/Amsterdam”