Logstash在Linux上安裝部署

2022-08-02 09:36:09 字數 3620 閱讀 6172

logstash 簡介:

logstash 是乙個實時資料收集引擎,可收集各型別資料並對其進行分析,過濾和歸納。按照自己條件分析過濾出符合資料匯入到視覺化介面。它可以實現多樣化的資料來源資料全量或增量傳輸,資料標準格式處理,資料格式化輸出等的功能,常用於日誌處理。工作流程分為三個階段:

(1)input資料輸入階段,可接收oracle、mysql、postgresql、file等多種資料來源;

(2)filter資料標準格式化階段,可過濾、格式化資料,如格式化時間、字串等;

(3)output資料輸出階段,可輸出到elasticsearch、mongodb、kfka等接收終端。

那麼,接下來將會對每個階段進行講解。

wget

2、將安裝包上次到伺服器,然後解壓安裝包,例如解壓到:/usr/local/

tar –zxvf logstash-6.6.0.tar.gz 

重新命名安裝目錄

mv logstash-6.6.0

logstash

注:此處只是簡單測試下logstash的基本功能

1.接收控制台輸入,logstash解析輸出到控制台 

在logstash目錄下建立test資料夾:

1

[root@cdh4 logstash]# mkdir test

2[root@cdh4 logstash]# cd test

3 [root@cdh4 test]# vim std_std.conf

在test目錄下建立 std_std.conf 檔案,新增內容:

1

input 4}

5output

8 }

然後到bin目錄下啟動logstash(基於std_std.conf):

1 ./logstash -f ../test/std_std.conf
-f 是指基於配置檔案的路徑:

控制台輸入測試:

2.從檔案讀取,logstash解析輸出到控制台 

我是從取出tomcat的當天access_log作為讀取檔案,沒有該檔案的可以複製下面一段內容做成測試檔案

在test目錄下建立 file_std.conf 檔案,新增內容:

1

input6}

78filter - - \[%\] \"% % %\" % % \"%\" \"%\""12}

1314 remove_field=>"message"15}

16date19}

2021

output

25 }

這個配置檔案相對比較複雜,而且我們一般在使用elk的時候logstash的配置檔案基本也是和這個類似,大同小異了,這裡對關鍵部分詳細解說一下。更深入的內容和使用方式,大家可以到elastic官網或者到logstash的最佳實戰頁面去看,**是:

input/file/path:這裡指定了要對哪個日誌檔案進行掃瞄。如果希望掃瞄多個檔案,可以使用*這個路徑萬用字元;或者使用多個日誌路徑以陣列形式提供(path=>[「outer-access.log」,」access.log」]);或者直接給定乙個目錄,logstash會掃瞄所有的檔案,並監聽是否有新檔案。

filter/grok/match/message:裡面的data和httpdate都是grok語法內建的正規表示式,data匹配任意字元,httpdate匹配joda型別的日期格式字元。上例中」[「是匹配「[」。

filter/grok/match/date:是對httpdate日期格式的解釋,joda可以支援很多複雜的日期格式,需要在這裡指明才能正確匹配。

remove_field=>」message」:用處是去掉原有的整個日誌字串,僅保留filter解析後的資訊。你可以試著去掉這一句就明白他的用處了。

然後啟動就可以直接看到解析輸出到控制台的內容了:

3.接收控制台輸入,logstash解析輸出到elasticsearch集群 

在test目錄下建立 file_es.conf 檔案,新增內容:

1

input3}

4output

9 stdout

10 }

然後執行測試:

1 ./logstash -f ../test/file_es.conf
可以看到控制台出現了es-json:

再通過head外掛程式檢視這些內容有沒有存進去:

可以看到,一切ok

Linux 在Linux上安裝VNC

有幸能夠親自在伺服器上面操作一下,這篇部落格來說一說,如何在linux上安裝vnc 首先要知道的是,vnc是什麼。vnc virtual network computing 一種使用rfb協議的顯示屏畫面分享及遠端操作軟體。它與作業系統無關,因此可以跨平台使用。例如,可以用windows通過vnc ...

在Linux上執行C

眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...

在Linux上執行C

眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...