☰
Windows下部署Glances监控工具及外网访问方案
2026/10/27 6:03:58 网站建设 项目流程

1. 项目概述

Glances是一款跨平台的实时系统监控工具,采用Python编写,能够通过命令行界面直观展示CPU、内存、磁盘、网络等关键系统指标。相比传统任务管理器,它提供了更丰富的监控维度和更友好的可视化界面。在Windows环境下部署Glances并实现外部访问,可以让我们随时掌握系统运行状态,特别适合需要长期监控服务器性能的运维场景。

我最近在本地Windows Server上部署了这套监控方案,整个过程涉及到Python环境配置、防火墙设置、反向代理等多个技术环节。下面将详细分享从零开始部署到实现外网访问的全套解决方案,包含我在实际部署过程中踩过的坑和优化技巧。

2. 环境准备与安装

2.1 系统要求检查

首先确保你的Windows系统满足以下要求:

  • Windows 10/11或Windows Server 2016及以上版本
  • PowerShell 5.1或更新版本
  • 至少2GB可用内存
  • 管理员权限账户

提示:在Server Core版本上部署时,需要额外安装图形化组件才能使用Web界面。

2.2 Python环境配置

Glances基于Python开发,推荐使用Python 3.7+版本:

# 检查Python版本 python --version # 如果没有安装Python,从官网下载安装包时务必勾选"Add Python to PATH"

我建议使用虚拟环境来隔离依赖:

# 创建虚拟环境 python -m venv glances_env # 激活环境 .\glances_env\Scripts\activate

2.3 安装Glances核心组件

在激活的虚拟环境中执行:

pip install glances[all]

[all]参数会安装所有可选依赖,包括Web界面支持。安装完成后验证:

glances --version

常见安装问题解决:

  • 如果遇到"Unable to find vcvarsall.bat"错误,需要安装Visual C++ Build Tools
  • 权限问题可以尝试--user参数或使用管理员权限的PowerShell

3. 基础配置与优化

3.1 配置文件生成与修改

首次运行会自动生成配置文件:

glances --generate-config

配置文件通常位于%USERPROFILE%\.config\glances\glances.conf。关键配置项:

[global] # 设置监听所有网络接口 bind=0.0.0.0 # Web服务器端口 web_server_port=61208 # 允许远程连接 allow_remote_access=true

3.2 防火墙设置

在Windows防火墙中开放端口:

New-NetFirewallRule -DisplayName "Glances Web" -Direction Inbound -LocalPort 61208 -Protocol TCP -Action Allow

3.3 服务化部署(可选)

创建后台运行服务:

# 创建启动脚本start_glances.ps1 $script = @" cd $PSScriptRoot .\glances_env\Scripts\python.exe -m glances -w "@ $script | Out-File -FilePath start_glances.ps1 # 创建Windows服务 New-Service -Name "Glances" -BinaryPathName "powershell.exe -File $PSScriptRoot\start_glances.ps1" -DisplayName "Glances Monitor" -StartupType Automatic

4. 实现外部访问方案

4.1 直接暴露的风险与问题

虽然可以通过端口转发直接暴露Glances服务,但存在以下风险:

  • 默认没有身份验证
  • 使用明文HTTP协议
  • 可能暴露系统敏感信息

4.2 推荐方案:Nginx反向代理

我推荐使用Nginx作为反向代理,配置SSL和基础认证:

  1. 安装Nginx for Windows
  2. 修改nginx.conf添加配置:
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://localhost:61208; proxy_set_header Host $host; auth_basic "Restricted Access"; auth_basic_user_file /path/to/htpasswd; } }
  1. 创建密码文件:
htpasswd -c /path/to/htpasswd username

4.3 备选方案:SSH隧道

对于临时访问需求,可以使用SSH隧道:

ssh -L 61208:localhost:61208 user@windows_host

然后在本地浏览器访问http://localhost:61208

5. 高级功能扩展

5.1 数据持久化与可视化

配置Glances将数据输出到InfluxDB:

[export] enable_influxdb=true influxdb_host=localhost influxdb_port=8086 influxdb_user=glances influxdb_password=secret influxdb_db=glances

配合Grafana可以创建漂亮的监控看板。

5.2 告警设置

在配置文件中添加告警规则:

[alerts] # CPU使用率超过90%持续30秒告警 cpu=90,30 # 内存使用超过80%告警 mem=80

5.3 插件开发

Glances支持自定义插件开发。示例插件模板:

from glances.plugins.glances_plugin import GlancesPlugin class MyPlugin(GlancesPlugin): def __init__(self, args=None): super(MyPlugin, self).__init__(args=args) def update(self): return {"custom_metric": 42}

6. 常见问题排查

6.1 Web界面无法访问

检查步骤:

  1. 确认服务正在运行:Get-Process python
  2. 检查端口监听:netstat -ano | findstr 61208
  3. 验证防火墙规则:Get-NetFirewallRule -DisplayName "Glances*"

6.2 性能数据不准确

可能原因:

  • 系统兼容性问题,尝试更新psutil库:pip install -U psutil
  • 某些指标在Windows上需要额外权限

6.3 高CPU占用问题

优化建议:

  • 增加刷新间隔:glances -t 5(5秒刷新)
  • 禁用不需要的插件
  • 使用--disable-plugin参数关闭特定监控项

7. 安全最佳实践

  1. 必须修改默认端口
  2. 必须启用HTTPS加密
  3. 建议配置IP白名单限制:
location / { allow 192.168.1.0/24; deny all; # ...其他代理配置 }
  1. 定期更新Glances版本:pip install -U glances
  2. 监控日志文件:%USERPROFILE%\.config\glances\glances.log

8. 实际使用体验

经过一个月的生产环境使用,我发现这套方案有以下优势:

  • 资源占用极低(<50MB内存)
  • 数据刷新实时性好(1秒级延迟)
  • 插件系统扩展性强

需要改进的方面:

  • Windows下的磁盘IO统计不如Linux准确
  • 历史数据回溯功能较弱

我的优化配置方案是配合Telegraf+InfluxDB实现长期数据存储,用Grafana做可视化展示,这样既保留了Glances的轻量级特性,又弥补了它在历史数据分析方面的不足。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询