格式化程序编辑

我们的日志格式化程序允许您更改各种日志记录框架记录到 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。请参阅我们的 各种数据发送器集成

  1. 按照 Filebeat 快速入门
  2. 将以下配置添加到您的 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: ~

有关更多信息,请参阅 Filebeat 参考