Nginx 액세스 로그를 읽는 예이다.

<source>
  @type tail
  path /path/to/input/file
  <parse>
    @type nginx
    keep_time_key true
  </parse>
</source>

내장 파서 목록

regexp
apache2
apache_eror
nginx
syslog
csv
tsv
ltsv
json
msgpack
multiline
none

<parse> 파서를 지원하는 입력 플러그인 목록

in_tail
in_tcp
in_udp
in_syslog
in_http

regexp

정규 표현식으로 JSON으로 변환할 수 있다.

<parse>
  @type regexp
  expression \\[(?<time>[^\\]]*)\\] (?<host>[^ ]*) [^ ]* [^ ]* (?<method>\\S+) (?<path>\\S+) (?<version>\\S+) (?<code>\\S+)
</parse>

# 원본
[2023-08-09 09:24:59,319] 46.174.191.28 - - GET / HTTP/1.1 404

# 결과
time	2023-08-09 12:29:15,102
host	127.0.0.1
method	GET
path	/v1/color/red
version	HTTP/1.1
code	200