我正在使用 filebeat 将本地日志文件中的数据发送到 graylog,与原始文件相比,我的存储开销是 20 倍。有大量的元数据字段,但我似乎无法摆脱它们。我尝试了许多删除字段的方法,例如:
processors:
- drop_fields:
fields: ["ecs.version", "agent.version", "agent.type", "agent.id", "agent.hostname", "input.type"]
你们有没有什么建议,可以删除除时间戳和已发送的原始日志之外的所有内容?我不需要任何像 ID 或代理类型这样的信息,因为它们都来自同一个地方。
答案1
为了保证 Sidecar 正常运行,Graylog 需要 2 个元数据字段:collector_node_id
和node.name
,因此您不能删除它们。
Filebeat 本身防止移除领域的@timestamp
。
并且@metadata_*
字段由Logstash且無法被刪除。
除此之外,您还可以删除所有其他 Filebeat 字段。以下是您可以在 filebeat.yml 中执行此操作的配置片段:
processors:
- drop_fields:
fields: [
"agent.ephemeral_id",
"agent.id",
"agent.type",
"agent.version",
"ecs.version",
"host.name",
"input.type",
"log.file.path",
"log.offset"
]