這篇不講 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 了 …
