Below you will find pages that utilize the taxonomy term “Grok”
Posts
Grok Debugger
要測試 Grok pattern,可以借助一些線上工具,像是 Grok Debugger。
使用上只要在 Input 部份帶入要被 Grok 處理的資料,Pattern 部份帶入要用來處理資料的 Grok pattern 即可。
像是要處理 IP 資料,就可以在 Input 部份帶入要處理的 IP,在 Pattern 部份帶入 %{IP:ip} 這樣的 Grok pattern,下方即會顯現經由 Grok pattern 處理完的結果,也就是 Logstash 的 field,以及其對應的資料。
處理完的結果如果資訊太多不易閱讀,可勾選 Named Captures Only 選項。
若要增加自定義的 Grok pattern,這邊也可勾選 Add custom patterns 選項進行設定。
除了 Grok pattern 的測試外,Grok Debugger 也提供一些定義好的 Grok pattern 可供參考,點選上方的連接切換至 Patterns 頁面即可。
Link Grok Debugger
read morePosts
Grok patterns
使用 Logstash 免不了會用到 Grok patterns,Grok patterns 其實也就只是用預先定義好的正規表示式來設定怎麼匹配,以及匹配成功後的 Group name,讓設定變得更為簡易、直覺。
Grok patterns 的語法為…
%{SYNTAX:SEMANTIC} SYNTAX 就是預先定義好的正規表示式,SEMANTIC 就是正規表示式匹配後的 Group name,等同於使用下面這樣的正規表示式語法。
(?<<GroupName>><RegexPattern>) SYNTAX 的設定可參閱 logstash/grok-patterns at v1.4.2 · elastic/logstash,參閱設定可更加了解要怎樣使用 SYNTAX,以及有助了解設定的 SYNTAX 為何會無法正確的匹配。
USERNAME [a-zA-Z0-9._-]+ USER %{USERNAME} INT (?:[+-]?(?:[0-9]+)) BASE10NUM (?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+))) NUMBER (?:%{BASE10NUM}) BASE16NUM (?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+)) BASE16FLOAT (?<![0-9A-Fa-f.])(?:[+-]?(?:0x)?(?:(?:[0-9A-Fa-f]+(?:\.[0-9A-Fa-f]*)?)|(?:\.[0-9A-Fa-f]+))) POSINT (?:[1-9][0-9]*) NONNEGINT (?:[0-9]+) WORD \w+ NOTSPACE \S+ SPACE \s* DATA .*? GREEDYDATA .* QUOTEDSTRING (?>(?<!\)(?>"(?>\.|[^\"]+)+"|""|(?>'(?>\.|[^\']+)+')|''|(?>`(?>\.|[^\`]+)+`)|``)) UUID [A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12} # Networking MAC (?:%{CISCOMAC}|%{WINDOWSMAC}|%{COMMONMAC}) CISCOMAC (?:(?:[A-Fa-f0-9]{4}\.){2}[A-Fa-f0-9]{4}) WINDOWSMAC (?:(?:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}) COMMONMAC (?
read more