Glances:轻量级跨平台系统监控工具配置指南
1. 项目概述
Glances是一款开源的跨平台系统监控工具,它通过Python编写,能够以极低的系统资源消耗提供全面的系统状态监控。不同于传统的top或htop命令,Glances不仅展示CPU、内存、磁盘等基础指标,还能监控网络流量、传感器温度、进程状态等数十种系统参数,特别适合需要长期监控服务器性能的运维场景。
我在管理Linux服务器集群时,经常需要同时观察多台机器的实时状态。传统的SSH多窗口方式效率低下,而Glances提供的Web访问功能完美解决了这个问题。通过简单的配置,就能在任意浏览器中查看所有服务器的运行状态,这对分布式系统管理来说简直是革命性的改进。
2. 环境准备与安装
2.1 系统要求
Glances对系统要求极低,理论上任何能运行Python的Linux发行版都支持。但为了实现最佳性能,建议:
- 操作系统:Ubuntu 18.04+/CentOS 7+等主流发行版
- Python版本:3.6+
- 内存:至少100MB可用内存
- 磁盘空间:50MB以上
提示:虽然Glances本身很轻量,但如果要启用所有监控模块(如GPU、Docker等),需要确保系统已安装相应依赖。
2.2 安装方法
推荐使用pip进行安装,这是最快捷的方式:
# 安装pip(如未安装) sudo apt update && sudo apt install python3-pip -y # 安装Glances及其Web组件 pip3 install glances[web] --user安装完成后,可以通过以下命令验证:
glances -v如果看到版本号输出(如Glances v3.3.1),说明安装成功。
3. 基础配置与使用
3.1 启动Glances
最简单的启动方式是直接运行:
glances这会启动一个基于终端的交互式界面,按q退出。但我们需要的是能远程访问的Web服务,因此需要使用以下命令:
glances -w默认情况下,这会启动一个监听在0.0.0.0:61208的Web服务。在浏览器访问http://服务器IP:61208即可看到监控界面。
3.2 配置文件详解
Glances的配置文件通常位于~/.config/glances/glances.conf。如果不存在,可以手动创建:
mkdir -p ~/.config/glances glances --generate-config > ~/.config/glances/glances.conf几个关键配置项:
[global] # 刷新频率(秒) refresh=2 [webserver] # 是否启用Web服务 enable=true # 监听地址 bind=0.0.0.0 # 监听端口 port=61208 # 是否允许远程访问 allow_origin=*4. 安全加固与外部访问
4.1 防火墙配置
为了安全访问,建议配置防火墙只开放必要端口:
# Ubuntu使用ufw sudo ufw allow 61208/tcp sudo ufw enable # CentOS使用firewalld sudo firewall-cmd --permanent --add-port=61208/tcp sudo firewall-cmd --reload4.2 密码保护
Glances支持简单的HTTP认证,在配置文件中添加:
[webserver] auth=true password=your_strong_password重启服务后,访问时需要输入密码(用户名为glances)。
4.3 反向代理配置
对于生产环境,建议通过Nginx等Web服务器做反向代理,并启用HTTPS:
server { listen 443 ssl; server_name monitor.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:61208; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }5. 高级功能与插件
5.1 监控Docker容器
安装额外依赖后,Glances可以监控Docker容器状态:
pip3 install glances[docker] --user在配置文件中启用:
[docker] enable=true5.2 数据导出
Glances支持将监控数据导出到多种目标:
# 导出到CSV文件 glances --export csv --export-csv-file /tmp/glances.csv # 导出到InfluxDB(需要先安装influxdb客户端) pip3 install influxdb glances --export influxdb5.3 报警功能
通过配置阈值,可以在资源使用过高时触发报警:
[alerts] # CPU使用率超过90%时报警 cpu=90% # 内存使用超过80%时报警 mem=80%6. 常见问题排查
6.1 Web界面无法访问
- 检查Glances是否正在运行:
ps aux | grep glances - 检查端口监听状态:
netstat -tulnp | grep 61208 - 检查防火墙设置:
sudo ufw status或sudo firewall-cmd --list-ports
6.2 监控数据不准确
- 确保已安装必要依赖:
sudo apt install lm-sensors hddtemp - 检查是否有足够权限:
glances --debug查看错误日志 - 尝试更新到最新版本:
pip3 install --upgrade glances
6.3 高CPU占用
虽然Glances本身很轻量,但在某些情况下可能出现高CPU占用:
- 降低刷新频率:
glances -t 5(每5秒刷新一次) - 禁用不需要的插件:在配置文件中设置
disable_plugin=raid,folders
7. 系统服务化配置
为了让Glances在后台持续运行,可以将其配置为系统服务:
7.1 创建systemd服务
创建/etc/systemd/system/glances.service文件:
[Unit] Description=Glances Monitoring Tool After=network.target [Service] User=glances ExecStart=/usr/local/bin/glances -w Restart=always RestartSec=30 [Install] WantedBy=multi-user.target然后启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable glances sudo systemctl start glances7.2 日志管理
Glances的日志默认输出到syslog,可以通过journalctl查看:
journalctl -u glances -f8. 性能优化建议
经过长期使用,我总结出几个优化技巧:
- 调整采集间隔:默认2秒刷新对大多数场景过于频繁,建议设置为5-10秒
- 选择性启用插件:不需要的插件(如GPU监控)可以在配置文件中禁用
- 使用轻量级Web服务器:如果不需要Web界面,直接使用终端模式可节省资源
- 限制历史数据:Glances会保留部分历史数据,可通过
history_size=10限制
对于大型部署,可以考虑使用Glances的客户端-服务器模式,将多台服务器的数据集中展示在一处。
