我使用以下命令记录来自许多不同服务器的通用和自定义的各种统计信息collectd
到运行网络侦听器的单个主机。设置非常简单。所有系统都运行一个collectd 实例。收集服务器运行rrd工具插件保存数据并运行网络插件在服务器模式下保持端口打开并从其他人那里收集东西。所有其他服务器都没有任何写入插件,只需运行网络在客户端模式下传递他们收集的数据。此设置的好处是,写入的所有数据都rrdtool
采用良好一致的文件结构,易于图形和其他监视器处理。
这非常适合一种简单的布局,每个人都可以发送到一个集线器。我现在正在尝试配置更复杂的设置。仍然使用相同的中央服务器和客户端,运行这些客户端之一的守护程序能够收集除自身之外的无法运行守护程序collectd
本身的多个主机的统计信息。
A
/|\
B C D
|\
E F
我可以在 C 上设置配置,以便它报告从 E 和 F 收集的统计信息。这很有效。
我不能做的是让 C 在几个不同的主机名下报告该数据。它发送的所有数据都标有自己的主机,这是不正确的。我如何识别某些插入或者类型中的块collectd.conf
将自己报告为属于与运行守护程序的计算机不同的主机?
答案1
根据我的研究,我发现 python 插件能够发送标记数据(例如 Write_tsdb 插件),但没有一种简单的方法来标记系统插件数据,如 cpu、内存等)
答案2
是的;有一个设置collectd.conf
叫Hostname
;将其更改为您想要的任何主机名。
您可能还想设置FQDNLookup
为false
;否则,由于 FQDN 查找失败,这些系统将无法发送数据。
在collectd.conf中您需要添加:
Hostname "some.host.example.com"
FQDNLookup false
... all your other settings ...
某些设置可以在插件中被覆盖;您也许可以通过更改Hostname
全局默认插件来摆脱困境。