流式处理应用程序日志
编辑流式处理应用程序日志
编辑应用程序日志提供了对服务和应用程序中发生的事件的宝贵见解。
日志的格式(结构化或纯文本)会影响您的日志摄取策略。
纯文本日志与结构化 Elastic 通用架构 (ECS) 日志
编辑日志通常以纯文本或结构化格式生成。纯文本日志仅包含文本,没有特殊格式,例如
2019-08-06T12:09:12.375Z INFO:spring-petclinic: Tomcat started on port(s): 8080 (http) with context path, org.springframework.boot.web.embedded.tomcat.TomcatWebServer 2019-08-06T12:09:12.379Z INFO:spring-petclinic: Started PetClinicApplication in 7.095 seconds (JVM running for 9.082), org.springframework.samples.petclinic.PetClinicApplication 2019-08-06T14:08:40.199Z DEBUG:spring-petclinic: init find form, org.springframework.samples.petclinic.owner.OwnerController
结构化日志遵循预定义的、可重复的模式或结构。此结构在写入时应用,从而避免在摄取时需要解析。Elastic 通用架构 (ECS) 定义了一组在构建日志时使用的通用字段。此结构允许轻松摄取日志,并能够关联、搜索和聚合日志中的各个字段。
例如,前面的示例日志在使用与 ECS 兼容的 JSON 构建时可能如下所示
{"@timestamp":"2019-08-06T12:09:12.375Z", "log.level": "INFO", "message":"Tomcat started on port(s): 8080 (http) with context path ''", "service.name":"spring-petclinic","process.thread.name":"restartedMain","log.logger":"org.springframework.boot.web.embedded.tomcat.TomcatWebServer"} {"@timestamp":"2019-08-06T12:09:12.379Z", "log.level": "INFO", "message":"Started PetClinicApplication in 7.095 seconds (JVM running for 9.082)", "service.name":"spring-petclinic","process.thread.name":"restartedMain","log.logger":"org.springframework.samples.petclinic.PetClinicApplication"} {"@timestamp":"2019-08-06T14:08:40.199Z", "log.level":"DEBUG", "message":"init find form", "service.name":"spring-petclinic","process.thread.name":"http-nio-8080-exec-8","log.logger":"org.springframework.samples.petclinic.owner.OwnerController","transaction.id":"28b7fb8d5aba51f1","trace.id":"2869b25b5469590610fea49ac04af7da"}
摄取日志
编辑有多种方法可以将应用程序日志摄取到您的项目中。您的具体情况有助于确定适合您的方法。
纯文本日志
编辑使用 Filebeat 或 Elastic Agent,您可以摄取纯文本日志,包括来自任何编程语言或框架的现有日志,而无需修改您的应用程序或其配置。
为了使纯文本日志有用,您需要使用 Filebeat 或 Elastic Agent 来解析日志数据。
ECS 格式化日志
编辑以 ECS 格式化的日志不需要手动解析,并且配置可以在应用程序之间重用。它们还包括日志关联。您可以通过使用 ECS 日志插件或 APM 代理 ECS 重格式化来以 ECS 格式化您的日志。
-
ECS 日志插件
将 ECS 日志插件添加到您的日志库,以将您的日志格式化为不需要解析的与 ECS 兼容的 JSON。
要使用 ECS 日志,您需要修改您的应用程序及其日志配置。
-
APM 代理日志重格式化
某些 Elastic APM 代理可以自动将应用程序日志重新格式化为 ECS 格式,而无需添加 ECS 日志记录依赖项或修改应用程序。
此功能受以下 APM 代理支持
APM 代理日志发送
编辑使用 APM 代理自动捕获并直接发送日志到托管的摄取服务,而无需使用 Filebeat 或 Elastic Agent。
日志发送在 Java APM 代理中受支持。
日志关联
编辑将您的应用程序日志与跟踪事件相关联,以
- 查看日志的上下文以及用户提供的参数
- 查看属于特定跟踪的所有日志
- 在调试应用程序问题时轻松地在日志和跟踪之间切换
在特定于代理的摄取指南中了解有关日志关联的更多信息