将日志文件写入慢速磁盘或将 Tomcat 访问日志发送到 ElasticSearch?

Write Logfiles to Slow Disk or sending Tomcat Access Logs to ElasticSearch?

问题

我希望所有日志记录都是异步完成的,因此写入缓慢的 AzureFile 卷应该不会影响性能。 这是正确的吗?

更新

最后我想收集日志文件,以便我可以将所有日志发送到 ElasticSearch。

特别是我需要一种收集访问日志的方法。

是的,你是对的,但仍然在这里取决于你如何编写日志。如果你正在编写异步的长进程,那么你的文件系统就会很慢。如果是 NFS 还有可能出现网络延迟等问题

如果将 NFS 和存储桶卷直接附加到多个 PODs。

,我已经看到性能问题

如果您的编写速度很慢,异步线程可能需要一些时间才能完成工作并占用更多资源,但这仍然取决于代码和编写代码的方式。

理想情况下,人们使用存储在 Elasticsearch 中以便于快速检索和管理。

人们根据需求使用不同的技术栈,但大多数都由 Elasticsearch 支持,例如 Graylog、ELK。

为了向这些堆栈发送或写入日志,人们使用 UDP,我个人更喜欢 GELF UDP,并在 Graylog 上抛出日志并忘记。

如果您想将访问日志发送到 Elastic Search,只需扩展 AbstractAccessLogValve 并实现 log 方法即可。

AbstractAccessLogValve 已经包含格式化消息的逻辑,因此您只需添加发送格式化消息的逻辑。