2 自定义间隔

概述

可以create自定义规则来指定监控项的检查时间。 实现这一功能的两种方法是:灵活间隔(允许重新定义默认的update间隔)和调度(可在特定时间或时间序列执行监控项检查)。

弹性间隔

灵活间隔允许为特定时间段重新定义默认的update间隔。 灵活间隔通过间隔周期定义,其中:

  • 间隔 – 指定时间段内的update间隔。 Time suffixes支持时间单位后缀,例如30s、1m、2h、1d。
  • 周期 – 灵活间隔生效的时间段(有关周期格式的详细说明,请参阅time periods

如果多个灵活间隔重叠,则重叠期间使用最小的间隔值。 请注意,如果重叠灵活间隔的最小值为'0',则不会进行轮询。 在灵活间隔之外的时间段,将使用默认的update间隔。

请注意,如果灵活间隔等于周期长度,监控项将仅被检查一次。 如果灵活间隔大于周期,监控项可能被检查一次或根本不检查(因此不建议使用此类配置)。 如果灵活间隔小于周期,监控项将被检查至少一次。

如果灵活间隔设置为'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检查监控项。注意这曾被用作计划检查的变通方案,建议对此类检查使用调度间隔。

调度间隔

调度间隔用于在特定时间检查监控项. 灵活间隔旨在重新定义默认的监控项update间隔,而调度间隔则用于指定独立的检查计划,这些计划会并行执行.

调度间隔定义为: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,表示匹配定义范围内的所有值.

虽然过滤器定义是可选的,但必须至少使用一个过滤器. 过滤器必须定义范围或<步长>值.

空过滤器在没有定义低级过滤器时匹配'0',否则匹配所有可能的值. 例如,如果省略小时过滤器,则仅匹配'0'小时(前提是分钟和秒过滤器也被省略),否则空小时过滤器将匹配所有小时值.

各过滤器前缀的有效<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-31h/02是有效间隔,但md01-031wd01-07无效.

在Zabbix前端中,多个调度间隔需分行输入. 在ZabbixAPI中,它们会被连接成单个string,以分号;作为分隔符.

如果一个时间匹配多个间隔,则只执行一次. 例如,wd1h9;h9只会在周一上午9点执行一次.

示例:

间隔 执行时间
m0-59 每分钟
h9-17/2 从9:00开始每2小时(9:00,11:00...)
m0,30 or m/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
对齐 proxies 和 agent 的时区

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

因此,当对由Zabbix proxy或agent主动监控项监控的监控项应用调度间隔时,建议将相应proxies或agent的时区设置为与Zabbix server相同,否则queue可能会错误地报告监控项延迟。

Zabbix proxy或agent的时区可通过在systemd单元file中设置环境变量TZ来实现:

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