格式化器
编辑格式化器
编辑我们的日志格式化器允许您更改各种日志框架记录到 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 通常添加的字段(类型、源、偏移量等)。 |
|
如果发生 JSON 反序列化错误,Filebeat 会添加“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 参考。