Ganglia 是針對高效能叢集設計的可擴展分散式監控系統。本文記錄 CentOS 5.5 以源碼方式安裝 Ganglia 後,核心配置檔 gmond.conf、gmetad.conf 的關鍵修改點、RRD 資料目錄權限修正、Web 介面 conf.php 設定,以及常見啟動錯誤的排查方案。
README、INSTALL 文件yum 安裝(如 expat-devel、apr-devel、confuse-devel、rrdtool-devel)./configure && make && make installcluster {
name = "my cluster" # 修改叢集名稱(原 "unspecified")
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* udp_send_channel / udp_recv_channel / tcp_accept_channel 依網路拓撲調整 */
# RRD 資料儲存路徑(預設 /var/lib/ganglia/rrds)
# 必須手動建立目錄並修改擁有者為 nobody,否則 gmetad 啟動失敗
data_source "my cluster" localhost
gridname "MyGrid"
# 建立 RRD 目錄
$ mkdir -p /var/lib/ganglia/rrds
# 修改擁有者為 nobody(gmetad 執行身份)
$ chown nobody:nobody /var/lib/ganglia/rrds
若跳過此步驟,會遇到:
gmetad dead but subsys lockedfsockopen error: Connection refused (127.0.0.1:8652)編輯 /var/www/html/ganglia/conf.php,確認 rrdtool 路徑正確:
define("RRDTOOL", "/usr/bin/rrdtool");
$ service gmond start
$ service gmetad start
$ service httpd restart # 若使用 Apache 提供 Web 介面
瀏覽器訪問 https:// 應顯示叢集監控儀表板。
| 現象 | 可能原因 | 解決方案 |
|---|---|---|
| gmetad 無法啟動 | RRD 目錄不存在或權限錯誤 | 建立目錄並 chown nobody:nobody |
| Web 介面顯示 "No data" | gmond 未送資料 / 多播/單播設定錯誤 | 檢查 udp_send_channel、防火牆開放 8649/8652 埠 |
| 圖表無資料 | rrdtool 路徑錯誤或版本不符 | 修正 conf.php 中 RRDTOOL 路徑 |