【一、安装部署运行】
docker pull nicolargo/glances:latest-ful
#常规启动,启动后可以通过接口和界面访问
docker run -d --name glances --restart always -p 61208:61208 -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/host/root:ro --pid host nicolargo/glances:latest-full glances -w
#仅允许通过接口访问
docker run -d --name glances --restart always -p 61208:61208 -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/host/root:ro --pid host nicolargo/glances:latest-full glances -w --disable-webui
docker logs -f glances
显示以下信息代表正常
INFO: Started server process [8952]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:61208 (Press CTRL+C to quit)
【二、接口识别/列表】
如何查看可以调用的接口
docker exec -it glances /bin/sh
#进入容器后使用以下命令
glances --api-restful-doc
常见接口调用:
查看全部信息:http://X.X.X.X:61208/api/4/all
查看常见数据:http://X.X.X.X:61208/api/4/all/limits
【三、常见接口调用与字段解析】
{查看CPU信息}
http://X.X.X.X:61208/api/4/cpu
{
"total": 5.5,
"user": 4.4,
"nice": 0.0,
"system": 1.0,
"idle": 91.5,
"iowait": 3.0,
"irq": 0.0,
"steal": 0.0,
"guest": 3.9,
"ctx_switches": 84267,
"interrupts": 98513,
"soft_interrupts": 6363,
"syscalls": 0,
"cpucore": 64,
"time_since_update": 3.9991424083709717,
"ctx_switches_gauge": 217098744566,
"ctx_switches_rate_per_sec": 21071.0,
"interrupts_gauge": 250352638733,
"interrupts_rate_per_sec": 24633.0,
"soft_interrupts_gauge": 12115954109,
"soft_interrupts_rate_per_sec": 1591.0,
"syscalls_gauge": 0,
"syscalls_rate_per_sec": 0
}
字段名 中文含义 具体解释
total CPU 总使用率 所有非空闲状态的 CPU 资源占比,当前为 5.5%,代表 CPU 整体负载较低。
user 用户态使用率 CPU 执行用户应用程序(如浏览器、办公软件)的资源占比,当前为 4.4%。
nice 低优先级用户态使用率 CPU 执行 "nice 值调整后" 的低优先级用户进程的占比,当前 0% 表示无此类进程。
system 系统态使用率 CPU 执行操作系统内核任务(如进程调度、硬件驱动)的资源占比,当前为 1.0%。
idle 空闲率 CPU 无任务可执行的空闲状态占比,当前 91.5%,空闲率越高说明 CPU 越空闲。
iowait IO 等待率 CPU 等待磁盘 / 网络等 IO 设备响应的时间占比,当前 3.0%,过高可能表示 IO 设备卡顿。
irq 硬中断处理率 CPU 处理硬件中断(如键盘输入、磁盘 IO 请求)的时间占比,当前 0% 表示无硬中断。
steal 虚拟化抢占率 虚拟化环境中,CPU 被其他虚拟机 "抢占" 的时间占比,当前 0% 表示无抢占。
guest 虚拟机进程使用率 CPU 执行虚拟机(如 VMware、KVM)进程的时间占比,当前 3.9% 表示有虚拟机在运行。
ctx_switches 累计上下文切换次数 从系统启动到当前,CPU 在不同进程 / 线程间切换的总次数,当前为 84267 次。
interrupts 累计硬中断次数 从系统启动到当前,CPU 接收并处理的硬件中断总次数,当前为 98513 次。
soft_interrupts 累计软中断次数 从系统启动到当前,CPU 处理的软件中断(如网络数据包处理)总次数,当前 6363 次。
syscalls 累计系统调用次数 从系统启动到当前,用户进程向内核发起的系统调用总次数,当前 0 可能为统计延迟。
cpucore CPU 核心数 当前系统的 CPU 物理核心数(含超线程),当前为 64 核,核心数越多支持并发能力越强。
time_since_update 数据更新间隔时间 本次采集与上次采集的时间差,当前约 4 秒,代表数据每 4 秒刷新一次。
ctx_switches_gauge 上下文切换累计总量 更精确的上下文切换累计值(单位:次),当前为 217098744566 次,与ctx_switches可能因统计精度略有差异。
ctx_switches_rate_per_sec 上下文切换速率 每秒 CPU 切换进程 / 线程的次数,当前 21071 次 / 秒,过高可能表示进程过多导致频繁切换。
interrupts_gauge 硬中断累计总量 更精确的硬中断累计值(单位:次),当前为 250352638733 次。
interrupts_rate_per_sec 硬中断速率 每秒 CPU 处理的硬件中断次数,当前 24633 次 / 秒,需结合硬件设备判断是否正常。
soft_interrupts_gauge 软中断累计总量 更精确的软中断累计值(单位:次),当前为 12115954109 次。
soft_interrupts_rate_per_sec 软中断速率 每秒 CPU 处理的软件中断次数,当前 1591 次 / 秒,网络密集型应用此值会偏高。
syscalls_gauge 系统调用累计总量 更精确的系统调用累计值(单位:次),当前为 0,可能因采集机制未统计到。
syscalls_rate_per_sec 系统调用速率 每秒用户进程发起的系统调用次数,当前 0 次 / 秒,需结合实际应用判断是否正常。
{查看内存的信息}
http://X.X.X.X:61208/api/4/mem
{
"total": 271444738048,
"available": 20059586560,
"percent": 92.6,
"used": 251385151488,
"free": 20982136832,
"active": 203548852224,
"inactive": 42272423936,
"buffers": 949813248,
"cached": 36160274432,
"shared": 197394432
}
total 总内存容量 系统物理内存的总大小,包含所有可被系统使用的内存(不含硬件预留部分)。 约 271GB(271444738048 Byte ÷ 1024³),内存配置较高。
available 可用内存容量 系统当前可立即分配给新应用的内存,包含空闲内存 + 可回收的缓存 / 缓冲。 约 20GB(20059586560 Byte ÷ 1024³),当前可用内存较少。
percent 内存使用率 已使用内存占总内存的百分比,计算公式为 (1 - available/total) × 100%。 当前 92.6%,使用率偏高,需关注是否有内存泄漏或资源占用过高的进程。
used 已使用内存 已被应用、系统内核、缓存等占用的内存总量,不含完全空闲的内存。 约 251GB(251385151488 Byte ÷ 1024³),与total - free结果一致。
free 完全空闲内存 未被任何进程、缓存、缓冲占用的 "纯空闲" 内存,系统可直接分配给新进程。 约 20.9GB(20982136832 Byte ÷ 1024³),空闲内存量较低。
active 活跃内存 正在被进程积极使用的内存(如应用程序的代码、数据),系统不会轻易回收。 约 203.5GB(203548852224 Byte ÷ 1024³),占比高说明当前运行的应用对内存依赖强。
inactive 非活跃内存 曾被进程使用但当前未活跃的内存(如关闭的应用残留数据),系统可回收复用。 约 42.2GB(42272423936 Byte ÷ 1024³),存在一定可回收空间。
uffers 缓冲内存 用于存储磁盘 IO 的临时数据(如文件系统元数据、未写入磁盘的临时数据),可快速回收。 约 949MB(949813248 Byte ÷ 1024²),缓冲占用较低,磁盘 IO 压力小。
cached 页缓存内存 用于缓存已读取的文件内容(如应用程序、文档),下次读取可直接从内存获取,可回收。 约 36.1GB(36160274432 Byte ÷ 1024³),缓存占用较高,可提升文件读取速度。
shared 共享内存 多个进程可共同访问的内存区域(如共享库、进程间通信数据),避免内存重复存储。 约 197MB(197394432 Byte ÷ 1024²),共享内存占用低,进程间数据交互少。
{查看磁盘的信息}
{ "device_name": "/dev/sda", "fs_type": "ext4", "mnt_point": "/host/root/run/media/root/a019d8e4-8fcd-4060-8105-5d3eea71357f", "options": "rw,nosuid,nodev,relatime,errors=remount-ro", "size": 471495155712, "used": 114679808, "free": 447358500864, "percent": 0.0, "key": "mnt_point" }, { "device_name": "/dev/sdb", "fs_type": "xfs", "mnt_point": "/host/root/boot", "options": "rw,relatime,attr2,inode64,noquota", "size": 1063256064, "used": 536371200, "free": 526884864, "percent": 50.4, "key": "mnt_point" }
字段名 中文含义 具体解释 单位
device_name 设备名称 磁盘分区或存储设备的系统标识(如/dev/sda为第一块 SATA 硬盘,/dev/mapper为 LVM 逻辑卷)。 -
fs_type 文件系统类型 分区格式化时使用的文件系统格式(如xfs、ext4适合大容量存储,vfat用于兼容 Windows)。 -
mnt_point 挂载点 该分区在系统中的访问路径(如/host/root为根目录相关分区,/boot为启动分区)。 -
options 挂载参数 挂载时的配置选项,反映分区的读写权限和特性:
-
ro:只读模式(不可写入);
-
rw:读写模式(可写入);
-
relatime:相对时间戳记录(优化性能);
-
noquota:不启用磁盘配额。 -
size 总容量 该分区的总存储空间大小(包含已用和未用部分)。 字节(Byte)
used 已用空间 该分区中已被文件、目录占用的存储空间。 字节(Byte)
free 空闲空间 该分区中尚未使用的剩余存储空间(size - used)。 字节(Byte)
percent 使用率 已用空间占总容量的百分比(used/size × 100%),反映分区拥挤程度。 %
key 索引键 用于标识该对象的唯一索引方式,此处均为mnt_point(按挂载点区分)。
{查看磁盘信息}
http://X.X.X.X:61208/api/4/network
{ "bytes_sent": 44295, "bytes_recv": 1052, "speed": 10485760000, "key": "interface_name", "interface_name": "eth0", "alias": null, "bytes_all": 45347, "time_since_update": 2.6495862007141113, "bytes_recv_gauge": 1061573, "bytes_recv_rate_per_sec": 397.0, "bytes_sent_gauge": 52289229, "bytes_sent_rate_per_sec": 16717.0, "bytes_all_gauge": 53350802, "bytes_all_rate_per_sec": 17114.0 }, { "bytes_sent": 100, "bytes_recv": 100, "speed": 0, "key": "interface_name", "interface_name": "lo", "alias": null, "bytes_all": 200, "time_since_update": 2.6495862007141113, "bytes_recv_gauge": 28654, "bytes_recv_rate_per_sec": 37.0, "bytes_sent_gauge": 28654, "bytes_sent_rate_per_sec": 37.0, "bytes_all_gauge": 57308, "bytes_all_rate_per_sec": 75.0 }
字段名 中文含义 具体解释 单位
bytes_sent 发送字节数 本次采集周期内,接口发送的总数据量(不含历史累计)。 字节(Byte)
bytes_recv 接收字节数 本次采集周期内,接口接收的总数据量(不含历史累计)。 字节(Byte)
bytes_all 总字节数(收发合计) 本次采集周期内,接口发送 + 接收的总数据量(bytes_sent + bytes_recv)。 字节(Byte)
time_since_update 数据更新间隔时间 本次采集与上次采集的时间差,用于计算实时速率(如 2.65 秒)。 秒(s)
字段名 中文含义 具体解释
interface_name 接口名称 网络接口的系统标识:
-
eth0:通常为第一块物理以太网网卡;
-
lo:本地回环接口(用于系统内部通信)。
alias 接口别名 接口的自定义名称(如 "业务网卡"),当前为null表示未设置别名。
key 索引键 用于标识接口的唯一索引方式,此处为interface_name(按接口名区分)。
speed 接口速率上限 接口支持的最大传输速率(硬件理论值):
-
10485760000 字节 / 秒 ≈ 10Gbps(eth0为 10G 网卡);
-
0 表示无上限(lo为虚拟接口)。
字段名 中文含义 具体解释 单位
bytes_recv_gauge 累计接收字节数 从系统启动到当前,接口接收的总数据量(历史累计值)。 字节(Byte)
bytes_recv_rate_per_sec 接收速率 每秒接收的数据量(实时速度),由bytes_recv / time_since_update计算。 字节 / 秒(B/s)
bytes_sent_gauge 累计发送字节数 从系统启动到当前,接口发送的总数据量(历史累计值)。 字节(Byte)
bytes_sent_rate_per_sec 发送速率 每秒发送的数据量(实时速度),由bytes_sent / time_since_update计算。 字节 / 秒(B/s)
bytes_all_gauge 累计总字节数(收发合计) 从系统启动到当前,接口收发的总数据量(bytes_recv_gauge + bytes_sent_gauge)。 字节(Byte)
bytes_all_rate_per_sec 总速率(收发合计) 每秒收发的总数据量(bytes_recv_rate_per_sec + bytes_sent_rate_per_sec)。 字节 / 秒(B/s)
换算成Mbps的公式: bytes_all_rate_per_sec * 8 / 1000000