如何在EC2上使Statsd和Ganglia对话(localhost)

按照主题,我只是想做这个简单的设置工作。 服务运行良好,但据我所知statsd不发送任何东西到神经节。 Ganglia工作正常,因为我得到的Web界面和基本的系统信息。

我使用的是wikimedia的后端插件 ,虽然之前我用​​过这个 ,但是我也遇到了同样的问题。

这里是statsdconfiguration:

{ port: 8125, debug: true, dumpMessages: true, backends: [ "./backends/ganglia.js" ], gangliaHost: "127.0.0.1", // Hostname of Ganglia server (required) gangliaPort: 8649 // UDP port of Ganglia server (default: 8649) } 

使用这个testing脚本,我将发送出现在statsd日志中的消息:

 root@ip-10-32-59-208:/opt/statsd# nodejs stats.js config.js 28 Nov 18:12:46 - reading config file: config.js 28 Nov 18:12:46 - server is up 28 Nov 18:12:46 - DEBUG: Loading backend: ./backends/ganglia.js 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 28 Nov 18:13:01 - DEBUG: ometria.test.test:1|c 

但正如我所说,他们没有出现在neural network界面。 神经节debugging输出充满了各种各样的东西,但它没有打印任何我发送这些消息时隐约相关的任何东西。 最后是inheritance人我的神经节configuration文件(其默认,没有修改),请让我知道,如果你能帮助:

 /* This configuration is as close to 2.5.x default behavior as possible The values closely match ./gmond/metric.h definitions in 2.5.x */ globals { daemonize = yes setuid = yes user = ganglia debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 0 } /* If a cluster attribute is specified, then all gmond hosts are wrapped inside * of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will * NOT be wrapped inside of a <CLUSTER> tag. */ cluster { name = "unspecified" owner = "unspecified" latlong = "unspecified" url = "unspecified" } /* The host section describes attributes of the host, like the location */ host { location = "unspecified" } /* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */ udp_send_channel { mcast_join = 239.2.11.71 port = 8649 ttl = 1 } /* You can specify as many udp_recv_channels as you like as well. */ udp_recv_channel { mcast_join = 239.2.11.71 port = 8649 bind = 239.2.11.71 } /* You can specify as many tcp_accept_channels as you like to share an xml description of the state of the cluster */ tcp_accept_channel { port = 8649 } /* Each metrics module that is referenced by gmond must be specified and loaded. If the module has been statically linked with gmond, it does not require a load path. However all dynamically loadable modules must include a load path. */ modules { module { name = "core_metrics" } module { name = "cpu_module" path = "/usr/lib/ganglia/modcpu.so" } module { name = "disk_module" path = "/usr/lib/ganglia/moddisk.so" } module { name = "load_module" path = "/usr/lib/ganglia/modload.so" } module { name = "mem_module" path = "/usr/lib/ganglia/modmem.so" } module { name = "net_module" path = "/usr/lib/ganglia/modnet.so" } module { name = "proc_module" path = "/usr/lib/ganglia/modproc.so" } module { name = "sys_module" path = "/usr/lib/ganglia/modsys.so" } } include ('/etc/ganglia/conf.d/*.conf') /* The old internal 2.5.x metric array has been replaced by the following collection_group directives. What follows is the default behavior for collecting and sending metrics that is as close to 2.5.x behavior as possible. */ /* This collection group will cause a heartbeat (or beacon) to be sent every 20 seconds. In the heartbeat is the GMOND_STARTED data which expresses the age of the running gmond. */ collection_group { collect_once = yes time_threshold = 20 metric { name = "heartbeat" } } /* This collection group will send general info about this host every 1200 secs. This information doesn't change between reboots and is only collected once. */ collection_group { collect_once = yes time_threshold = 1200 metric { name = "cpu_num" title = "CPU Count" } metric { name = "cpu_speed" title = "CPU Speed" } metric { name = "mem_total" title = "Memory Total" } /* Should this be here? Swap can be added/removed between reboots. */ metric { name = "swap_total" title = "Swap Space Total" } metric { name = "boottime" title = "Last Boot Time" } metric { name = "machine_type" title = "Machine Type" } metric { name = "os_name" title = "Operating System" } metric { name = "os_release" title = "Operating System Release" } metric { name = "location" title = "Location" } } /* This collection group will send the status of gexecd for this host every 300 secs */ /* Unlike 2.5.x the default behavior is to report gexecd OFF. */ collection_group { collect_once = yes time_threshold = 300 metric { name = "gexec" title = "Gexec Status" } } /* This collection group will collect the CPU status info every 20 secs. The time threshold is set to 90 seconds. In honesty, this time_threshold could be set significantly higher to reduce unneccessary network chatter. */ collection_group { collect_every = 20 time_threshold = 90 /* CPU status */ metric { name = "cpu_user" value_threshold = "1.0" title = "CPU User" } metric { name = "cpu_system" value_threshold = "1.0" title = "CPU System" } metric { name = "cpu_idle" value_threshold = "5.0" title = "CPU Idle" } metric { name = "cpu_nice" value_threshold = "1.0" title = "CPU Nice" } metric { name = "cpu_aidle" value_threshold = "5.0" title = "CPU aidle" } metric { name = "cpu_wio" value_threshold = "1.0" title = "CPU wio" } /* The next two metrics are optional if you want more detail... ... since they are accounted for in cpu_system. metric { name = "cpu_intr" value_threshold = "1.0" title = "CPU intr" } metric { name = "cpu_sintr" value_threshold = "1.0" title = "CPU sintr" } */ } collection_group { collect_every = 20 time_threshold = 90 /* Load Averages */ metric { name = "load_one" value_threshold = "1.0" title = "One Minute Load Average" } metric { name = "load_five" value_threshold = "1.0" title = "Five Minute Load Average" } metric { name = "load_fifteen" value_threshold = "1.0" title = "Fifteen Minute Load Average" } } /* This group collects the number of running and total processes */ collection_group { collect_every = 80 time_threshold = 950 metric { name = "proc_run" value_threshold = "1.0" title = "Total Running Processes" } metric { name = "proc_total" value_threshold = "1.0" title = "Total Processes" } } /* This collection group grabs the volatile memory metrics every 40 secs and sends them at least every 180 secs. This time_threshold can be increased significantly to reduce unneeded network traffic. */ collection_group { collect_every = 40 time_threshold = 180 metric { name = "mem_free" value_threshold = "1024.0" title = "Free Memory" } metric { name = "mem_shared" value_threshold = "1024.0" title = "Shared Memory" } metric { name = "mem_buffers" value_threshold = "1024.0" title = "Memory Buffers" } metric { name = "mem_cached" value_threshold = "1024.0" title = "Cached Memory" } metric { name = "swap_free" value_threshold = "1024.0" title = "Free Swap Space" } } collection_group { collect_every = 40 time_threshold = 300 metric { name = "bytes_out" value_threshold = 4096 title = "Bytes Sent" } metric { name = "bytes_in" value_threshold = 4096 title = "Bytes Received" } metric { name = "pkts_in" value_threshold = 256 title = "Packets Received" } metric { name = "pkts_out" value_threshold = 256 title = "Packets Sent" } } /* Different than 2.5.x default since the old config made no sense */ collection_group { collect_every = 1800 time_threshold = 3600 metric { name = "disk_total" value_threshold = 1.0 title = "Total Disk Space" } } collection_group { collect_every = 40 time_threshold = 180 metric { name = "disk_free" value_threshold = 1.0 title = "Disk Space Available" } metric { name = "part_max_used" value_threshold = 1.0 title = "Maximum Disk Space Used" } } 

顺便说一下,我已经打开所有端口1000-10000这个实例,但所有的stream量仍然在本地主机上。