我正在调查日志系统的一个问题,并寻找一些可能的解决方案的输入。我们现在拥有的是:
我们有时遇到的问题是,客户端套接字(log4j记录器)有时会无限期地等待,从而导致应用程序失去响应。建议的解决方案之一是避免使用套接字附加程序,并使用本地文件(我们不需要在kibana中使用“即时”日志信息)。因此,logstash代理将被配置为从6个文件中读取(每个实例一个),并将这些文件直接推入弹性搜索。除了在logstash的输入配置中定义6个文件之外,您还能建议这种方法的任何缺点吗?你还能提出什么其他选择?提前谢谢。
发布于 2015-10-15 03:51:02
如果您有选择的话,我肯定不会使用SocketAppender。其中一个问题是您提到的问题,另一个问题是如果您在Logstash1.5x或以前(我发现更麻烦得多),就是没有传递事件的确切时间戳(如log4j2所创建的),这意味着日志行的时间戳将是日志存储中日志行的到达时间,而不是应用程序创建日志行的时间。如果您正在聚合来自堆栈中不同应用程序/服务器/子系统的日志,那么了解事件的时间性将是一个麻烦。虽然这是修正了Logstash 2.0,但还是值得一提的。
除此之外,至少有三个很好的理由可以将日志存储到文件系统上的文件中,而不是通过TCP直接传送它们:
https://stackoverflow.com/questions/33139414
复制相似问题