fluentdのtsvパーサーを使う
fluentdのtsvパーサーを使った時のメモ
apacheのcustomログをfluentdで読み込む。
fluentdでapacheログをin_tailで読み取るけど、大体のところCustomLogの設定でフォーマットがデフォルト出ないので、 tsvパーサーを使って読み込むように設定します。
apacheのLogFormat
LogFormat "%h\t%l\t%u\t%t\t\"%r\"\t%>s\t%b\t\"%{Referer}i\"\t\"%{User-Agent}i\"\t%D\t%{numFound}n"
td-agent.conf
LogFormatの指定に合わせて、td-agent.confはこんな感じになります。
<source>
@type tail
path /var/log/httpd/access_log
pos_file /tmp/access.log.pos
tag apache.access
<parse>
@type tsv
keys host,client,user,date,request,status,byte,referer,ua,duration,numfound
time_key date
</parse>
</source>
fluentdの出力
出力にこんな感じで表示されればOK
2019-06-07T08:27:55+00:00 apache.access {"host":"172.18.0.1","client":"-","user":"-","date":"[07/Jun/2019:08:27:55 +0000]","request":"\"GET /2333 HTTP/1.1\"","status":"404","byte":"202","referer":"\"-\"","ua":"\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\"","duration":"468","numfound":"-"}