这是开始使用 Glances 系统监控工具的快速参考备忘单,可以帮助用户监视系统的各种性能指标
入门 功能特点 跨平台支持
Glances
支持多种操作系统,包括 Linux、Windows、macOS 和 FreeBSD。
多种输出方式
命令行界面(CLI)
:通过终端查看系统监控数据。
Web 界面
:通过浏览器访问并查看系统性能指标。
API 输出
:可以将数据通过 REST API 或者 MQTT 传输到其他系统或服务。
详细的系统监控
CPU
:实时显示 CPU 的使用率、每个核心的负载情况。
内存
:显示总内存、已用内存、缓存和交换分区的使用情况。
磁盘 I/O
:显示磁盘的读写速度和 I/O 操作数。
网络带宽
:显示网络接口的上传和下载速度。
文件系统
:显示各个挂载点的使用情况。
传感器
:显示系统温度、风扇速度等传感器数据(需要支持的硬件和驱动)。
扩展功能
插件系统
:支持通过插件扩展功能,可以自定义监控指标。
导出数据
:支持将监控数据导出为 CSV、JSON 等格式。
报警系统
:可以设置报警,当某些指标超过设定阈值时触发通知。
安装 通过 pip 安装
通过包管理器安装 Debian/Ubuntu :
1 sudo apt-get install glances
Fedora :
1 sudo dnf install glances
macOS (使用 Homebrew) :
配置文件 Glances 的配置文件位于 ~/.config/glances/glances.conf
。通过编辑这个文件,可以自定义 Glances 的显示和行为。
例子配置文件 1 2 3 4 5 6 7 8 9 10 [global] refresh =2 [cpu] enable =true [mem] enable =true [disk] enable =true [network] enable =true
Web 访问 1 2 3 4 glances -w curl http://<your_ip>:61208/api/3/all
使用 Docker 部署 Glances :
1 2 3 4 5 6 docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /glances/conf:/glances/conf:ro \ -v /glances/data:/glances/data:rw \ -p 61208-61209:61208-61209 \ --name glances nicolargo/glances
使用方法 启动命令行界面
启动 Web 界面
启动后,通过浏览器访问 http://<your_ip>:61208
查看系统监控数据。
启动以特定模式输出 1 2 glances --export json glances --export csv
命令行选项 命令行选项
:-
:-
-h
, --help
显示此帮助信息并退出
-V
, --version
显示程序版本号并退出
-d
, --debug
启用调试模式
-C CONF_FILE
, --config CONF_FILE
配置文件的路径
--modules-list
显示模块(插件和导出)列表并退出
--stdout PLUGINS_STATS
显示插件统计信息到标准输出(用逗号分隔的插件/插件属性列表)
禁用启用选项
:-
:-
--disable-plugin PLUGIN
禁用插件(用逗号分隔的列表)
--enable-plugin PLUGIN
启用插件(用逗号分隔的列表)
--disable-process
禁用进程模块(减少Glances的CPU消耗)
--disable-webui
禁用Web界面(仅响应RESTful API)
--enable-history
启用历史模式
--disable-bold
禁用终端中的粗体模式
--disable-bg
禁用终端中的背景颜色
--enable-process-extended
启用顶级进程的扩展统计
--disable-check-update
禁用在线Glances版本检查
--disable-autodiscover
禁用自动发现功能
--light
, --enable-light
Curses UI的轻量模式(仅启用顶部菜单)
-q
, --quiet
不显示 curses 界面
SNMP
:-
:-
--snmp-community SNMP_COMMUNITY
SNMP社区
--snmp-port SNMP_PORT
SNMP端口
--snmp-version SNMP_VERSION
SNMP版本(1, 2c 或 3)
--snmp-user SNMP_USER
SNMP用户名(仅适用于SNMPv3)
--snmp-auth SNMP_AUTH
SNMP认证密钥(仅适用于SNMPv3)
--snmp-force
强制SNMP模式
命令行选项
:-
:-
--export EXPORT
启用导出模块(用逗号分隔的列表)
--export-csv-file EXPORT_CSV_FILE
CSV导出文件路径
--export-json-file EXPORT_JSON_FILE
JSON导出文件路径
命令行选项
:-
:-
-0
, --disable-irix
任务的CPU使用率将按CPU总数进行划分
-1
, --percpu
以每个CPU模式启动Glances
-2
, --disable-left-sidebar
禁用网络、磁盘I/O、文件系统和传感器模块
-3
, --disable-quicklook
禁用快速查看模块
-4
, --full-quicklook
仅启用快速查看和负载模块
-5
, --disable-top
禁用顶部菜单(快速查看、CPU、内存、交换区和负载)
-6
, --meangpu
以平均GPU模式启动Glances
命令行选项
:-
:-
-c CLIENT
, --client CLIENT
通过IPv4/IPv6地址、主机名或主机名:端口连接到Glances服务器
-s
, --server
以服务器模式运行Glances
--browser
启动客户端浏览器(服务器列表)
-p PORT
, --port PORT
定义客户端/服务器TCP端口 [默认:61209]
-B BIND_ADDRESS
, --bind BIND_ADDRESS
将服务器绑定到给定的IPv4/IPv6地址或主机名
--username
定义客户端/服务器用户名
--password
定义客户端/服务器密码
命令行选项
:-
:-
-t TIME
, --time TIME
设置刷新时间(秒)[默认:3秒]
-w
, --webserver
以Web服务器模式运行Glances(需要bottle库)
--cached-time CACHED_TIME
设置服务器缓存时间 [默认:1秒]
--open-web-browser
尝试在默认的 Web 浏览器中打开Web界面
-f PROCESS_FILTER
, --process-filter PROCESS_FILTER
设置进程过滤模式(正则表达式)
--process-short-name
强制使用进程名称的短名称
--hide-kernel-threads
在进程列表中隐藏内核线程(Windows不可用)
命令行选项
:-
:-
-b
, --byte
以每秒字节数显示网络速率
--diskio-show-ramfs
在 DiskIO 插件中显示RAM文件系统
--diskio-iops
在 DiskIO 插件中显示每秒I/O操作数
--fahrenheit
以华氏度显示温度(默认是摄氏度)
--fs-free-space
显示文件系统的可用空间而非已用空间
--theme-white
优化显示颜色以适应白色背景
键盘快捷键 快捷键
快捷键
功能
ENTER
设置进程过滤器
a
自动排序进程列表
A
启用/禁用应用程序监控进程
b
在网络I/O中切换比特/秒或字节/秒
B
查看每秒磁盘I/O计数器
c
按CPU使用率排序进程
C
启用/禁用云统计
d
显示/隐藏磁盘I/O统计
D
启用/禁用Docker统计
e
启用/禁用顶级扩展统计
E
清除当前进程过滤器
f
显示/隐藏文件系统和文件夹监控统计
F
在文件系统使用和可用空间之间切换
g
为当前历史生成图表
G
启用/禁用GPU统计
h
显示/隐藏帮助屏幕
i
按I/O速率排序进程
I
显示/隐藏IP模块
+
增加选定进程的nice值/降低优先级(需要权限)- 仅在独立模式下
-
减少选定进程的nice值/提高优先级(需要权限)- 仅在独立模式下
k
终止选定进程(需要权限)- 仅在独立模式下
快捷键
快捷键
功能
K
显示/隐藏TCP连接
l
显示/隐藏日志消息
m
按内存使用率排序进程
M
重置进程摘要的最小/最大值
n
显示/隐藏网络统计
N
显示/隐藏当前时间
p
按名称排序进程
P
启用/禁用端口统计
q|ESC|CTRL-C
退出当前Glances会话
Q
显示/隐藏IRQ模块
r
重置历史记录
R
显示/隐藏RAID插件
s
显示/隐藏传感器统计
S
启用/禁用微小曲线图
t
按CPU时间排序进程(TIME+)
T
以组合方式查看网络I/O
u
按用户排序进程
U
查看累积网络I/O
w
删除已完成的警告日志消息
W
显示/隐藏Wifi模块
x
删除已完成的警告和严重日志消息
z
显示/隐藏进程统计
快捷键
快捷键
功能
0
启用/禁用Irix/Solaris模式。任务的CPU使用率将按CPU总数进行划分
1
在全局CPU和每个CPU统计之间切换
2
启用/禁用左侧边栏
3
启用/禁用快速查看模块
4
启用/禁用除快速查看和负载模块外的所有模块
5
启用/禁用顶部菜单(快速查看、CPU、内存、交换区和负载)
6
启用/禁用平均GPU模式
9
在黑白主题之间切换UI主题
/
在进程命令行或命令名称之间切换
F5
刷新curses用户界面的统计数据
LEFT
向左导航进程排序
RIGHT
向右导航进程排序
UP
在进程列表中向上
DOWN
在进程列表中向下。在Glances客户端浏览器中(通过--browser
命令行参数访问):
ENTER
运行选定的服务器
UP
在服务器列表中向上
DOWN
在服务器列表中向下
q|ESC
退出Glances
配置 位置 您可以将自己的 glances.conf
文件放在以下位置:
:–
–
–
Linux
, SunOS
~/.config/glances/, /etc/glances/, /usr/share/docs/glances/
*BSD
~/.config/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/
macOS
~/Library/Application Support/glances/, /usr/local/etc/glances/, /usr/share/docs/glances/
Windows
%APPDATA%\glances\glances.conf
在 Windows XP 上,%APPDATA% 为:C:\Documents and Settings\<USERNAME>\Application Data
在 Windows Vista 及更高版本上:C:\Users\<用户名>\AppData\Roaming
语法 1 2 3 4 5 6 7 8 9 10 [global] refresh =2 check_update =false history_size =28800
CPU 插件的示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [cpu] disable =False refresh =3 user_careful =50 user_warning =70 user_critical =90 iowait_careful =50 iowait_warning =70 iowait_critical =90 system_careful =50 system_warning =70 system_critical =90 steal_careful =50 steal_warning =70 steal_critical =90
InfluxDB 导出模块 1 2 3 4 5 6 7 8 9 10 [influxdb] host =localhostport =8086 user =rootpassword =rootdb =glancesprefix =localhost
Nginx AMP 1 2 3 4 5 6 7 8 9 [amp_nginx] enable =true regex =\/usr\/sbin\/nginxrefresh =60 one_line =false status_url =http://localhost/nginx_status
导出统计服务 CSV 1 2 3 $ glances --export csv \ --export-csv-file /tmp/glances.csv \ --quiet
可以将统计数据导出到 CSV 文件
JSON 1 2 $ glances --export json \ --export-json-file /tmp/glances.json
可以将统计信息导出到 JSON 文件
Cassandra 您可以将统计数据导出到 Cassandra 或 Scylla 服务器
1 2 3 4 5 6 7 [cassandra] host =localhostport =9042 protocol_version =3 keyspace =glancesreplication_factor =2 table =localhost
并运行 Glances:
1 $ glances --export cassandra
数据模型如下:
1 CREATE TABLE < table > (plugin text, time timeuuid, stat map< text,float > , PRIMARY KEY (plugin, time ))
Graph 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [graph] path =/tmpgenerate_every =60 width =800 height =600 style =DarkStyle
并运行 Glances:
1 2 $ glances --export graph \ --export-graph-path /tmp
CouchDB 您可以将统计数据导出到 CouchDB 服务器
1 2 3 4 5 6 [mongodb] host =localhostport =27017 db =glancesuser =rootpassword =example
并运行 Glances:
1 $ glances --export mongodb
InfluxDB 您可以将统计数据导出到 InfluxDB 服务器(时间序列服务器)
测量
字段
标签
cpu
user system iowait…
hostname
network
read_bytes write_bytes time_since_update…
hostname disk_name
diskio
rx tx time_since_update…
hostname interface_name
docker
cpu_percent memory_usage…
hostname name
gpu
proc mem temperature…
hostname gpu_id
InfluxDB (最高版本 1.7.x) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [influxdb] host =localhostport =8086 protocol =httpuser =rootpassword =rootdb =glances
并运行 Glances:
1 $ glances --export influxdb
InfluxDB v2(来自 InfluxDB v1.8.x/Flux 和 InfluxDB v2.x) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [influxdb2] host =localhostport =8086 protocol =httporg =nicolargobucket =glancestoken =EjFUTWe8U-MIseEAkaVIgVnej_TrUpDy==
并运行 Glances:
1 $ glances --export influxdb2
Elasticsearch 可以将统计数据导出到 Elasticsearch 服务器
1 2 3 4 [elasticsearch] host =localhostport =9200 index =glances
并运行 Glances:
1 $ glances --export elasticsearch
MQTT 您可以将统计信息导出到 MQTT
服务器
1 2 3 4 5 6 7 8 [mqtt] host =localhostport =883 tls =true user =glancespassword =glancestopic =glancestopic_structure =per-metric
并运行 Glances:
MongoDB 1 2 3 4 5 6 [couchdb] host =localhostport =user =rootpassword =exampledb =glances
并运行 Glances:
1 $ glances --export couchdb
OpenTSDB 1 2 3 4 5 [opentsdb] host =localhostport =4242 prefix =glancestags =foo:bar,spam:eggs
并运行 Glances:
1 $ glances --export opentsdb
Kafka 您可以将统计信息导出到 Kafka 服务器
1 2 3 4 5 6 7 8 9 [kafka] host =localhostport =9092 topic =glances
并运行 Glances:
1 $ glances --export kafka
内存插件的记录示例:
1 ConsumerRecord(topic=u'glances' , partition=0 , offset=1305 , timestamp=1490460592248 , timestamp_type=0 , key='mem' , value=u'{"available": 2094710784, "used": 5777428480, "cached": 2513543168, "mem_careful": 50.0, "percent": 73.4, "free": 2094710784, "mem_critical": 90.0, "inactive": 2361626624, "shared": 475504640, "history_size": 28800.0, "mem_warning": 70.0, "total": 7872139264, "active": 4834361344, "buffers": 160112640}' , checksum=214895201 , serialized_key_size=3 , serialized_value_size=303 )
使用 Kafka Glances 插件的 Python 代码示例:
1 2 3 4 5 6 from kafka import KafkaConsumerimport jsonconsumer = KafkaConsumer('glances' , value_deserializer=json.loads) for s in consumer: print (s)
Prometheus 1 2 3 4 5 [prometheus] host =localhostport =9091 prefix =glanceslabels =src:glances
并运行 Glances:
1 $ glances --export prometheus
RabbitMQ 1 2 3 4 5 6 7 [rabbitmq] host =localhostport =5672 user =glancespassword =glancesqueue =glances_queue
并运行 Glances:
1 $ glances --export rabbitmq
RESTful 1 2 3 4 5 6 7 [restful] host =localhostport =6789 protocol =httppath =/
URL语法
1 2 3 4 5 6 http://localhost:6789/ | | | | | | | path | | port | host protocol
并运行 Glances
1 $ glances --export restful
ZeroMQ 1 2 3 4 [zeromq] host =127.0 .0.1 port =5678 prefix =G
并运行 Glances
1 $ glances --export zeromq
以下是订阅 Glances 统计数据的简单 Python 客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import jsonimport zmqcontext = zmq.Context() subscriber = context.socket(zmq.SUB) subscriber.setsockopt(zmq.SUBSCRIBE, 'G' ) subscriber.connect("tcp://127.0.0.1:5678" ) while True : _, plugin, data_raw = subscriber.recv_multipart() data = json.loads(data_raw) print ('{} => {}' .format (plugin, data)) subscriber.close() context.term()
Riemann 1 2 3 [riemann] host =localhostport =5555
并运行 Glances
1 $ glances --export riemann
StatsD 1 2 3 4 [statsd] host =localhostport =8125 prefix =glances
并运行 Glances
1 $ glances --export statsd
另见