Glances项目API接口详解:系统监控数据获取指南
概述
Glances是一款功能强大的跨平台系统监控工具,其提供的RESTful/JSON API接口允许开发者以编程方式获取系统监控数据。本文将详细介绍Glances API v4的使用方法,帮助开发者快速掌握如何通过API获取各类系统监控指标。
API服务启动
启动Glances API服务非常简单,只需在命令行中执行:
glances -w --disable-webui
此命令会启动API服务但禁用Web界面。如果需要同时启用中央浏览器功能,可以使用:
glances -w --browser --disable-webui
API基础配置
默认API地址
默认的API根地址为:
http://localhost:61208/api/4
自定义配置选项
- 绑定地址和端口:通过
--bind
和--port
参数修改 - URL前缀:在配置文件中设置
url_prefix
选项
配置示例:
[outputs]
url_prefix = /glances/
配置后API地址将变为:
http://localhost:61208/glances/api/4
API文档访问
Glances内置了API文档,可通过以下地址访问:
http://localhost:61208/docs#/
WebUI刷新率调整
Web界面的默认刷新率为2秒,可通过URL参数调整:
http://localhost:61208/?refresh=5
核心API接口详解
1. 服务状态检查
检查API服务是否正常运行:
curl -I http://localhost:61208/api/4/status
正常响应应返回HTTP 200状态码。
2. 插件列表获取
获取所有可用监控插件的列表:
curl http://localhost:61208/api/4/pluginslist
返回结果包含CPU、内存、磁盘IO、网络等各类监控插件名称。
3. 告警信息获取
获取系统告警信息:
curl http://localhost:61208/api/4/alert
返回字段说明:
- state:告警状态(WARNING/CRITICAL)
- type:告警类型(CPU/LOAD/MEM等)
- max/avg/min:事件期间的最大/平均/最小值
- top:事件期间占用资源最多的3个进程
4. 告警清除操作
清除所有告警:
curl -H "Content-Type: application/json" -X POST http://localhost:61208/api/4/events/clear/all
仅清除警告级别告警:
curl -H "Content-Type: application/json" -X POST http://localhost:61208/api/4/events/clear/warning
关键监控指标API
1. CPU监控
获取CPU使用情况:
curl http://localhost:61208/api/4/cpu
关键指标:
- total:总CPU使用率
- user:用户空间CPU使用率
- system:内核空间CPU使用率
- idle:CPU空闲率
- iowait:I/O等待时间占比
获取特定指标(如总使用率):
curl http://localhost:61208/api/4/cpu/total
2. 内存监控
获取内存使用情况:
curl http://localhost:61208/api/4/mem
关键指标:
- total:总内存大小
- used:已用内存
- free:空闲内存
- percent:内存使用百分比
3. 磁盘IO监控
获取磁盘IO信息:
curl http://localhost:61208/api/4/diskio
关键指标:
- read_bytes/write_bytes:读写字节数
- read_count/write_count:读写操作次数
- disk_name:磁盘设备名称
4. 文件系统监控
获取文件系统使用情况:
curl http://localhost:61208/api/4/fs
关键指标:
- mnt_point:挂载点
- size/used/free:总大小/已用/空闲空间
- percent:使用百分比
5. 容器监控
获取容器运行状态(支持Docker和Podman):
curl http://localhost:61208/api/4/containers
关键指标:
- name:容器名称
- status:运行状态
- cpu_percent:CPU使用率
- memory_usage:内存使用量
- network_rx/tx:网络接收/发送速率
高级查询技巧
1. 按字段筛选
获取所有磁盘名称:
curl http://localhost:61208/api/4/diskio/disk_name
2. 精确匹配查询
查询特定磁盘(nvme0n1)的IO信息:
curl http://localhost:61208/api/4/diskio/disk_name/value/nvme0n1
最佳实践建议
- 合理设置刷新率:根据监控需求调整API调用频率,避免对系统造成过大负担
- 错误处理:检查API返回的状态码,确保数据获取成功
- 数据缓存:对不常变化的数据(如CPU核心数)可适当缓存
- 安全考虑:生产环境中应考虑添加认证机制保护API访问
通过Glances提供的丰富API接口,开发者可以轻松构建自定义监控系统或集成到现有监控平台中,实现灵活的系统监控解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考