filestream で multiline を使う方法
type: log
の場合はmultiline
をそのまま記述できるが、filestream
の場合は記述の仕方がことなり、parsers
オプションで定義する必要がある。
filebeat.inputs:
- type: filestream
...(中略)
parsers:
- multiline: # 以下インデントがなぜか必須なので注意
#
# 複数行ログの設定
#
# 行頭がタイムスタンプじゃない場合は複数行ログの2行目以降として扱い、
# 先頭行の後ろに連結させる
#
# type: pattern
type: pattern
# pattern: 行頭がYYYY-MM-DD
pattern: ^\d{4}-\d{2}-\d{2}
# negate: true patterを否定にする
negate: true
# match: after 正規のログ1行目に続けて連結する
match: after
output.logstash:
hosts: ["logstash-host:5044"]
- multiline:
以下はスペース 2 つ分のインデントが必須なので注意すること。Issue のコメントではドキュメントの不備だとか。
参考