格式化程序
编辑格式化程序编辑
我们的日志格式化程序允许您更改各种日志记录框架记录到 IO(文件/控制台)的方式,以使用 ECS json。
ECS 意识消息模板编辑
我们的日志格式化程序允许您使用符合 https://messagetemplates.org/ 格式的属性,直接从消息模板设置 ECS 字段。
Log.Information("The time is {TraceId}", "my-trace-id");
将直接覆盖生成的 ECS json 文档上的 trace.id
。
所有支持的 ECS 消息模板属性都作为常量提供,位于 LogTemplateProperties
静态类下。例如 LogTemplateProperties.TraceId
将返回 "TraceId"
。
摄取 ECS 日志文件编辑
如果您正在使用我们的格式化程序库之一将日志记录到文件或 stdout/stderr,您可以使用以下选项将这些日志导入 Elasticsearch 或 Elastic Cloud
我们还支持将日志直接写入 Elasticsearch 或 Elastic Cloud。请参阅我们的 各种数据发送器集成
- 按照 Filebeat 快速入门
- 将以下配置添加到您的
filebeat.yaml
文件中。
对于 Filebeat 7.16+
filebeat.yaml。
filebeat.inputs: - type: filestream paths: /path/to/logs.json parsers: - ndjson: overwrite_keys: true add_error_key: true expand_keys: true processors: - add_host_metadata: ~ - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
使用 filestream 输入从活动日志文件读取行。 |
|
解码的 JSON 对象中的值会覆盖 Filebeat 通常添加的字段(类型、源、偏移量等),以防发生冲突。 |
|
Filebeat 会在 JSON 反序列化错误的情况下添加一个 "error.message" 和 "error.type: json" 密钥。 |
|
Filebeat 会递归地解除解码的 JSON 中的点分隔密钥,并将它们扩展为分层对象结构。 |
|
处理器会增强您的数据。请参阅 处理器 了解更多信息。 |
对于 Filebeat < 7.16
filebeat.yaml。
filebeat.inputs: - type: log paths: /path/to/logs.json json.keys_under_root: true json.overwrite_keys: true json.add_error_key: true json.expand_keys: true processors: - add_host_metadata: ~ - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
- 确保您的应用程序将日志记录到 stdout/stderr。
- 按照 在 Kubernetes 上运行 Filebeat 指南。
- 启用 基于提示的自动发现(在
filebeat-kubernetes.yaml
中取消对相应部分的注释)。 - 将这些注释添加到使用 ECS 日志记录程序记录日志的 Pod 中。这将确保日志得到适当的解析。
- 确保您的应用程序将日志记录到 stdout/stderr。
- 按照 在 Docker 上运行 Filebeat 指南。
- 启用 基于提示的自动发现。
- 将这些标签添加到使用 ECS 日志记录程序记录日志的容器中。这将确保日志得到适当的解析。
docker-compose.yml。
有关更多信息,请参阅 Filebeat 参考。