如何配置StatsD和Graphite以在不同的服务器上运行

时间:2012-10-17 16:03:25

标签: amazon-ec2 graphite statsd graphite-carbon

我已经全神贯注地查看了这一点,但没有找到任何人谈论如何设置和配置StatsDGraphite以在不同的服务器上进行通信。我目前所有的东西都在一个上运行,但我尝试将它们分开是不成功的。

以下是我设置StatsD exampleConfig.js

的方法
exampleconfig
{
  graphitePort: 2003
, graphiteHost: "(graphite server IP)"
, port: 8125
}

我能想到在另一个盒子上设置的唯一另一件事是example-client.py

currently it says this:
CARBON_SERVER = '127.0.0.1'
CARBON_PORT = 2003

我认为需要让本地主机与同一台服务器上的耳语或石墨进行通信。我有我的防火墙设置来监听2003,并且使用数据包转储服务器确实从statsd获取UDP。它似乎没有被碳和石墨消耗掉。

我缺少什么?
还有什么建议用于缩放statsd石墨设置?我现在有自己的statsd和另一台服务器上的石墨+碳+耳语。 statsd运行的能力最大还是石墨盒?我想知道这一点,因为我很快就会每天向服务器发送数百万比特的数据进行测试。

3 个答案:

答案 0 :(得分:3)

修改example-client.py

如果要在运行graphite / carbon实例的其他服务器上运行 example-client.py 。然后,您需要将 CARBON_SERVER 更改为graphite / carbon服务器的IP地址。


网络测试

您可能还想进行一些快速测试,以确保进程正在侦听您期望的端口和底层网络将允许此通信的端口。

在运行graphite / carbon的服务器上,您应该能够通过 lsof 命令检查服务器是否通过本地主机接受连接

$ lsof -Pi:2003
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
carbon-ca 1596 graphite   7u  IPv4   9517      0t0  TCP *:2003 (LISTEN)

从上面可以看出,我有一个碳缓存进程正在运行并侦听TCP 2003上的所有接口。

来自远程计算机的一个非常简单的测试是在它正在侦听的端口上执行与石墨/碳服务器的telnet连接(默认值:2003),看看是否有效。

侦听套接字示例*

$ telnet graphite-server 2003
Trying graphite-server...
Connected to graphite-server.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

关闭套接字示例*

$ telnet graphite-server 2003
Trying graphite-server...
telnet: Unable to connect to remote host: Connection refused

答案 1 :(得分:1)

所以我终于发现了这个问题。我假设statsd不仅收到UDP而且还发送UDP到碳。在我意识到statsd发送TCP后,我能够调整我的防火墙,现在它运行良好。我把CARBON_SERVER当作本地主机。

谢谢!

缩放石墨/碳的最佳方法是什么?我应该从石墨中分离碳吗?那可能吗?碳对处理器的压力是否超过石墨?

答案 2 :(得分:1)

无纸化后统计分叉也可能对您有用:https://github.com/paperlesspost/statsd