Glances 服务器监控:一行命令搭建 Web 可视化面板

概述

你是否有过这种经历:SSH 连上服务器,想看看 CPU 和内存使用情况,结果 top 界面密密麻麻全是数字,看得眼花?

Glances 就是来解决这个问题的。它是一个跨平台的系统监控工具,既能用命令行显示,也能启动一个 Web 服务,让你在任何设备的浏览器里查看服务器状态。

相比 Netdata 的重型面板,Glances 更轻量;相比 top/htop,它多了 Web 界面和 API 接口。而且它能通过 BeautifulSoup 抓取其他服务器的数据,实现一台机器监控多台。

今天教你用 Docker 快速部署 Glances,5 分钟搞定。

准备工作

你需要这些:

  • 一台运行 Ubuntu/Debian 的 VPS(1GB 内存以上)
  • Docker 和 Docker Compose 已安装
  • 能访问外网(拉取镜像用)

如果还没装 Docker,跑一下:

curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker

确认 Docker 就绪:

docker --version
docker compose version

看到版本号就 OK。

步骤

第一步:创建项目目录

mkdir -p ~/glances && cd ~/glances

第二步:编写 docker-compose.yml

Glances 官方提供了 Docker 镜像,配置很简单:

version: "3.8"

services:
  glances:
    image: nicolargo/glances:latest-full
    container_name: glances
    restart: unless-stopped
    pid: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /tmp/glances:/tmp/glances
    environment:
      - GLANCES_OPT=-w
      - GLANCES_PASSWORD=your_password_here
      - TZ=Asia/Shanghai
    ports:
      - "61208:61208"
    network_mode: host

几个关键参数说明:

  • pid: host:让 Glances 能看到宿主机的所有进程
  • /var/run/docker.sock:挂载 Docker socket,可以监控容器状态
  • GLANCES_OPT=-w:启动 Web 模式
  • TZ=Asia/Shanghai:设置时区为北京时间

注意:把 your_password_here 换成你自己的密码,不然任何人都能连进来查看。

第三步:启动 Glances

docker compose up -d

等几秒,检查容器是否正常运行:

docker ps | grep glances

看到 Up 状态就说明成功了。

第四步:浏览器访问

打开浏览器,输入:

http://你的VPS_IP:61208

第一次登录需要输入用户名和密码。默认用户名是 admin,密码就是你刚才设置的。

登录后你会看到一个类似这样的界面:

  • 左上角:CPU、内存、磁盘使用率
  • 右上角:网络流量、负载
  • 中间:进程列表,按 CPU/内存排序
  • 底部:系统信息、传感器数据

颜色编码很直观:绿色正常,黄色警告,红色危险。

验证

部署完成后,跑几个检查确认一切正常:

# 1. 容器运行状态
docker ps | grep glances

# 2. 端口是否监听
ss -tlnp | grep 61208

# 3. API 接口测试(返回 JSON 格式的系统数据)
curl http://localhost:61208/api/3/cpu

# 4. Web 界面访问
# 浏览器打开 http://你的VPS_IP:61208

第 3 步会返回类似这样的 JSON:

{
  "percent": 12.5,
  "cpucore": 2,
  "cpuUser": 5.2,
  "cpuSystem": 3.1,
  ...
}

能看到数据就说明 API 也正常工作了。

进阶用法

监控 Docker 容器

因为挂载了 Docker socket,Glances 会自动识别容器。在 Web 界面点击 “Docker” 标签页,可以看到每个容器的 CPU、内存、网络使用情况。

作为客户端监控其他服务器

Glances 支持客户端 - 服务端模式。你可以在本地电脑运行:

docker run --rm -it nicolargo/glances:latest \
  -C http://你的VPS_IP:61208 \
  --client

这样本地终端就能实时看到远程服务器的监控数据,不需要 SSH。

配合 InfluxDB 存储历史数据

如果你想保存历史监控数据,可以加一个 InfluxDB 容器:

  influxdb:
    image: influxdb:1.8
    container_name: influxdb
    volumes:
      - ./influxdb:/var/lib/influxdb2
    environment:
      - INFLUXDB_DB=glances
      - INFLUXDB_ADMIN_USER=admin
      - INFLUXDB_ADMIN_PASSWORD=admin123

  glances:
    # ... 上面的配置
    depends_on:
      - influxdb
    environment:
      - GLANCES_OPT=-w --export-influxdb
      - INFLUXDB_HOST=influxdb
      - INFLUXDB_PORT=8086
      - INFLUXDB_USER=admin
      - INFLUXDB_PASS=admin123
      - INFLUXDB_DB=glances

这样每次访问 Glances 时,数据会自动写入 InfluxDB,之后可以用 Grafana 做长期趋势分析。

常见问题

访问 61208 端口超时?

检查防火墙是否开放了该端口:

sudo ufw allow 61208/tcp
sudo ufw status

如果是阿里云/腾讯云等云厂商,还要在安全组里放行 61208 端口。

Web 界面加载很慢?

可能是服务器配置太低。Glances 默认每秒刷新一次,对于 512MB 内存的 VPS 来说有点吃力。可以在 docker-compose.yml 里加个环境变量降低刷新频率:

environment:
  - GLANCES_OPT=-w --refresh 5

这样每 5 秒刷新一次,资源占用会低很多。

忘记密码怎么办?

重启容器,进入容器修改密码:

docker exec -it glances bash
echo "新密码" | glances-client --password
exit
docker restart glances

或者删掉配置文件重建:

docker rm -f glances
docker compose up -d

容器一直重启?

查看日志找原因:

docker logs glances --tail 50

常见原因是端口被占用。换另一个端口试试:

ports:
  - "61209:61208"

怎么升级 Glances?

cd ~/glances
docker compose pull
docker compose up -d

一行命令拉取最新版并重启。


Glances 适合那些想要快速看到服务器状态、又不想折腾复杂监控栈的人。装好 Docker 镜像,开浏览器就能用,比翻 top 舒服多了。

你的服务器上现在跑得怎么样?打开浏览器看一眼就知道了。

这篇文章对你有帮助吗?