Ganglia

Ganglia 不更新圖表

  • August 29, 2012

我開始注意到我的網路界面在幾個小時內沒有更新圖表。每次我gmond在客戶端上重新啟動該過程時,我都會看到圖表確實有效。大約一個小時後我回來,我的圖表是空白的,只是一個白色的圖表,沒有任何更新。如果我再次啟動它,它工作得很好。我不確定它是什麼。

我的設置如下。

客戶端 -> gmond 收集器 -> gmeta/web 主機

gmetad.conf

data_source "ENG1" 10.199.1.110
data_source "ENG2" 10.199.19.100
data_source "QA" 10.199.10.200

來自 10.199.10.200 的 gmond.conf

globals {
   daemonize = yes
   setuid = yes
   user = nobody
   debug_level = 0
   max_udp_msg_len = 1472
   mute = no
   deaf = no
   allow_extra_data = yes
   host_dmax = 0 /*secs */
   cleanup_threshold = 300 /*secs */
   gexec = no
   send_metadata_interval = 0 /*secs */
}

cluster {
   name = "QA"    
}

udp_send_channel {
   host = 10.199.10.200
   port = 8649
   ttl = 1
}

udp_recv_channel {
   port = 8649
}

**gmond.conf 沒有我的客戶端文件與上面相同,只是它沒有udp_recv_channel定義塊。我將狀態從客戶端轉發到收集器(例如 10.199.10.200),然後由 gmeta 伺服器(10.199.1.110)拉取。該伺服器還從定義為“ENG1”的一組伺服器收集數據。

在 Ubuntu 上安裝 Ganglia 時,我一直面臨這個問題。根據文件,聽起來 gmond 失去了元數據,不知道如何處理度量數據。由於您將 Ganglia 設置為單播模式,因此您需要指示 gmond 通過更改send_metadata_interval為非零值來定期發送元數據:

globals {
 daemonize = yes
 setuid = yes
 user = ganglia
 debug_level = 0
 max_udp_msg_len = 1472
 mute = no
 deaf = no
 allow_extra_data = yes
 host_dmax = 0 /*secs */
 cleanup_threshold = 300 /*secs */
 gexec = no
 send_metadata_interval = 30 /*secs */
}

試試看!

閱讀更多:

http://sourceforge.net/apps/trac/ganglia/wiki/ganglia_release_notes

3.1 如果需要,收集器將請求 gmond 重新發送其指標描述資訊,如果使用多播,如果您正在使用單播,則無法執行此操作,因此如果您重新啟動收集器,將只留下來自集群的部分數據或沒有數據正在通過它收集,直到該集群中的所有 gmond 都重新啟動。如果將單播設置設置為合理的值,則要解決此問題, send_metadata_interval以便所有 gmond 定期將其元數據重新發送給收集器,以防失去。

http://sourceforge.net/apps/trac/ganglia/wiki/FAQ

在最近的 gmond (3.1.x) 版本中,在gmond.confcalled中添加了一個新的全域變數send_metadata_interval,預設設置為 0。目的是減少網路流量。在 3.1 中,度量數據與元數據分開發送,例如元數據包含詳細描述、分組、其他可能的設置。值為零表示 gmond 將在啟動時發送元數據,而不是其他時間(這與舊版本的 ganglia 一致)。

如果您計劃使用單播模式,請設置send_metadata_interval 為 0 以外的值。已發現 30-60 秒在大多數情況下可以可靠地工作。將此變數設置為非零值將使 gmond 程序定期公佈其指標,並且圖表將重新出現在主機視圖頁面上。

引用自:https://serverfault.com/questions/270752