【发布时间】:2019-04-13 12:11:11
【问题描述】:
我们正在将应用程序日志从 CloudWatch 流式传输到 AWS ELK。我们的微服务是用 Java 编写的,所以我只关注那些。记录时典型的 java 异常堆栈跟踪如下所示:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
通常,这将在 ELK 堆栈中逐行提取,这会破坏整个消息。
通常,要将整个堆栈跟踪作为单个消息摄取,可以在 Logstash 或 Filebeat 中配置 multiline 插件。
知道如何在通过 AWS lambda 将日志文件从 CloudWatch 流式传输到 ELK 时启用多行吗?
【问题讨论】:
-
你的日志框架是什么,你有什么重新配置的选项吗?
-
您如何将日志写入 CloudWatch?您是在 Lambda 中运行并写入其记录器,还是在容器(或 EC2)中运行并使用 CloudWatch 日志代理?如果是后者,那么您的问题很可能是那个代理,因为它会将消息分成日志中的多行。
-
@kdgregory slf4j 使用默认配置。任何建议如何配置它?我们在容器中运行应用程序并使用 CloudWatch 日志代理。是否可以告诉 CloudWatch 代理不要打破每行日志并在 sracktrace 的情况下将它们组合起来
标签: amazon-web-services elastic-stack amazon-cloudwatch amazon-elasticsearch