我想将日志从 Java 应用程序发送到 ElasticSearch,而传统的方法似乎是在运行应用程序的服务器上设置 Logstash,并让 Logstash 解析日志文件(使用正则表达式......!)并将它们加载到 ElasticSearch .
这样做是否有原因,而不仅仅是设置 log4J(或 logback)以将所需格式的内容直接记录到日志收集器中,然后可以异步发送到 ElasticSearch?当应用程序本身可以首先将其记录为所需的格式时,我不得不摆弄 grok 过滤器来处理多行堆栈跟踪(并在日志解析时消耗 CPU 周期),这对我来说似乎很疯狂?
在切线相关的说明中,对于在 Docker 容器中运行的应用程序,鉴于只需要运行一个进程,最佳实践是直接登录到 ElasticSearch 吗?