這篇不講 ELK / EFK 的大道理單純看到 Grok 的線上工具覺得要記下來 …
這是在翻 logz.io 文件「A Beginner’s Guide to Logstash Grok」看到的,ELK 最麻煩的除了 index 就是 filter 了,除了在 logz.io 挖到一些經驗以外,還挖到 Grok Debugger 這個線上工具。
Grok Debugger 是專門用來做 Grok 來確認你寫的 filter pattern 是不是可以 work,廢話不多說直接拿一個範例 input / output
Input
Apr 16 06:25:04 u02 systemd[1]: kibana.service: Main process exited, code=exited, status=1/FAILURE
Pattern
%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}
Output
{ "syslog_timestamp": [ [ "Apr 16 06:25:04" ] ], "MONTH": [ [ "Apr" ] ], "MONTHDAY": [ [ "16" ] ], "TIME": [ [ "06:25:04" ] ], "HOUR": [ [ "06" ] ], "MINUTE": [ [ "25" ] ], "SECOND": [ [ "04" ] ], "syslog_hostname": [ [ "u02" ] ], "IPORHOST": [ [ "u02" ] ], "HOSTNAME": [ [ "u02" ] ], "IP": [ [ null ] ], "IPV6": [ [ null ] ], "IPV4": [ [ null ] ], "syslog_program": [ [ "systemd" ] ], "syslog_pid": [ [ "1" ] ], "syslog_message": [ [ "kibana.service: Main process exited, code=exited, status=1/FAILURE" ] ] }
切好就可以拿去餵 index 了 …