該系列博客是Logstash的學習應用,部分示例來自官方文檔。
參考:
官方文檔
拼接在一起多個輸入和輸出插件編輯
一. 簡介
示例參考官網,在本部分中,您將創建一個Logstash管道,該管道從控制檯和Filebeat客戶端獲取輸入,然後將信息發送到控制檯,並將信息直接寫到文件中。
二. 實現
可以先參看上一篇博客,這示例基於它基礎上擴展。(也可以忽略)
【弄nèng - Logstash】入門篇(二)—— 使用Logstash解析Apache Web日誌(使用Filebeat採集數據)
2.1 下載安裝Logstash
下載地址:傳送門
解壓即可(需要先安裝JDK8)
2.2 配置輸入端Filebeat
1.準備日誌文件
下載地址: Here
解壓到E:\technology\elk\beat\目錄下(任意目錄即可)
2.安裝Filebeat
Logstash的默認安裝包括Beats input插件。Beats輸入插件使Logstash能夠從Elastic Beats框架接收事件
-
2.1 下載安裝安裝很簡單,下載zip包解壓即可,下載地址: 傳送門
-
2.2 解壓之後修改filebeat.yml,用以下幾行替換內容。確保paths指向logstash-tutorial.log您先前下載的示例Apache日誌文件 。
filebeat.prospectors:
- type: log
paths:
- E:\technology\elk\beat\logstash-tutorial.log\*
fields:
level: debug
output.logstash:
hosts: ["localhost:5044"]
output.logstash將嘗試連接端口5044
paths 處理的文件的絕對路徑
level: debug 代表在每個event中添加level=debug字段
- 2.3 運行Filebeat,在logstash啓動之後再啓動Filebeat,不然Filebeat會提示連接不到5044
./filebeat -e -c filebeat.yml -d "publish"
*如果啓動filebeat後沒有數據輸出,可以手動改下讀取的日誌文件,因爲filebeat默認每次從上次讀取的offset後開始讀取 *
2.3 配置logstash
1. 編寫logstash配置文件
在logstash-6.0.0\bin創建配置文件(任意目錄即可,啓動時需要指定目錄)
filebeat_std_file.conf
input {
stdin {
}
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
stdout {
codec => rubydebug
}
file {
path => "E:\test.txt"
}
}
輸入源有兩個,控制檯和beat
輸出源有兩個,控制檯和file
2.啓動logstash
cd到Logstash的根目錄,執行啓動命令 (windows用cmd終端進入)
cd logstash-6.0.0
bin/logstash -f filebeat_std_file.conf
- -e表示在啓動時直接指定pipeline配置
- -f表示使用配置文件啓動
- –config.test_and_exit 選項解析配置文件並報告任何錯誤
- –config.reload.automatic 選項允許自動重新加載配置,這樣您就不必每次修改配置文件時都要停止並重新啓動Logstash
3.測試
啓動成功filebeat終端顯示如下:
logstash終端顯示如下:
在logstash控制檯輸入123之後,在文件中和控制檯就可以看到效果。
文件內容:
源碼地址
IT-CLOUD-LOGSTASH :LOGSTASH教程源碼。博文在本CSDN logstash系列中。
項目推薦
IT-CLOUD :IT服務管理平臺,集成基礎服務,中間件服務,監控告警服務等。
IT-CLOUD-ACTIVITI6 :Activiti教程源碼。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源碼。博文在本CSDN elasticsearch系列中。
IT-CLOUD-KAFKA :spring整合kafka教程源碼。博文在本CSDN kafka系列中。
IT-CLOUD-KAFKA-CLIENT :kafka client教程源碼。博文在本CSDN kafka系列中。開源項目,持續更新中,喜歡請 Star~