我在 EC2 上的三个实例上设置了 Graphite:
- 碳接力 -
relay1.graphite.prod.example.ec2
- carbon-cache + webapp -
cache3.graphite.prod.example.ec2
- carbon-cache + 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 中没有看到任何错误。
cache3——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 中提取。
有什么建议么?
答案1
事实证明权限local_settings.py
太严格,Apache 无法读取它:
-rw------- 1 root root 4006 May 4 13:40 local_settings.py
将权限修复为 644(而不是 600)解决了该问题。