看圖猜詩,你有任何想法都可以在評論區留言哦~
摘要
Glances
是一款基于Python
開發的跨平臺系統監控工具,集成了 CPU、內存、磁盤、網絡、進程等核心指標的實時監控能力,并支持命令行、Web界面、客戶端-服務器模式等多種使用場景。其輕量級、高可定制化及豐富的擴展功能(如數據導出、遠程監控、API調用)使其成為運維人員實現自定義監控自動化的關鍵。本文將結合實踐場景,從安裝配置到常用功能、生產案例,全面解析Glances
的核心應用。
文章目錄
- 一、基礎說明
- 1.1 Glances 核心功能
- 1.2 與同類工具對比(htop、top)
- 二、安裝與配置
- 2.1 安裝方法
- 2.2 依賴項管理
- 三、使用技巧
- 3.1 基礎監控與交互操作
- 3.2 Web 界面監控
- 3.3 數據導出與集成
- 四、生產實際案例
- 4.1 多服務器集群監控
- 4.2 容器化環境監控
- 五、常見問題處理
- 5.1 安裝依賴缺失
- 5.2 Web 界面無法訪問
- 5.3 客戶端連接超時
一、基礎說明
1.1 Glances 核心功能
- 實時監控:動態展示 CPU、內存、磁盤 I/O、網絡流量、進程資源占用等指標。
- 多模式支持:單機模式、客戶端-服務器模式、Web 界面模式。
- 數據導出:支持 CSV、JSON、InfluxDB、Prometheus 等格式導出。
- 交互式操作:通過快捷鍵對進程排序、篩選、顯示/隱藏模塊。
- 跨平臺兼容:支持 Linux、Windows、macOS 及 Docker 容器環境。
1.2 與同類工具對比(htop、top)
功能/工具 | Glances | htop | top |
---|---|---|---|
界面交互 | 動態自適應終端尺寸 | 固定分欄 | 基礎分欄 |
監控維度 | 15+ 項系統指標 | CPU、內存、進程 | CPU、內存、進程 |
遠程監控 | 支持客戶端-服務器 | 不支持 | 不支持 |
數據導出 | CSV/HTML/數據庫 | 無 | 無 |
擴展性 | 支持插件與 API | 有限 | 無 |
優勢總結:Glances 在功能集成性、遠程協作及數據擴展性上顯著優于傳統工具,尤其適合多服務器集群監控場景。
二、安裝與配置
2.1 安裝方法
Debian/Ubuntu:
# 通過 apt 安裝
sudo apt install glances -y# 通過 pipx 安裝(推薦)
pipx install glances[all] # 安裝全部擴展功能
CentOS/RHEL:
# 啟用 EPEL 倉庫后安裝
sudo yum install -y epel-release && sudo yum install glances -y
Docker 部署:
# 拉取鏡像并運行
docker pull nicolargo/glances:latest-full
docker run -d -it --pid host --network host nicolargo/glances
Windows 系統:
# 通過 pip 安裝
pip install glances
2.2 依賴項管理
- 核心依賴:
psutil
(系統信息采集)、defusedxml
(XML 解析)。 - 可選依賴:
bottle
(Web 界面)、influxdb
(數據導出)。
三、使用技巧
3.1 基礎監控與交互操作
查看版本:
linux01@linux01:~$ glances -V
Glances version: 4.3.1
Glances API version: 4
PsUtil version: 7.0.0
Log file: /home/linux01/.local/share/glances/glances.log
linux01@linux01:~$
啟動 Glances:
glances # 默認刷新間隔2秒
glances -t 5 # 設置刷新間隔為5秒
界面展示:
界面說明:
- 頂部:系統負載、CPU 使用率、內存/交換分區。
- 中部:網絡流量、進程列表(按 CPU 或內存排序)。
- 底部:磁盤 I/O、傳感器溫度(需安裝
lm-sensors
)。
快捷鍵操作
快捷鍵 | 功能 |
---|---|
c | 按 CPU 使用率排序進程 |
m | 按內存使用率排序進程 |
d | 顯示/隱藏磁盤 I/O 統計 |
n | 顯示/隱藏網絡統計 |
w | 刪除警告日志 |
k | 刪除進程 |
h | 顯示幫助菜單 |
3.2 Web 界面監控
啟動 Web 服務器:
glances -w # 默認端口 61208
訪問 http://<服務器IP>:61208
即可查看實時監控頁面(支持響應式布局)。
進階配置:
# 設置用戶密碼保護
glances -w --username --password# 后臺啟動
glances -w &
3.3 數據導出與集成
導出為 CSV:
glances --export csv --export-csv-file /path/to/glances.csv
導出為 JSON:
glances --export json --export-json-file /path/to/glances.json
集成 Prometheus:
# 以 Prometheus 支持的方式啟動 Glances
glances --export prometheus# 默認僅支持本地訪問,端口 9091,驗證
linux01@linux01:~$ curl http://127.0.0.1:9091/metrics
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 1092.0
python_gc_objects_collected_total{generation="1"} 164.0
python_gc_objects_collected_total{generation="2"} 10.0
# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
# TYPE python_gc_objects_uncollectable_total counter# 你可以配置 Prometheus 來連接 Glances
四、生產實際案例
4.1 多服務器集群監控
場景:監控 10 臺 Linux 服務器的資源使用情況。
解決方案:
- 在其中一臺服務器啟動 Glances 服務端:
glances -s -B 0.0.0.0
- 其他服務器作為客戶端連接:
glances -c <主服務器IP>
- 在主服務器通過 Web 界面或客戶端匯總查看所有節點狀態。
4.2 容器化環境監控
場景:監控 Docker 容器的 CPU 和內存占用。
解決方案:
- 使用 Docker 運行 Glances:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances
- 啟用 Docker 監控模塊:
glances --enable-docker
五、常見問題處理
5.1 安裝依賴缺失
報錯:ModuleNotFoundError: No module named 'psutil'
解決:安裝缺失的 Python 庫:
pip install psutil defusedxml
5.2 Web 界面無法訪問
可能原因:防火墻未開放端口或服務未綁定正確 IP,安裝的不是 glances[all] 版本。
排查:
netstat -tuln | grep 61208 # 檢查端口監聽狀態
glances -w -B 0.0.0.0 # 強制綁定所有IP
5.3 客戶端連接超時
可能原因:網絡隔離或服務端未正確啟動。
排查:
telnet <服務器IP> 61209 # 測試端口連通性
glances -s --debug # 啟用調試模式
結語:Glances 憑借其高度集成性、跨平臺支持及靈活的擴展能力,已成為運維監控領域的標桿工具。通過本文的詳解,你已經掌握其核心功能。進一步學習可參考 Glances 官方文檔。如果你覺得這篇文章對你有幫助,不妨點個贊👍,或者分享給你的朋友們吧!你的支持是我持續創作的最大動力!
資源推薦:
- Glances GitHub 倉庫
- Grafana 儀表盤模板庫
- 上一篇:Linux 系統監控進階:htop 命令詳解與高效運維