Unix

沒有多播的神經節

  • June 14, 2013

我在沒有多播的網路上執行 Ganglia 3.1.2(我也不能打開它)。有沒有人有一個優雅的解決方案讓神經節正常工作?我找到了這個:

http://code.google.com/p/ganglia-multicast-hack/

但它不能很好地擴展。

現在,在我的 gmetad.conf 文件中,我的網路上的每個主機都有單獨的 data_source 行,但這也不能很好地擴展,而且我無法獲得準確的匯總統計資訊,因為它不斷覆蓋 rrds(儘管主機統計資訊工作得很好)。

任何指針將不勝感激(或確認我已經找到了最佳解決方案)。

謝謝!

經過進一步研究,我找到了答案。在我的客戶上,我在 gmond.conf 中添加了以下內容:

udp_send_channel {
 host = monitoring-host
 port = 8666
 ttl = 1
}

udp_send_channel {
 host = monitoring-host-backup
 port = 8666
 ttl = 1
}

這將通過單播 UDP 將數據每 1 秒發送到監控主機和備份。

然後在監控主機上,我添加了這個:

udp_recv_channel {
 port = 8666
}

關鍵是擺脫預設情況下存在的多播條目。

這可行,但問題是所有節點最終都將位於相同的預設數據源中,因此它們的集群資訊會失去,這對於多集群環境來說不是很好。

我還沒有嘗試過,但一個可能的解決方法是為每個集群創建一個 UDP 通道,如果你有很多,這不是很好。

後期編輯:

由於網路限制,我目前的設置在集群級別使用單播,並且所有數據都從每個集群發送到一個節點。然後我聯繫每個使用 metad 的人,以獲取有關該集群的所有數據。

這樣,集群將被分配到它們自己的數據源,並且它們的完整資訊將在那裡。

配置如下所示:

# on each node in the cluster
udp_send_channel {
 host = 1.2.3.4 # this is a member of the cluster, not a metad server
 port = 8650
}

然後在元數據上:

data_source "My Cluster" 1.2.3.4

對於冗餘,您可以在 data_source 中列出多個 udp_send_channel 條目和多個 IP。我個人為每個集群使用兩個。

對於聯邦,我使用這樣的東西:

data_source "My Grid" 1.2.3.5:8651

僅當您在埠 8651 上偵聽元數據時,這才有效。

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