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