我想在中央服务器上积累日志。在Google中输入合适的关键字可以帮助我使用各种复杂的工具,比如fluentd和elk --但我不想聚合日志并提供分析,我只想尽可能快、高效和可靠地将它们从原始服务器上删除。
通过记录器传输流输出将使我能够以syslog的形式传输数据--但这意味着UDP (不可靠),而且我不知道如何在日志主机上从多个服务器上解复用数据。
通过netcat传输数据使使用TCP变得更容易,因此应该可以构建某种高可用性功能,这比将每个日志条目作为http请求发送更少的开销,但这感觉有点特别,而且过于简约。
将日志写入NFS共享除了安全性方面之外,还有很多工作要做--日志条目的来源对日志文件有太多的控制。而且,由于nfs4不是一种选择,高可用性是很困难的。
有没有人有更好的鲁棒和有效的解决方案?
(所有日志都来自Linux上的应用程序/单个日志条目可能是多行的)
发布于 2019-06-11 20:06:57
你的操作系统是什么?rsyslog守护进程包含在大多数发行版中,并具有通过UDP、TCP和RELP进行转发的内置能力。(可靠的事件日志记录协议)
正如您已经提到的,在可靠性方面,您不喜欢UDP;考虑TCP或RELP。
我看不出如何在日志主机上解除来自多台服务器的数据复用。
如果我理解您在这里询问的内容,那么答案是在输出目录中使用一个使用发件人主机名的模板。(还按日期进行索引,使旧文件更容易过期。)你的结局是这样的;
/var/log/loghost/$yyyy/$MM/$dd/$hostname/messages
对于应用程序日志,可以使用rsyslog的输入文件模块读取它们。(档案)
在维护者的网站上有一些很好的食谱/例子。你似乎只是需要指出正确的方向,所以我没有太具体。如果你卡住了,我会从这里开始,带着更具体的问题回来。
https://serverfault.com/questions/971006
复制相似问题