1. 概述
logspout收集資料以後,就會把資料傳送給logstash進行處理,本文主要講解logstash的input, filter, output處理
2. input
資料的輸入處理
支援tcp,udp等協議
2.1. 語法
基本語法如下:
input}
2.2. multiline
有時候日誌是這樣多行顯示的:
預設情況下logstash會把一行日誌轉換成elasticsearch的乙個doc,上面這個日誌就會儲存成15條日誌。這樣就不能滿足我們的需求,我們只是想要一條日誌
我們可以這麼配置input:
input"negate =>
true what => "previous"
} } }
紅色**的作用是:匹配到以[2019-10-08 16:57:42開頭的一行日誌作為previous,不是以這個格式開頭的將作為子行出現,然後把多行記錄合併成一行記錄
3. filter
資料的過濾轉化處理
3.1. 語法
基本語法如下:
filter %" }
overwrite => [ "message" ]}}
3.2. grok正規化匹配
grok適合用來解析syslog,apache,mysql等日誌
假如你的日誌格式是這樣的
[2019-10-12 15:44:52 account 1 140058162291304 warning] hashcache::_rds_get, cache not existed!!! id_ls:
日誌的格式是這樣的:
"[%(asctime)s %(service)s %(process)d %(thread)d %(levelname)s] %(message)s
"
那麼針對這樣有特定格式的日誌,我們要怎樣提取這裡面的字段呢?
可以這麼配置你的filter:
filter % % % %\] %" }}}
}
使用grok的match正規表示式匹配可以方便的從message中提取字段
從elasticsearch可以發現增加了timestamp、server、pid、tid和log-level等字段。
附上官網文件:
# grok偵錯程式
# 官方文件
3.3. gsub字串替換
經過logspout處理以後,會增加一些metadata(container name, container id, etc)
紅色部分是logspout新增的:
如何去除這部分多餘的資料呢?
filter
}}
3.4. remove_filed刪除字段
elk是採用json字典的方式來儲存資料的
假如你不想要grop解析出來的msg_body欄位和test欄位,可以這麼操作,那麼最後儲存到elasticsearch那邊將不會出現這2欄位
filter
}}
3.5. kv過濾器解析kv資料
官方文件kv filter:
動態的解析kv可以很方便的支援日誌擴充套件,不需要後期去修改
filter
}}
這邊的配置意思是:從msg_body這個欄位去解析kv欄位,欄位的分隔符是"\t\t"
當然這也要求日誌寫入的時候需要採用"\t\t"來區分多個字段,類似這樣:
http_ip=127.0.0.1、http_uri=/account/v1/binding與http_method=post這三個欄位是採用'\t\t'分割的
這樣kv filter就會解析成功,並往doc裡面設定http_ip, http_uri,http_method這三個值:
4. output
過濾轉化後的資料的輸出處理
這裡是把資料儲存到elasticsearch的9200埠,index是"syslog-%"
output"
}stdout
}}
然後elasticsearch就能得到資料了
ELK 日誌分析系統
elk就是一套完整的日誌分析系統 elk logstash elasticsearch kibana 統一官網 elk模組說明 logstash 作用 用於處理傳入的日誌,負責收集 過濾和寫出日誌 logstash分為三個元件input,filter,output 輸入input 常用file,re...
ELK日誌分析系統簡介
當我們部署集群伺服器的時候,日誌檔案就會散落在多台伺服器上。檢視日誌資訊就需要到各個伺服器上去取和檢視,我們把這些日誌檔案歸集到乙個地方統一管理。這個時候elk系統出現了,elk是elasticsearch logstashh和kibana三個系統的首字母組合。當然elk不只是檢視日誌功能這麼簡單,...
部署elk日誌分析系統
日誌分析是運維工程師解決系統故障,發現問題的主要手段。日誌主要包括系統日誌 應用程 序日誌和安全日誌。系統運維和開發人員可以通過日誌了解伺服器軟硬體資訊 檢查配置過程中的 錯誤及錯誤發生的原因。經常分析日誌可以了解伺服器的負荷,效能安全性,從而及時採取措施糾 正錯誤。通常,日誌被分散的儲存在不同的裝...