I log various stats both generic and custom from a lot of different servers using collectd
to a single host running a network listener. The setup is pretty simple. All the systems run an instance of collectd. The collection server runs the rrdtool plugin to save the data and runs the network plugin in server mode to keep a port open and collect stuff from everybody else. All the other servers don't have any write plugins and just run the network in client mode to pass on the data they collectd. The nice thing about this setup is that all the data written by rrdtool
comes in a nice consistent file structure that is easy to process for graphs and other monitors.
This works great for a simple layout with one hub that everybody can send to. I am now trying to configure a more complex setup. Still using the same central server and clients, the daemon running one of those clients is able to gather stats for several hosts other than itself that are unable to run the collectd
daemon itself.
A
/|\
B C D
|\
E F
I am able to setup the configs on C such that it reports the stats that it gathered from E and F. That much works.
What I can't do is get C to report that data under several different hostnames. All the data it sends is labeled with it's own host, which is incorrect. How can I identify some of the Plugin or Type blocks in the collectd.conf
to report themselves as belonging to a different host than the machine running the daemon?