Filebeat 将多行 postgres 日志作为一个日志发送到仅针对此特定源设置的 filebeat
Filebeat send mulltiline postgres log as one log to filebeat set only to this specific source
例如我有一些 sql
日志:
< 2019-03-13 09:50:50.431 CET >WYRAŻENIE: SELECT
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
< 2019-03-13 09:58:50.943 CET >UWAGA: detail: RUCH_KRADZ, 0.05, sum: 0.25, date: 2019-03-03
在 kibana 中,每一行都是一个单独的日志。
在 filebeat 中我有:
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /opt/tomcat/logs/*.json
- /var/lib/psql/logs/*
我只希望 /var/lib/psql/logs/*
日志应该作为日期之间的一个。所以在上面的例子中,我们应该在 Kibana 中有 2 个日志,而不是 5 个——那是行数。
在 filebeat 配置中,您可以定义多个输入部分,每个部分都可以有自己的选项
multiline.pattern
指定要匹配的正则表达式模式,消息的第一行以括号开头 (<
)
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/tomcat/logs/*.json
- type: log
enabled: true
paths:
- /var/lib/psql/logs/*
multiline.pattern: '^<'
multiline.negate: true
multiline.match: after
在此处查看有关 Manage multiline messages
的更多详细信息
例如我有一些 sql
日志:
< 2019-03-13 09:50:50.431 CET >WYRAŻENIE: SELECT
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
< 2019-03-13 09:58:50.943 CET >UWAGA: detail: RUCH_KRADZ, 0.05, sum: 0.25, date: 2019-03-03
在 kibana 中,每一行都是一个单独的日志。 在 filebeat 中我有:
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /opt/tomcat/logs/*.json
- /var/lib/psql/logs/*
我只希望 /var/lib/psql/logs/*
日志应该作为日期之间的一个。所以在上面的例子中,我们应该在 Kibana 中有 2 个日志,而不是 5 个——那是行数。
在 filebeat 配置中,您可以定义多个输入部分,每个部分都可以有自己的选项
multiline.pattern
指定要匹配的正则表达式模式,消息的第一行以括号开头 (<
)
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/tomcat/logs/*.json
- type: log
enabled: true
paths:
- /var/lib/psql/logs/*
multiline.pattern: '^<'
multiline.negate: true
multiline.match: after
在此处查看有关 Manage multiline messages
的更多详细信息