grok可以解析任意的文本並將其結構化。
該工具在針對syslog, apache或者其他的webserver或者例如mysql跟其他壹些雜七雜八的東西會特別好用=- =。而且對log的格式化僅僅是為了數據顯示更加人性化,不會增加計算消耗。
Logstash本身針對不同語言有120種默認的匹配模式(實際上很容易看到是正則表達式),妳也可以寫妳自己的表達式並且提壹個pull request;
Grok 通過將文本標簽與log內容進行匹配實現格式化。
格式:%{SYNTAX:SEMANTIC}
SYNTAX是標簽的名字,SEMANTIC是通過標簽映射得到的數據的存放變量。
默認情況下所有字段的存儲類型為String,如果妳希望其他的存儲類型
%{NUMBER:num:int} 使用這種匹配將產生int類型的字段
直接用這個就能自定義壹個正則把數據存入field_name.
也可以寫文件自定義壹個pattern
最常用的就是對message字段進行格式化
}
如果想對同壹個字段多次格式化
其中"Duration: "是正則直接匹配相對應的字符,%{}是grok的匹配標簽,前者為正則後者為字段
沒錯很好用,每壹款filter都可以加這個玩意兒
字面意思, 刪除某些字段
值得註意的是某些標簽的使用需要在過濾器成功工作的前提下,如果妳的標簽沒有效果,記得檢查壹下前面的過濾主體(有的標簽必須在有過濾得情況下才能起作用)
該過濾器的目的是將多條消息的數據聚合成壹條消息,提供"code"字段可以對int屬性進行自定義的增加減少,然後丟到某壹個最終消息中去,然後進入output過程。
不過為了使用這個過濾器,妳需要將Logstash的過濾器參數設置為1 (-w 1 flag)這樣該過濾器才能正確工作。否則會掉頭發。
總的來說是壹個很迷的過濾器,請盡量在來源或者Kibana中完成消息聚合, 使用該Filter極其麻煩。
拒絕翻譯這個東西 = =
英文文檔
變形(?)過濾器。 允許妳對字段做壹般的改變。 妳可以 改名 , 刪除 , 替代 , 修改 收到消息中的參數。
如果妳認真讀了上面的妳會發現grok也提供刪除字段的功能。實際上相當多的過濾器提供了大量的重復功能,不過我認為針對不同操作盡量調用相對應的過濾器會令配置簡潔明了。
其中涉及到True False有壹些轉換的規則,詳情請從title下面的英文文檔鏈接點進去。(沒錯自己看吧hhhh)
妳會發現有兩個反斜杠,這沒錯,妳需要給正則裏面的所有反斜杠加反斜杠。。。我知道這有點繞口hhh。
hash也可以merge
反正妳自己玩=。=
日期過濾器是壹個用來解析日期格式的過濾器,並將解析出來的日期作為logstash的時間戳使用。
栗子
日期過濾器是壹個對整理消息重新回填舊數據非常重要的過濾器。如果妳沒有在妳的消息中正確的獲取到時間,那麽之後對他們的搜索很可能會失去順序。
如果沒有該過濾器並且時間中沒有設置時間戳,logstash會根據他首次獲取到消息的時間設置時間戳,比如從文件中讀取消息,那麽每次讀取的時間將會作為時間戳。