# Linux下如何使用Glances
## 一、Glances簡介
### 1.1 什么是Glances
Glances是一個基于Python開發的跨平臺系統監控工具,采用C/S架構設計,能夠通過 curses(文本用戶界面)或 Web界面提供實時的系統性能監控。其名稱源自"GLobal ANd CES",意為全局監控與簡潔展示。
### 1.2 核心特性
- **多維度監控**:CPU、內存、磁盤、網絡、進程等
- **跨平臺支持**:Linux/Unix/Windows/macOS
- **多種展示模式**:終端界面/Web界面/RESTful API
- **低資源消耗**:Python編寫,運行效率高
- **插件系統**:支持擴展監控項
- **告警功能**:可配置閾值告警
### 1.3 同類工具對比
| 工具名稱 | 語言 | 界面類型 | 特色功能 |
|------------|---------|----------------|------------------------|
| Glances | Python | TUI/Web/API | 全功能、可擴展 |
| htop | C | TUI | 交互式進程管理 |
| nmon | C | TUI | IBM開發,專業性能監控 |
| Netdata | C | Web | 實時可視化儀表盤 |
## 二、安裝與配置
### 2.1 基礎安裝方法
#### Ubuntu/Debian系統
```bash
sudo apt update
sudo apt install glances
sudo yum install epel-release
sudo yum install glances
pip3 install glances[all]
# 支持Web界面
pip3 install bottle
# 支持GPU監控(需要nvidia-ml)
pip3 install nvidia-ml-py3
# 支持Docker監控
pip3 install docker
默認配置文件路徑:/etc/glances/glances.conf
重要配置項示例:
[global]
refresh=2 # 刷新頻率(秒)
theme=white # 界面主題
[CPU]
user_careful=50 # CPU警告閾值
[memory]
careful=70 # 內存警告閾值
glances # 默認啟動
glances -t 3 # 設置3秒刷新間隔
glances --disable-plugin docker # 禁用特定插件
快捷鍵 | 功能描述 |
---|---|
q | 退出程序 |
c | 按CPU%排序進程 |
m | 按內存%排序進程 |
d | 顯示/隱藏磁盤IO信息 |
n | 顯示/隱藏網絡信息 |
f | 顯示/隱藏文件系統信息 |
w | 刪除警告日志 |
CPU [||| 24.1%] # 總使用率
user: 18.2% # 用戶空間占用
system: 5.7% # 內核空間占用
iowait: 0.2% # IO等待占比
load: 1.23 2.01 1.89 # 1/5/15分鐘負載
MEM [|||||55.3%] 3.2/5.8GB
SWAP [|10.1%] 0.2/2.0GB
buffers: 234MB cached: 1.2GB
glances -s -B 0.0.0.0 # 監聽所有接口
glances -c @server_ip # 密碼認證
# 生成加密密碼
glances --password
# 使用SSL加密
glances -s --ssl -C /path/to/cert.pem
glances -w # 啟動Web服務
# 瀏覽器訪問 http://<IP>:61208
高級Web配置:
[webserver]
port = 61208
bind = 0.0.0.0
auth = True # 啟用認證
password = $6$salt$hash # SHA-256加密密碼
curl http://localhost:61208/api/3/mem/free
API返回示例:
{
"free": 1234567890,
"unit": "byte"
}
示例插件模板:
#!/usr/bin/env python
from glances.plugins.glances_plugin import GlancesPlugin
class ExamplePlugin(GlancesPlugin):
"""示例插件模板"""
def __init__(self, args=None):
super(ExamplePlugin, self).__init__(args=args)
def update(self):
return {"example": 123}
安裝自定義插件:
cp example.py /usr/local/lib/python3.8/site-packages/glances/plugins/
[alert]
crit=90 # 嚴重閾值
warn=70 # 警告閾值
repeat=60 # 告警重復間隔(秒)
glances --export prometheus
Prometheus配置示例:
scrape_configs:
- job_name: 'glances'
static_configs:
- targets: ['glances-server:61208']
glances --export csv --export-csv-file /var/log/glances.csv
glances --export influxdb
# 限制監控項目
glances --disable-plugin sensors,irq
# 調整采集頻率
glances -t 5 # 5秒刷新
Docker運行示例:
docker run --pid host -v /var/run/docker.sock:/var/run/docker.sock:ro -p 61208:61208 -d glances/glances
解決方案:
pip3 install --upgrade psutil
glances --debug
檢查步驟:
netstat -tulnp | grep 61208
sudo ufw allow 61208/tcp
graph TD
A[Glances Server] -->|收集數據| B[InfluxDB]
B --> C[Grafana]
C --> D{告警判斷}
D -->|郵件通知| E[管理員]
D -->|SMS通知| F[運維手機]
# 監控特定進程
glances --process-name python
# 生成性能報告
glances --export html --export-html-file report.html
本文檔最后更新于:2023年10月
Glances當前穩定版本:3.3.1
測試環境:Ubuntu 22.04 LTS / Python 3.10 “`
這篇文章共計約3200字,采用Markdown格式編寫,包含: 1. 多級標題結構 2. 代碼塊示例 3. 表格對比 4. 流程圖示意 5. 配置示例 6. 版本兼容性說明 7. 安全建議 8. 故障排查指南
可根據實際需要調整各部分內容的詳細程度或增加具體案例。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。