@进程管理工具 - Glances工具详细指南
文章目录
- Glances 工具
- Glances 简介
- 主要功能特性
- 安装指南
- Linux 系统安装
- 通过 pip 安装(推荐)
- 通过系统包管理器安装
- Windows 系统安装
- macOS 系统安装
- Docker 方式运行
- 基本使用
- 启动 Glances
- 界面概览
- 快捷键
- 高级功能
- Web 服务器模式
- RESTful API
- 客户端/服务器模式
- 导出监控数据
- 配置自定义
- 性能优化
- 常见问题解答
- 资源与参考
Glances 工具
Glances 简介
Glances 是一个跨平台的系统监控工具,使用 Python 编写,提供了一个简洁的 curses(基于文本)界面或通过 Web 界面展示系统的关键性能指标。它设计用于实时监控系统资源使用情况,包括 CPU、内存、磁盘 I/O、网络流量等。
Glances 的主要特点包括:
- 低资源消耗
- 适应终端尺寸的动态界面
- 客户端/服务器监控模式
- 可扩展的插件系统
- 支持多种数据导出格式
主要功能特性
-
全面的系统监控:
- CPU 使用率(每个核心)
- 内存和交换空间使用情况
- 磁盘 I/O 和文件系统使用
- 网络接口流量
- 运行中的进程列表
- 传感器温度监控
- 电池状态(笔记本电脑)
- 磁盘 SMART 状态
-
多种显示模式:
- 终端 curses 界面
- Web 界面
- RESTful JSON API
-
远程监控能力:
- 可以监控本地和远程系统
- 支持加密通信
-
告警系统:
- 可配置的阈值告警
- 视觉警告(颜色变化)
-
数据导出:
- CSV、JSON、InfluxDB、StatsD 等格式
- 支持时间序列数据库
安装指南
Linux 系统安装
通过 pip 安装(推荐)
# 安装 pip(如果尚未安装)
sudo apt install python3-pip # Debian/Ubuntu
sudo yum install python3-pip # CentOS/RHEL# 安装 Glances
pip3 install glances# 安装可选依赖(扩展功能)
pip3 install 'glances[all]'
通过系统包管理器安装
Debian/Ubuntu:
sudo apt install glances
RHEL/CentOS:
sudo yum install epel-release
sudo yum install glances
Fedora:
sudo dnf install glances
Arch Linux:
sudo pacman -S glances
Windows 系统安装
- 安装 Python (https://www.python.org/downloads/windows/)
- 打开命令提示符 (cmd) 并运行:
pip install glances
macOS 系统安装
使用 Homebrew:
brew install glances
或者使用 pip:
pip3 install glances
Docker 方式运行
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it nicolargo/glances:latest-full
基本使用
启动 Glances
最简单的方式是直接运行:
glances
常用启动参数:
-w
:启用 Web 服务器模式-B 0.0.0.0
:绑定到所有网络接口(配合 -w 使用)--port 61208
:指定 Web 服务器端口-t 2
:设置刷新间隔为 2 秒--disable-plugin docker
:禁用特定插件
界面概览
Glances 界面通常分为几个部分:
-
顶部区域:
- 系统信息(主机名、操作系统、运行时间)
- CPU 使用率(总体和每个核心)
- 内存和交换空间使用情况
-
中间区域:
- 磁盘 I/O 和文件系统使用
- 网络接口流量
- 传感器温度
-
底部区域:
- 进程列表(按 CPU 或内存排序)
- 警告和警报信息
快捷键
在 curses 界面中可以使用以下快捷键:
a
:自动排序进程c
:按 CPU% 排序进程m
:按 MEM% 排序进程p
:按进程名称排序i
:按 IO 速率排序d
:显示/隐藏磁盘 I/O 信息n
:显示/隐藏网络信息f
:显示/隐藏文件系统信息s
:显示/隐藏传感器信息w
:删除警告日志x
:删除警告和关键日志1
:全局 CPU 或每个 CPUh
:显示帮助q
:退出
高级功能
Web 服务器模式
启动 Web 服务器:
glances -w
默认访问地址:http://localhost:61208
指定 IP 和端口:
glances -w -B 0.0.0.0 --port 8080
RESTful API
Glances 提供了 RESTful API,可以通过以下方式访问:
curl http://localhost:61208/api/3/mem/free
API 文档可通过以下 URL 访问:
http://localhost:61208/api/doc
客户端/服务器模式
服务器端运行:
glances -s
客户端连接:
glances -c <服务器IP>
使用密码保护(服务器端):
glances -s --password
导出监控数据
Glances 支持多种数据导出方式:
- CSV 导出:
glances --export csv --export-csv-file /path/to/file.csv
- InfluxDB:
glances --export influxdb
- StatsD:
glances --export statsd
- Elasticsearch:
glances --export elasticsearch
配置自定义
Glances 的配置文件通常位于:
- Linux/macOS:
~/.config/glances/glances.conf
- Windows:
%APPDATA%\glances\glances.conf
示例配置:
[global]
refresh=2
theme=white
disable_plugin=docker,raid
[CPU]
user_careful=50
user_warning=70
user_critical=90
## 插件系统Glances 支持多种插件来扩展功能:1. **内置插件**:- docker:监控 Docker 容器- gpu:监控 GPU 使用情况- raid:监控 RAID 状态- smart:监控磁盘 SMART 状态2. **启用/禁用插件**:
```bash
glances --enable-plugin docker
glances --disable-plugin network
- 开发自定义插件:
可以在~/.config/glances/plugins
中添加自定义插件
性能优化
- 调整刷新间隔:
glances -t 5 # 5秒刷新一次
- 禁用不需要的插件:
glances --disable-plugin docker,smart
- 使用轻量级模式:
glances --disable-webui --disable-api
- 优化进程列表:
glances --process-short-name # 只显示进程短名称
常见问题解答
Q: Glances 占用多少系统资源?
A: Glances 设计为轻量级,通常占用 1-3% CPU 和 20-50MB 内存。
Q: 如何监控远程服务器?
A: 在服务器上运行 glances -s
,然后在客户端运行 glances -c <服务器IP>
。
Q: Web 界面无法访问?
A: 确保使用 -B 0.0.0.0
绑定到所有接口,并检查防火墙设置。
Q: 如何添加自定义告警阈值?
A: 在配置文件的相应部分添加,例如:
[CPU]
user_careful=50
user_warning=70
user_critical=90
Q: Glances 与 htop 有何不同?
A: Glances 提供更全面的系统概览,支持远程监控和Web界面,而htop更专注于进程管理。
资源与参考
-
官方资源:
- 官网: https://nicolargo.github.io/glances/
- GitHub: https://github.com/nicolargo/glances
- 文档: https://glances.readthedocs.io/
-
相关工具:
- htop: 交互式进程查看器
- nmon: 另一种系统监控工具
- Netdata: 更全面的监控解决方案
-
学习资源:
- Glances 视频教程: https://www.youtube.com/results?search_query=glances+tutorial
- Glances 博客文章: https://www.tecmint.com/glances-an-advanced-real-time-system-monitoring-tool-for-linux/
-
社区支持:
- GitHub Issues: https://github.com/nicolargo/glances/issues
- Stack Overflow: https://stackoverflow.com/questions/tagged/glances
Glances 是一个功能强大且灵活的工具,适合从简单系统检查到复杂分布式监控的各种场景。