我正在使用 filebeat 将日志文件检索到 Elastic Cloud。我想将错误和 Java 异常放在一个文档中,而不是每行多个。我设法让它在文本日志文件上工作,但它似乎不适用于容器日志。
这是我的 filebeat.yml 上的 docker 配置:
...
filebeat.inputs:
- type: container
enabled: true
paths:
- '/var/lib/docker/containers/*/*.log'
pipeline: docker
parsers:
- multiline:
type: pattern
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
...
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata:
host: "unix:///var/run/docker.sock"
- add_kubernetes_metadata: ~
- decode_json_fields:
fields: ["message"]
target: "json"
overwrite_keys: true
通常的日志消息如下所示:
2023-05-10 10:18:31.990 INFO 1 --- XXXX