Logstash入門簡介

Logstash入門簡介

介紹

Logstash是一個開源的服務器端數據處理管道,能夠同時從多個來源採集數據,轉換數據,然後將數據發送到最喜歡的存儲庫中(我們的存儲庫當然是ElasticSearch)

image-20200924213006328

我們回到我們ElasticStack的架構圖,可以看到Logstash是充當數據處理的需求的,當我們的數據需要處理的時候,會將它發送到Logstash進行處理,否則直接送到ElasticSearch中

image-20200924213319642

用途

Logstash可以處理各種各樣的輸入,從文檔,圖表中=,數據庫中,然後處理完後,發送到

image-20200924213350345

部署安裝

Logstash主要是將數據源的數據進行一行一行的處理,同時還直接過濾切割等功能。

image-20200924214152859

首先到官網下載logstash:https://www.elastic.co/cn/downloads/logstash

選擇我們需要下載的版本:

image-20200924215805219

下載完成後,使用xftp工具,將其丟入到服務器中

#檢查jdk環境,要求jdk1.8+
java -version

#解壓安裝包
tar -xvf logstash-7.9.1.tar.gz

#第一個logstash示例
bin/logstash -e 'input { stdin { } } output { stdout {} }'

其實原來的logstash的作用,就是爲了做數據的採集,但是因爲logstash的速度比較慢,所以後面使用beats來代替了Logstash,當我們使用上面的命令進行啓動的時候,就可以發現了,因爲logstash使用java寫的,首先需要啓動虛擬機,最後下圖就是啓動完成的截圖

image-20200924221006644

測試

我們在控制檯輸入 hello,馬上就能看到它的輸出信息

image-20200924221052791

配置詳解

Logstash的配置有三部分,如下所示

input { #輸入
stdin { ... } #標準輸入
}
filter { #過濾,對數據進行分割、截取等處理
...
}
output { #輸出
stdout { ... } #標準輸出
}

輸入

  • 採集各種樣式、大小和來源的數據,數據往往以各種各樣的形式,或分散或集中地存在於很多系統中。
  • Logstash 支持各種輸入選擇 ,可以在同一時間從衆多常用來源捕捉事件。能夠以連續的流式傳輸方式,輕鬆地從您的日誌、指標、Web 應用、數據存儲以及各種 AWS 服務採集數據。

image-20200924221256569

過濾

  • 實時解析和轉換數據
  • 數據從源傳輸到存儲庫的過程中,Logstash 過濾器能夠解析各個事件,識別已命名的字段以構建結構,並將它們轉換成通用格式,以便更輕鬆、更快速地分析和實現商業價值。

image-20200924221459397

輸出

Logstash 提供衆多輸出選擇,您可以將數據發送到您要指定的地方,並且能夠靈活地解鎖衆多下游用例。

image-20200924221528089

讀取自定義日誌

前面我們通過Filebeat讀取了nginx的日誌,如果是自定義結構的日誌,就需要讀取處理後才能使用,所以,這個時候就需要使用Logstash了,因爲Logstash有着強大的處理能力,可以應對各種各樣的場景。

日誌結構

2019-03-15 21:21:21|ERROR|1 讀取數據出錯|參數:id=1002

可以看到,日誌中的內容是使用“|”進行分割的,使用,我們在處理的時候,也需要對數據做分割處理。

編寫配置文件

vim mogublog-pipeline.conf

然後添加如下內容

input {
    file {
        path => "/soft/beats/logs/app.log"
        start_position => "beginning"
    }
}
filter {
    mutate {
        split => {"message"=>"|"}
    }
}
output {
    stdout { codec => rubydebug }
}

啓動

#啓動
./bin/logstash -f ./mogublog-pipeline.conf

然後我們就插入我們的測試數據

echo "2019-03-15 21:21:21|ERROR|讀取數據出錯|參數:id=1002" >> app.log

然後我們就可以看到logstash就會捕獲到剛剛我們插入的數據,同時我們的數據也被分割了

image-20200924224710757

輸出到Elasticsearch

我們可以修改我們的配置文件,將我們的日誌記錄輸出到ElasticSearch中

input {
    file {
        path => "/soft/beats/logs/app.log"
        start_position => "beginning"
    }
}
filter {
    mutate {
        split => {"message"=>"|"}
    }
}
output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
    }
}

然後在重啓我們的logstash

./bin/logstash -f ./mogublog-pipeline.conf

然後向日志記錄中,插入兩條數據

echo "2019-03-15 21:21:21|ERROR|讀取數據出錯|參數:id=1002" >> app.log
echo "2019-03-15 21:21:21|ERROR|讀取數據出錯|參數:id=1002" >> app.log

最後就能夠看到我們剛剛插入的數據了

image-20200924230314560

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章