SSH Exporter
English | 中文
介紹
SSH Exporter 是一個基於 Prometheus 規範的監控工具,透過 SSH 協議遠端收集目標伺服器的系統效能資料,如 CPU 使用率、記憶體使用情況、磁碟和網路 I/O 等,並將這些資料暴露為 Prometheus 格式的 metrics,以便被 Prometheus Server 抓取和儲存。
功能特性
- 遠端監控:透過 SSH 協議連線到遠端伺服器,無需在被監控伺服器上安裝額外的 agent。
- 全面的系統監控:支援監控 CPU、記憶體、磁碟和網路等多個方面的效能指標。
- 動態配置:支援從 YAML 配置檔案中讀取監控目標和引數,便於動態管理監控節點。
- 非同步收集:使用執行緒池非同步收集資料,提高資料收集效率。
- 錯誤處理與重試機制:對於 SSH 連線失敗的情況,提供自動重試機制,確保資料收集的可靠性。
- 多語言環境支援:在解析某些命令輸出時,根據系統語言自動適配,支援中文和英文環境。
使用方法
1.拉取程式碼
從 GitHub 上拉取程式碼
git clone https://github.com/2018-11-27/ssh-exporter.git
2. 配置
需要編輯 config.yml
檔案,配置需要監控的節點和監控指標。例如:
nodes:
- ip: 192.168.1.101
port: 22
username: <username>
password: <password>
- ip: 192.168.1.102
port: 22
username: <username>
password: <password>
metrics:
- ssh_cpu_utilization
- ssh_cpu_utilization_user
- ssh_cpu_utilization_system
- ssh_cpu_utilization_top5
- ssh_cpu_percentage_wait
- ssh_cpu_percentage_idle
- ssh_cpu_count
- ssh_memory_utilization
- ssh_memory_utilization_top5
- ssh_memory_utilization_swap
- ssh_memory_available_bytes
- ssh_memory_available_swap_bytes
- ssh_disk_utilization
- ssh_disk_used_bytes
- ssh_disk_available_bytes
- ssh_disk_read_bytes_total
- ssh_disk_write_bytes_total
- ssh_network_receive_bytes_total
- ssh_network_transmit_bytes_total
3. 執行
安裝依賴後直接執行 ssh_exporter.py
指令碼即可啟動 SSH Exporter 服務。服務將監聽預設的 9122 埠,等待 Prometheus Server 的抓取請求。
# 安裝依賴:
pip3 install -r requirements.txt
# 啟動 SSH Exporter 服務:
python3 ssh_exporter.py
支援的Python版本:python>=3.8
4. Prometheus 配置
在 Prometheus 的配置檔案中新增一個新的 job,指定 SSH Exporter 的地址,以便 Prometheus 可以抓取資料。
scrape_configs:
- job_name: 'ssh-exporter'
static_configs:
- targets: ['localhost:9122']
注意事項
- 安全性:請確保 SSH 憑證(使用者名稱和密碼)的安全,避免洩露。
- 網路配置:確保 Prometheus Server 可以訪問執行 SSH Exporter 的伺服器。
- 效能影響:頻繁的 SSH 連線和資料收集可能會對遠端伺服器造成一定的效能影響,請根據實際需求調整資料收集頻率。
開發與維護
- 問題反饋:請在 GitHub 倉庫中提交 issues。
- 貢獻程式碼:歡迎提交 PR,共同完善 SSH Exporter。