我想获得一个月主机的平均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/