Monitoring

Graphite Clustered Webapp - 不共享數據

  • May 4, 2012

我在 EC2 上的三個實例上設置了 Graphite:

  • 碳繼電器 -relay1.graphite.prod.example.ec2
  • 碳記憶體 + webapp -cache3.graphite.prod.example.ec2
  • 碳記憶體 + webapp -cache4.graphite.prod.example.ec2

中繼與一致散列完美配合。問題是兩台 Web 伺服器沒有相互通信,所以我只看到一台伺服器的指標。

我花了很多時間查看https://answers.launchpad.net/graphite/+question/114206,但我無法弄清楚我的設置不正確。我可以從 cache3 對 cache4 執行 wget,取回數據並在 Apache 日誌中查看。所以我認為這不是防火牆問題。我嘗試suppressError = False在 remote_storage.py 中啟用並在 local_settings.py 中打開 DEBUG,但在 Firebug 中沒有看到任何錯誤。

記憶體3-local_settings.py

CLUSTER_SERVERS = [ 'cache4.graphite.prod.example.ec2', 'localhost' ]

記憶體4-local_settings.py

CLUSTER_SERVERS = [ 'cache3.graphite.prod.example.ec2', 'localhost' ]

我也嘗試過使用 IP 地址,但沒有任何影響。

我做了更多的調試和修改storage.py以直接硬編碼我的遠端主機:

STORE = Store(settings.DATA_DIRS, remote_hosts=["cache4.graphite.prod.example.ec2", "127.0.0.1"])

那行得通。所以,不知何故,我的CLUSTER_SERVERS價值沒有正確地從 local_settings.py 中提取出來。

有什麼建議麼?

結果發現權限local_settings.py太嚴格了,Apache 無法讀取它:

-rw------- 1 root root  4006 May  4 13:40 local_settings.py

將權限修復為 644(而不是 600)解決了該問題。

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