Monitoring
Graphite Clustered Webapp - 不共享數據
我在 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)解決了該問題。