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] # 刷新频率秒 refresh2 [webserver] # 是否启用Web服务 enabletrue # 监听地址 bind0.0.0.0 # 监听端口 port61208 # 是否允许远程访问 allow_origin*4. 安全加固与外部访问4.1 防火墙配置为了安全访问建议配置防火墙只开放必要端口# Ubuntu使用ufw sudo ufw allow 61208/tcp sudo ufw enable # CentOS使用firewalld sudo firewall-cmd --permanent --add-port61208/tcp sudo firewall-cmd --reload4.2 密码保护Glances支持简单的HTTP认证在配置文件中添加[webserver] authtrue passwordyour_strong_password重启服务后访问时需要输入密码用户名为glances。4.3 反向代理配置对于生产环境建议通过Nginx等Web服务器做反向代理并启用HTTPSserver { 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] enabletrue5.2 数据导出Glances支持将监控数据导出到多种目标# 导出到CSV文件 glances --export csv --export-csv-file /tmp/glances.csv # 导出到InfluxDB需要先安装influxdb客户端 pip3 install influxdb glances --export influxdb5.3 报警功能通过配置阈值可以在资源使用过高时触发报警[alerts] # CPU使用率超过90%时报警 cpu90% # 内存使用超过80%时报警 mem80%6. 常见问题排查6.1 Web界面无法访问检查Glances是否正在运行ps aux | grep glances检查端口监听状态netstat -tulnp | grep 61208检查防火墙设置sudo ufw status或sudo firewall-cmd --list-ports6.2 监控数据不准确确保已安装必要依赖sudo apt install lm-sensors hddtemp检查是否有足够权限glances --debug查看错误日志尝试更新到最新版本pip3 install --upgrade glances6.3 高CPU占用虽然Glances本身很轻量但在某些情况下可能出现高CPU占用降低刷新频率glances -t 5每5秒刷新一次禁用不需要的插件在配置文件中设置disable_pluginraid,folders7. 系统服务化配置为了让Glances在后台持续运行可以将其配置为系统服务7.1 创建systemd服务创建/etc/systemd/system/glances.service文件[Unit] DescriptionGlances Monitoring Tool Afternetwork.target [Service] Userglances ExecStart/usr/local/bin/glances -w Restartalways RestartSec30 [Install] WantedBymulti-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_size10限制对于大型部署可以考虑使用Glances的客户端-服务器模式将多台服务器的数据集中展示在一处。