概述

    因此,计算监控项是创建虚拟数据源的一种方式。这些值将根据算术表达式定期计算。所有计算都由Zabbix服务器完成,与Zabbix代理或代理服务器执行的计算无关。

    生成的数据将存储在Zabbix数据库中,与其它任何监控项一样 - 这意味着存储历史和趋势值,以便快速生成图表。 计算的监控项可用于触发器表达式,由宏或其它实体引用,与任何其它监控项类型相同。

    要使用计算监控项,请选择监控项类型 Calculated

    可配置字段

    key是唯一的监控项标识符(每个主机)。你可以使用支持的符号创建任何Key名称。

    计算定义应在Formula字段中输入。公式和密钥之间几乎没有连接。Key参数不能以任何方式用于公式中。

    一个简单公式的正确语法是:

    当:

    从计算监控项公式引用的所有监控项都必须存在并且正在收集数据(除外)。另外,如果更改引用监控项的Key,则必须使用该Key手动更新任一公式。

    如果用于引用函数参数或常量,公式中的用户宏将被扩展。如果引用函数、主机名、监控项Key、监控项key参数或运算符,则用户宏将不会被扩展。

    更复杂的公式可以使用函数,运算符和括号的组合。你可以使用触发器表达式支持的所有功能和 。请注意,语法略有不同,但逻辑和运算符优先级完全相同。

    如果计算结果为浮点值,且如果计算的信息类型为Numeric(无符号),则该值将被修剪为整数。

    在几种情况下,计算监控项可能不受支持:

    用法示例

    示例 1

    计算'/'上可用磁盘空间的百分比。

    使用last功能:

    1. 100*last("vfs.fs.size[/,free]")/last("vfs.fs.size[/,total]")

    Zabbix将获取最新的空闲和总磁盘空间值,并根据给定的公式计算百分比。

    示例 2

    计算Zabbix处理的数值的10分钟平均值。

    使用avg功能:

    请注意,大量使用长时间计算的监控项可能会影响Zabbix服务器的性能。

    示例 3

    计算eth0上的总带宽。

    两个功能总和:

      示例 4

      计算入站流量的百分比。

      更复杂的表达式:

      示例 5

      记下双引号在引号键内如何转义:

      1. last("grpsum[\"video\",\"net.if.out[eth0,bytes]\",\"last\"]") / last("grpsum[\"video\",\"nginx_stat.sh[active]\",\"last\"]")