在表达式中直接使用诸如'86400'这样的大数字来表示一天的总秒数,既难以记忆又容易出错。为此,Zabbix允许通过特定的单位符号(或后缀)来简化触发器表达式和监控项键值的配置。
例如,无需输入'86400'秒,只需输入'1d'即可。这些后缀本质上充当了乘数的作用。
时间单位可使用:
时间后缀仅支持integer数字(例如'1h'有效,但'1,5h'或'1.5h'无效;应使用'90m'替代)
支持时间后缀的场景包括:
ha_set_failover_delay=delay
运行时控制选项支持内存大小后缀的场合包括:
触发器 expression 常量 和函数参数
constants of [calculated
item](/manual/config/items/itemtypes/calculated) formulas
对于memory大小,您可以使用:
后缀也可用于以人类可读格式显示数值监控项值
要启用此功能,在配置时,于单位字段中使用以下后缀之一:
这些后缀的解析和显示遵循以下附加规则:
对于B和Bps,Zabbix采用基数为2的转换(1K = 1024B),遵循JEDEC标准
对于其他单位(如Hz、W等),Zabbix采用基数为10的转换(1K = 1000)
对于s(秒):
当使用单位时,以下乘数后缀会自动应用于监控项值:
通过使用适当的后缀,您可以编写触发器表达式 更易于理解和维护,例如这些 表达式
last(/host/system.uptime)<86400s
avg(/host/system.cpu.load,600s)<10
last(/host/vm.memory.size[available])<20971520
可以更改为:
last(/host/system.uptime)<1d
avg(/host/system.cpu.load,10m)<10
last(/host/vm.memory.size[available])<20M
监控项值 也可以进行转换,例如:
1 B → 1 B
1024 B → 1 KB
1536 B → 1.5 KB
881764 B → 881.76 KB
0.0000155秒 → 0.016毫秒
3470400 s → 1M 10d 4h
2606400 s → 1M 4h
2592000 s → 1M
2592001 s → 1M
17764 运行时间 → 04:56:04
86400 uptime → 1 day, 00:00:00
881764 uptime → 10 days, 04:56:04
32417764 uptime → 375 days, 04:56:04
881764 时间戳 → 1970-01-11 04:56:04 上午
17764 Hz → 17.76 KHz 86400 Hz → 86.4 KHz 881764 Hz → 881.76 KHz 32417764 Hz → 32.42 MHz
默认情况下,为监控项指定单位会导致添加乘数前缀 例如,前端会将传入值'2048'与单位'B'显示为'2KB'(更多详情,请参阅配置中的单位章节)。
若要阻止单位转换,请使用!
前缀,例如 !B
。为了更好地理解带与不带感叹号时的转换差异,请参考以下数值与单位示例:
1024 !B → 1024 B
1024 B → 1 KB
61 !s → 61 s
61 s → 1m 1s
0 !uptime → 0 uptime
0 uptime → 00:00:00
0 !! → 0 !
0 ! → 0
在Zabbix 4.0之前,存在一个硬编码的单位停用列表 包含ms
、rpm
、RPM
、%
。该停用列表已被弃用,因此阻止此类单位转换的正确方式是 !ms
、!rpm
、!RPM
、!%
。