Logstash入门简介
Logstash入門簡介
介紹
Logstash是一個開源的服務器端數(shù)據(jù)處理管道,能夠同時從多個來源采集數(shù)據(jù),轉換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到最喜歡的存儲庫中(我們的存儲庫當然是ElasticSearch)
我們回到我們ElasticStack的架構圖,可以看到Logstash是充當數(shù)據(jù)處理的需求的,當我們的數(shù)據(jù)需要處理的時候,會將它發(fā)送到Logstash進行處理,否則直接送到ElasticSearch中
用途
Logstash可以處理各種各樣的輸入,從文檔,圖表中=,數(shù)據(jù)庫中,然后處理完后,發(fā)送到
部署安裝
Logstash主要是將數(shù)據(jù)源的數(shù)據(jù)進行一行一行的處理,同時還直接過濾切割等功能。
首先到官網(wǎng)下載logstash:https://www.elastic.co/cn/downloads/logstash
選擇我們需要下載的版本:
下載完成后,使用xftp工具,將其丟入到服務器中
#檢查jdk環(huán)境,要求jdk1.8+ java -version#解壓安裝包 tar -xvf logstash-7.9.1.tar.gz#第一個logstash示例 bin/logstash -e 'input { stdin { } } output { stdout {} }'其實原來的logstash的作用,就是為了做數(shù)據(jù)的采集,但是因為logstash的速度比較慢,所以后面使用beats來代替了Logstash,當我們使用上面的命令進行啟動的時候,就可以發(fā)現(xiàn)了,因為logstash使用java寫的,首先需要啟動虛擬機,最后下圖就是啟動完成的截圖
測試
我們在控制臺輸入 hello,馬上就能看到它的輸出信息
配置詳解
Logstash的配置有三部分,如下所示
input { #輸入 stdin { ... } #標準輸入 } filter { #過濾,對數(shù)據(jù)進行分割、截取等處理 ... } output { #輸出 stdout { ... } #標準輸出 }輸入
- 采集各種樣式、大小和來源的數(shù)據(jù),數(shù)據(jù)往往以各種各樣的形式,或分散或集中地存在于很多系統(tǒng)中。
- Logstash 支持各種輸入選擇 ,可以在同一時間從眾多常用來源捕捉事件。能夠以連續(xù)的流式傳輸方式,輕松地從您的日志、指標、Web 應用、數(shù)據(jù)存儲以及各種 AWS 服務采集數(shù)據(jù)。
過濾
- 實時解析和轉換數(shù)據(jù)
- 數(shù)據(jù)從源傳輸?shù)酱鎯斓倪^程中,Logstash 過濾器能夠解析各個事件,識別已命名的字段以構建結構,并將它們轉換成通用格式,以便更輕松、更快速地分析和實現(xiàn)商業(yè)價值。
輸出
Logstash 提供眾多輸出選擇,您可以將數(shù)據(jù)發(fā)送到您要指定的地方,并且能夠靈活地解鎖眾多下游用例。
讀取自定義日志
前面我們通過Filebeat讀取了nginx的日志,如果是自定義結構的日志,就需要讀取處理后才能使用,所以,這個時候就需要使用Logstash了,因為Logstash有著強大的處理能力,可以應對各種各樣的場景。
日志結構
2019-03-15 21:21:21|ERROR|1 讀取數(shù)據(jù)出錯|參數(shù):id=1002可以看到,日志中的內容是使用“|”進行分割的,使用,我們在處理的時候,也需要對數(shù)據(jù)做分割處理。
編寫配置文件
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然后我們就插入我們的測試數(shù)據(jù)
echo "2019-03-15 21:21:21|ERROR|讀取數(shù)據(jù)出錯|參數(shù):id=1002" >> app.log然后我們就可以看到logstash就會捕獲到剛剛我們插入的數(shù)據(jù),同時我們的數(shù)據(jù)也被分割了
輸出到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然后向日志記錄中,插入兩條數(shù)據(jù)
echo "2019-03-15 21:21:21|ERROR|讀取數(shù)據(jù)出錯|參數(shù):id=1002" >> app.log echo "2019-03-15 21:21:21|ERROR|讀取數(shù)據(jù)出錯|參數(shù):id=1002" >> app.log最后就能夠看到我們剛剛插入的數(shù)據(jù)了
總結
以上是生活随笔為你收集整理的Logstash入门简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电动汽车动力系统整车仿真,具有双向DCD
- 下一篇: 数据库 | PostgreSQL从入门到