计算项允许基于某些现有项的值创建计算。例如,您可能想要计算某些项值的每小时平均值或计算一组项的总值。这就是计算项的用途。
计算可能同时使用:
计算项是创建虚拟数据源的一种方式。所有计算都仅由 Zabbix 服务器完成。根据使用的算术表达式定期计算值。
结果数据与任何其他项一样存储在 Zabbix 数据库中;历史值和趋势值均已存储,并且可以生成图表。
如果计算结果为浮点值,则如果计算项信息类型为 数字(无符号),则它将被修剪为整数。
此外,如果缓存中没有最近的数据,并且函数中没有定义的查询期,则 Zabbix 将默认回溯到过去一周的时间以查询数据库的历史值。
计算项与触发器 表达式 共享其语法。计算项中允许与字符串进行比较。计算项可能被 宏或其他实体引用,就像任何其他项类型一样。
要使用计算项,请选择项类型计算。
键 是一个唯一的监控项标识符(按主机)。您可以使用支持的符号创建任何 键名。
计算定义应在公式字段中输入。公式与键之间 没有连接。键参数 在公式中没有任何方式使用。
简单公式的语法是:
其中:
function | supported functions之一:last, min, max, avg, count, 等 |
host | 用于计算的监控项的主机。 可以省略当前主机(即如在 function(//key,parameter,...) )。 |
key | 用于计算的监控项的键。 |
parameter(s) | 如果需要,函数的参数。 支持Time suffixes和memory size suffixes。 |
在公式中使用的User macros 将被扩展,如果用于引用函数 参数,监控项过滤参数,或一个常量。用户宏将 在引用函数、主机名、监控项键、 监控项键参数或运算符时,不会被扩展。
更复杂的公式可能使用函数、运算符和 括号的组合。您可以使用所有在触发器表达式中支持的函数和operators。逻辑和运算符 优先级完全相同。
与触发器表达式不同,Zabbix根据 监控项更新间隔处理计算的监控项,而不是在接收到新值时。
所有在计算 监控项公式中引用的历史函数的监控项必须存在并收集数据。此外,如果您更改了 监控项键的引用监控项,您必须手动更新任何使用该键的公式。
在几种情况下,计算的监控项可能变得不受支持:
计算 '/'上可用磁盘空间的百分比。
使用函数 last:
Zabbix 将获取可用和总磁盘空间的最新值,并根据给定的公式计算百分比。
计算 Zabbix 处理的值的 10 分钟平均值。
使用函数 avg:
请注意,可计算监控项选取长时间段的数据会影响 Zabbix 服务器的性能。
计算 eth0 上的总带宽。
两个函数之和:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
计算入站流量的百分比
更为复杂的表达式:
另请参阅: 聚合计算示例