我是新來的日誌存儲和grok,我需要解析非常自定義的日誌文件。我無法在任何地方找到一個很好的教程來完成此任務。嘗試了系統日誌的例子,但它不適用於我的情況。Logstash Grok解析器
例子:
11月19日0時06分37秒SRV-FE-05 SSH服務器-G3:2037 Sft_server_open_dir,「2037 Sft_server_open_dir,目錄名稱:/首頁/文件夾1 /輸入,文件句柄:007800B000782170, 「成功」,會話ID:162351"
我期待的項目提取:
- 時間戳:11月19日0時06分37秒將被添加到當前年份,存儲在彈性搜索時間戳。 162351從會話Id:162351
任何幫助或方向,將不勝感激。
接着我想出了這個模式的答案:
%{SYSLOGTIMESTAMP:logTimestamp} %{USERNAME:sftpServer} %{USERNAME:processName}: %{INT:operationType} %{WORD}, \"%{INT} %{WORD}, %{WORD} %{WORD}: /%{WORD}/%{WORD:clientName}/%{WORD}, %{WORD} %{WORD}: %{WORD:submissionId}, \"%{WORD:status}\", %{WORD}-%{WORD}: %{INT:sessionId}
我的2分新的問題是:
- 效率如何呢?我的意思是讓它更高效的方法是什麼?
感謝您的指導,有沒有關於定義自定義模式的任何教程?以我的日誌行爲例:%{SYSLOGTIMESTAMP:logTimestamp}%{SPACE}%{USERNAME:sftpServer}%{SPACE}%{USERNAME:sftpProcessName}%{GREEDYDATA:message},但找不到方法在「:」字符之後繼續,因爲它不在常用模式中。我如何定義自己的模式並在grok匹配器中使用它們? –
您可以將文字放入您的圖案中。對於單個空間,我更願意使用「」而不是%{空格}。您也可以在您的圖案中放置冒號,例如%{WORD}:%{WORD}。 –