这是开始使用 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-lightCurses UI的轻量模式(仅启用顶部菜单) -q, --quiet不显示 curses 界面
SNMP :- :- --snmp-community SNMP_COMMUNITYSNMP社区 --snmp-port SNMP_PORTSNMP端口 --snmp-version SNMP_VERSIONSNMP版本(1, 2c 或 3) --snmp-user SNMP_USERSNMP用户名(仅适用于SNMPv3) --snmp-auth SNMP_AUTHSNMP认证密钥(仅适用于SNMPv3) --snmp-force强制SNMP模式
命令行选项 :- :- --export EXPORT启用导出模块(用逗号分隔的列表) --export-csv-file EXPORT_CSV_FILECSV导出文件路径 --export-json-file EXPORT_JSON_FILEJSON导出文件路径
命令行选项 :- :- -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
另见