有两种方法可以创建检查监控项的时间的自定义规则。 灵活间隔,允许重新定义默认更新间隔;调度,可以在特定时间或时间序列执行监控项检查。
Zabbix agent 2 supports custom intervals for both passive and active checks, whereas Zabbix agent supports custom intervals only for passive checks. See Zabbix agent vs agent 2 comparison.
灵活间隔允许重定义特定时间段的默认更新间隔。灵活的间隔用间隔和期间进行定义,其中:
可以定义多达七种灵活的时间间隔。如果多个灵活间隔设置有冲突,则在冲突周期中使用其中最小的间隔值。请注意,如果灵活间隔的最小值为“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点检查。请注意,这被用作计划检查的变通方法,且从Zabbix 3.0开始建议使用调度间隔来实现。 |
调度用于在特定时间检查监控项。虽然默认的自定义时间间隔是灵活,但是调度常用于指定独立执行的检查计划。
调度定义为: md<filter>wd<filter>h<filter>m<filter>s<filter>
其中:
<filter>
用于指定其前缀的值(日, 时, 分, 秒) 并被定义为:: [<from>[-<to>]][/<step>][,<filter>]
其中:
<from>
和<to>
定义匹配值的范围(包括)。 如果忽略 <to>
则过滤器匹配 <from> - <from>
范围。 如果 <from>
也被省略,则过滤器匹配所有可能的值。<step>
通过该范围定义数字值的跳过。默认情况下,<step>
的值为1,这意味着所有定义范围的值都匹配。<step> 通过该范围定义数字值的跳过。默认情况下, <step> 的值为1,这意味着所有定义范围的值都匹配。 虽然过滤器定义是可选的,但必须至少使用一个过滤器。过滤器必须有一个范围或定义的<step>值。
如果没有定义低级别过滤器,则一个空的filter既与“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执行 |
Note that Zabbix proxies and agent 2 use their local time zones when processing scheduling intervals.
For this reason, when scheduling intervals are applied to items monitored by Zabbix proxy or agent 2 active items, it is recommended to set the time zone of the respective proxies or agent 2 the same as Zabbix server, otherwise the queue may report item delays incorrectly.
The time zone for Zabbix proxy or agent 2 can be set using the environment variable TZ
in the systemd
unit file: