一个计算型 监控项 允许基于一些已有 监控项 的值进行 create 计算。例如,你可能想要计算某个 监控项 值的小时平均值,或者计算一组 监控项 的总值。这就是计算型 监控项 的用途。
计算可以使用以下两种方式:
计算型 监控项 是创建虚拟数据源的一种方式。所有计算仅由 Zabbix server 完成。这些值会基于使用的算术表达式定期计算。
生成的数据将存储在 Zabbix 数据库中,与任何其他 监控项 一样;历史值和趋势值都会被存储,并且可以生成图表。
如果计算结果是一个 float 值,并且该计算型 监控项 的信息类型为数值(无符号),则结果将被截断为一个 integer。
此外,如果缓存中没有最近的数据,且函数中未定义查询时间段,则 Zabbix 默认会回溯至多一周的时间,以从数据库中 query 历史值。
计算型 监控项 与其触发器的 expressions 共享语法。在计算型 监控项 中允许与字符串进行比较。计算型 监控项 可以像任何其他 监控项 类型一样被宏或其他实体引用。
要使用计算型 监控项,请选择 监控项 类型为 Calculated(计算型)。
键是唯一的监控项标识符(每个主机)。您可以create任意 键名使用支持的符号。
计算公式定义应输入在Formula字段中。 公式与键之间无关联。键参数 在公式中未以任何方式使用。
简单公式的语法为:
其中:
function | supported functions之一:last、min、max、avg、count等 |
主机 | 用于计算的监控项的主机。 当前主机可省略(例如 function(//key,parameter,...) 中所示)。 |
key | 用于计算的监控项的键值。 |
参数 | 函数所需的参数(若需要)。 支持Time suffixes和memory大小后缀。 |
User macros 在公式中引用函数时将被展开 参数、监控项 过滤参数或常量。用户宏将被 如果引用的是函数、主机名或监控项键,则不会被展开 监控项 键参数或运算符。
一个更复杂的公式可能会结合使用函数、运算符和 括号内可使用触发器表达式支持的所有函数和运算符。逻辑与运算符 优先级完全相同。
与触发器表达式不同,Zabbix根据以下规则处理计算型监控项: 在监控项 update间隔期间,而非接收到新值时。
所有在计算中被历史函数引用的监控项 监控项公式必须存在且正在收集数据。此外,如果您更改 引用监控项的监控项键时,必须手动update所有公式 使用该密钥。
在以下几种情况下,计算型监控项可能变为不受支持状态:
计算根目录 '/' 上的可用磁盘空间百分比。
使用 last 函数:
Zabbix 将获取最新的可用磁盘空间和总磁盘空间值,并根据给定的公式计算百分比。
计算由Zabbix处理的值数量的10分钟平均值。
使用函数avg:
请注意,大量使用带有长时间周期的计算监控项可能会影响Zabbix server的性能。
计算 eth0 上的总带宽。
两个函数的和:
计算入站流量的百分比。
更复杂的表达式:
另见:使用示例