grok是一種採用組合多個預定義的正則表達式,用來匹配分割文本並映射到關鍵字的工具。通常用來對日誌數據進行預處理。
graylog 集成了 grok ,可以使用grok表達式 對日誌進行 拆分匹配。
1.grok調試網址 :http://grokconstructor.appspot.com/ (這個是外國的網址,需要科學上網進行瀏覽。)
進入grok調試地址後 ,點擊 Matcher 按鈕, 進入調試界面。點擊 randomExample 可以 查看 教程案例。
這個是 可以寫 自定義的表達式, 上面是勾選的grok 相關聯的表達式庫 ,可以將具體的表達式 粘貼出來 ,自定義表達式規則。
然後 在這一欄 可以使用自定義的表達式,並制定別名(注意不要和 已存在的表達式名稱衝突。)
組合需要注意的點: 兩個匹配之間的空格 可能需要 可能 不需要 ,特殊字符需要部分 轉義,注意組合最後是否有空格 或者製表符。
下面 給出 一個 組合 eg:
DDOS %{INT:seqno}\|%{IPV4:ip_dst_addr}\|%{NDATESTAMP:timestamp}\|%{NDATESTAMP:endtime}\|%{NWORD:type}\|%{INT:pktbytes}\|%{INT:pktnum}\|
2. 上面表達式測試 通過後嗎,就可以將 自定義的表達式 加入 graylog 中了
在表達式中添加 grok 表達式 的流程:(科學上網有可能導致 你剛剛搭建的 graylog 訪問不了,如果完成了 grok 的頁面調試,就可以 停止 科學上網了)
System->>grok Pattern->>Create Pattern
點擊 Save 保存 ,及 創建一條表達式。
具體 使用:
首先 查詢出 一條信息 ,選中 需要 匹配的字段 ,點擊 Grok pattern ,將進入如下界面:
右側 的 Filter pattern 列表中 將會出現 你剛剛添加的表達式,點擊 Add 相關聯的 表達式 會被添加到 左側的 Grok pattern 中,可以點擊 下方的 測試 看看 自己的表達式 是否能 成功 匹配到信息。(之後 graylog 在收到的信息 就會 通過 你添加的 這條 過濾,將 該字段 按過濾的條件進行分解。)