我想获得一个月主机的平均CPU使用率/最大值(每个内核平均1分钟)。我可以在Zabbix网络gui CPU load图中得到它。

我检查了pyzabbix示例和zabbix api文档,但我仍然不知道如何从from_time-till_time获取平均/最大CPU使用率。

例如,当我打电话时:

history = zapi.history.get(itemids=[item_id],
        time_from=time_from,
        time_till=time_till,
        output='extend',
        limit='5000',
        history=0,
    )


从使用时间的范围来看,每1分钟我会得到许多CPU使用率值->我必须使用该数据来计算最小/平均/最大?

Zabbix如何在图形中生成此类信息?每次我们生成图形视图时,它都会进行这样的计算吗?

谢谢

最佳答案

是的,每当在Zabbix中生成图形时,除绘制图形外,它还会获取指定时间段内的所有历史数据并计算最小值,平均值和最大值。

使用Zabbix前端本身,绘制较长时间的图形的重量较轻,因为在这种情况下,它会从趋势表中获取数据。例如:

mysql> describe trends;
+-----------+---------------------+------+-----+---------+-------+
| Field     | Type                | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| itemid    | bigint(20) unsigned | NO   | PRI | NULL    |       |
| clock     | int(11)             | NO   | PRI | 0       |       |
| num       | int(11)             | NO   |     | 0       |       |
| value_min | double(16,4)        | NO   |     | 0.0000  |       |
| value_avg | double(16,4)        | NO   |     | 0.0000  |       |
| value_max | double(16,4)        | NO   |     | 0.0000  |       |
+-----------+---------------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


该表中的每一行对应一个小时,并且此小时中存储了最小值,平均值和最大值。因此,当绘制较长时间的图形时,前端会从趋势中获取数据,因此要处理的数据要少得多。

不幸的是,似乎无法通过Zabbix API获得趋势数据,但是ZBXNEXT-1193中要求使用此功能。

关于python - Zabbix 2.2 API获取处理器负载(平均1分钟)min/max值from_time,till_time,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25174213/

10-10 23:22