7 单位符号

概述

处理诸如 86400、104857600 或 1000000 这样的大数值可能比较困难,也容易导致错误。 为简化配置并提高可读性,Zabbix 支持单位符号(后缀),其作用是作为数值乘数。

不带后缀的触发器表达式:

last(/host/system.uptime)<86400
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

后缀还可以简化其他实体(如监控项、部件等)的配置,并帮助以人类可读的格式显示监控项值。

如需确认某个实体的配置字段是否支持后缀,请始终查看正在配置的相应实体页面。

时间后缀

Zabbix 前端在实体配置中支持以下时间后缀:
s - 秒 (使用时,其作用与原始值相同)
m - 分钟;
h - 小时;
d - 天;
w - 周;
M - 月 (仅限 趋势函数
y - 年 (仅限 趋势函数

时间后缀仅支持整数。 例如,支持 1h,但不支持 1,5h 或 1.5h;请改用 90m。

内存大小后缀

Zabbix 支持以下内存大小后缀:
K - 千字节
M - 兆字节
G - 千兆字节
T - 太字节

监控项值后缀

后缀也可用于以人类可读的格式显示数值型监控项值。

要启用此功能,请在配置监控项时,在 Units 字段中使用以下后缀之一:
B - 字节;
Bps - 每秒字节数;
s - 秒,最多显示三个最大的非零时间单位;
uptime - 以 hh:mm:ss 或 N days, hh:mm:ss 格式显示的已运行时间;
unixtime - Unix 时间戳,格式为 yyyy.mm.dd hh:mm:ss。

这些后缀在解释和显示时还适用以下附加规则:

  • 对于 B 和 Bps,Zabbix 使用二进制换算(1K = 1024B),遵循 JEDEC 标准。
  • 对于其他单位(如 Hz、W 等),Zabbix 使用十进制换算(1K = 1000)。
  • 对于 s(秒):
    • 格式包含 yyy mmm ddd hhh mmm sss ms;仅显示最多三个最大的非零时间单位(例如,1M 10d 4h)。
    • 如果某个单位为零且位于两个非零单位之间,则会被省略(例如,显示 10d 56m,而不是 10d 0h 56m)。

当使用 Units 时,以下倍率后缀会自动应用于监控项值:
K, M, G, T - 千、兆、吉、太;
P, E, Z, Y - 拍、艾、泽、尧 (这些仅在前端中应用)。

要防止单位转换,请使用 ! 前缀(例如,!B 或 !s)。

以下示例展示了接收到的监控项值如何根据指定单位进行转换:

1 B → 1 B
1024 B → 1 KB
1536 B → 1.5 KB
881764 B → 881.76 KB
881764 !B → 881764 B

0.0000155 s → 0.016ms
3470400 s → 1M 10d 4h
2606400 s → 1M 4h
2592000 s → 1M
2592001 s → 1M
2592001 !s → 2592001 s

17764 uptime → 04:56:04
86400 uptime → 1 day, 00:00:00
881764 uptime → 10 days, 04:56:04
32417764 uptime → 375 days, 04:56:04
32417764 !uptime → 32417764 uptime

881764 unixtime → 1970-01-11 04:56:04 AM

17764 Hz → 17.76 KHz
86400 Hz → 86.4 KHz
881764 Hz → 881.76 KHz
32417764 Hz → 32.42 MHz

0 ! → 0
0 !! → 0 !

在 Zabbix 4.0 之前,存在一个硬编码的单位停用列表,包含 msrpmRPM%。 该停用列表现已弃用,因此,防止转换此类单位的正确方式是使用 !ms!rpm!RPM!%