I'm running Ganglia 3.1.2 on a network where there is no multicast (nor can I turn it on). Does anyone have an elegant solution for getting ganglia to work correctly? I found this:
http://code.google.com/p/ganglia-multicast-hack/
but it does not scale very well.
Right now, I have separate data_source lines for each host on my network in my gmetad.conf file, but that too does not scale well, and I can't get accurate summary statistics, because it keeps overwriting the rrds (although the host statistics work just fine).
Any pointers would be greatly appreciated (or confirmation that I have found the best solution already).
Thanks!
After further research, I found the answer. On my clients, I added the following to gmond.conf:
This sends the data via unicast UDP to the monitoring host and the backup every 1 second.
Then on the monitoring host, I added this:
The key is to get rid of the multicast entry, which is there by default.
This works, but the problem is that all the nodes will end up in the same default datasource, so their Cluster information is lost, which is not so nice for multi-cluster environments.
I haven't tried yet, but a possible workaround for this would be to create a UDP channel for each cluster, which is not so nice if you have many of them.
Later Edit:
My current setup is using unicast at the cluster level due to networking limitations, and all the data is getting sent to a node from each cluster. Then I contact each of those using metad to get all the data regarding that cluster.
This way the clusters will be assigned to their own data sources, and their full information will be there.
The config would look like this:
Then on the metad:
For redundancy you can have multiple udp_send_channel entries and multiple IPs listed in the data_source. I personally use two for each cluster.
For federation I use something like this:
This is valid only if you have a metad listening on port 8651 there.
Was facing the same problem with multicast mode while configuring Ganglia on Amazon EC2 cloud which prevents the use of multicast in its network. The possible solution is to switch to unicast mode which works fortunately.
To be very concise, below given simple steps are there to get rid of multicast mode.
Example: 10 Nodes are there which are running gmond daemon. Pick a node any one from 10 and make that Master which will be getting all the data from 10 Nodes even should also be the slave of itself.
Note: Copy the same configuration on all 10 nodes running gmond daemon. Restart Master first then all others. Hope it will work and the Master Node will be having all the data from other nodes.
Now configure Ganglia data consolidator (gmetad) daemon to use your Master Node as a primary data source.
Example:
Now restart the gmetad daemon and let the magic begin.
Cheers Mohd Mozammil Khan
See also:
https://github.com/ganglia/monitor-core/tree/feature/cloud
I installed it today and got it working on EC2 which doesn't allow multicast.