- Logstash 輸入階段
- Logstash - 收集日誌
- Logstash - 支援的輸入
- Logstash 解析和轉換
- Logstash - 日誌解析
- Logstash - 過濾器
- Logstash - 日誌轉換
- Logstash 輸出階段
- Logstash - 輸出階段
- Logstash - 支援的輸出
- Logstash 高階主題
- Logstash - 外掛
- Logstash - 監控 API
- Logstash - 安全性和監控
- Logstash 有用資源
- Logstash - 快速指南
- Logstash - 有用資源
- Logstash - 討論
Logstash - 日誌解析
Logstash 使用輸入外掛接收日誌,然後使用過濾器外掛解析和轉換資料。日誌的解析和轉換是根據輸出目標系統中存在的系統進行的。Logstash 解析日誌資料,僅轉發所需欄位。之後,這些欄位將轉換為目標系統相容且易於理解的形式。
如何解析日誌?
日誌解析是透過使用**GROK**(知識圖形表示)模式進行的,您可以在 Github 上找到它們:
https://github.com/elastic/logstash/tree/v1.4.2/patterns.
Logstash 將日誌資料與指定的 GROK 模式或模式序列匹配以解析日誌,例如“%{COMBINEDAPACHELOG}”,這通常用於 Apache 日誌。
解析後的資料結構更清晰,更易於搜尋和執行查詢。Logstash 在輸入日誌中搜索指定的 GROK 模式,並提取日誌中的匹配行。您可以使用 GROK 偵錯程式來測試您的 GROK 模式。
GROK 模式的語法為 %{SYNTAX:SEMANTIC}。Logstash GROK 過濾器採用以下形式:
%{PATTERN:FieldName}
這裡,PATTERN 代表 GROK 模式,fieldname 是欄位的名稱,它表示輸出中解析的資料。
例如,使用線上 GROK 偵錯程式 https://grokdebugger.com/
輸入
日誌中的一行示例錯誤:
[Wed Dec 07 21:54:54.048805 2016] [:error] [pid 1234:tid 3456829102] [client 192.168.1.1:25007] JSP Notice: Undefined index: abc in /home/manu/tpworks/tutorialspoint.com/index.jsp on line 11
GROK 模式序列
此 GROK 模式序列與日誌事件匹配,該事件包括時間戳、日誌級別、程序 ID、事務 ID 和錯誤訊息。
\[(%{DAY:day} %{MONTH:month} %{MONTHDAY} %{TIME} %{YEAR})\] \[.*:%{LOGLEVEL:loglevel}\]
\[pid %{NUMBER:pid}:tid %{NUMBER:tid}\] \[client %{IP:clientip}:.*\]
%{GREEDYDATA:errormsg}
輸出
輸出採用 JSON 格式。
{
"day": [
"Wed"
],
"month": [
"Dec"
],
"loglevel": [
"error"
],
"pid": [
"1234"
],
"tid": [
"3456829102"
],
"clientip": [
"192.168.1.1"
],
"errormsg": [
"JSP Notice: Undefined index: abc in
/home/manu/tpworks/tutorialspoint.com/index.jsp on line 11"
]
}
廣告