Logstash 安裝配置使用


一、Windows下安裝運行

  官網下載,下載與elasticSearch同一個版本,zip格式。Logstash占用內存較大,我在使用的時候cpu一般都是沖到90%

1、CMD直接運行

創建一個基本的Logstash管道來測試Logstash設置。

解壓logstash ,並且在bin目錄下運行命令(參考下面命令):加入 -e 標志可以在命令行直接指定配置文件。

logstash -e "" 

或者:

logstash -e "input { stdin {} } output { stdout {} }"

注意:雙引號不能改成單引號否則可能會報:ERROR: Unknown command '{'

然后你會發現終端在等待你的輸入。沒問題,敲入 Hello World,回車,Logstash會將時間戳和IP地址信息加入輸出的消息。按下ctrl+C可以從命令行退出Logstash。

2、配置文件運行,並用bat文件

  進入bin目錄,新建文件 logstash_default.conf  內容如下:

input {
stdin{}
}

output {
stdout{}
elasticsearch {hosts=>"127.0.0.1:9200"} }

配置文件中定義了stdout和elasticsearch作為output,這樣的“多重輸出”即保證輸出結果顯示到屏幕上,同時也輸出到elastisearch中。

在bin目錄,新文件文件  run_default.bat  內容如下:

logstash -f logstash_default.conf

啟動 run_default.bat 啟動logstash。 等待cmd中出現:logstash api endpoint {:port=>9600 }    瀏覽器訪問:http://localhost:9600/

在CMD中輸入任何你想輸入的字符串。然后看下es中是否有了數據。

3、使用NSSM將Logstash安裝為Windows服務

  • 下載NSSM:http://www.nssm.cc/download
  • NSSM解壓,eg:E盤,進入到E:\nssm-2.24\win64 ,執行cmd

  • nssm install logstash,【nssm install <服務名> 例如:nssm install Elasticsearch(自定義服務名)】 彈出如下界面

Path: 填寫啟動文件路徑(${LOGSTASH_HOME}\bin\xxx.bat)
Startup directory : 填寫啟動文件目錄(${LOGSTASH_HOME}\bin)
Detail : 填寫服務名稱
Dependencies : 填寫此服務啟動需要依賴哪個服務(一般配置為要先啟動elasticsearch,再啟動logstash)

二、工作原理

  在logstash中,包括了三個階段:輸入input --> 處理filter(不是必須的) --> 輸出output

1、輸入:采集各種樣式、大小和來源的數據

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

2、過濾器:實時解析和轉換數據

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

3、輸出:選擇你的存儲,導出你的數據

盡管 Elasticsearch 是我們的首選輸出方向,能夠為我們的搜索和分析帶來無限可能,但它並非唯一選擇。

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

 

每個階段都由很多的插件配合工作,比如file、elasticsearch、Redis等等。

每個階段也可以指定多種方式,比如輸出既可以輸出到elasticsearch中,也可以指定到標准輸出stdout在控制台打印

三、命令行中常用的命令

  -f:通過這個命令可以指定Logstash的配置文件,根據配置文件配置logstash

  -e:后面跟着字符串,該字符串可以被當做logstash的配置(如果是“” 則默認使用stdin作為輸入,stdout作為輸出)

  -l:日志輸出的地址(默認就是stdout直接在控制台中輸出)

  -t:測試配置文件是否正確,然后退出。

logstash -f stdin.conf -t

 

四、用Logstash解析日志

   在現實世界中,一個Logstash管理會稍微復雜一些:它通常有一個或多個input,filter 和 output 插件。

在這一小節中,創建一個Logstash管道,並且使用Filebeat將Apache Web日志作為input,解析這些日志,然后將解析的數據寫到一個Elasticsearch集群中。你將在配置文件中定義管道,而不是在命令行中定義管道配置。

在開始之前,請先下載示例數據

1、配置Filebeat來發送日志行到Logstash

在你創建Logstash管道之前,你需要先配置Filebeat來發送日志行到Logstash。Filebeat客戶端是一個輕量級的、資源友好的工具,它從服務器上的文件中收集日志,並將這些日志轉發到你的Logstash實例以進行處理。Filebeat設計就是為了可靠性和低延遲。Filebeat在主機上占用的資源很少,而且Beats input插件將對Logstash實例的資源需求降到最低。

(畫外音:注意,在一個典型的用例中,Filebeat和Logstash實例是分開的,它們分別運行在不同的機器上。在本教程中,Logstash和Filebeat在同一台機器上運行。)

第1步:配置filebeat.yml

filebeat.inputs:
- type: log
  paths:
    - /usr/local/programs/logstash/logstash-tutorial.log

output.logstash:
  hosts: ["localhost:5044"]

第2步:在logstash安裝目錄下新建一個文件first-pipeline.conf

 

(畫外音:剛才說過了通常Logstash管理有三部分(輸入、過濾器、輸出),這里input下面beats { port => "5044" }的意思是用Beats輸入插件,而stdout { codec => rubydebug }的意思是輸出到控制台)

第3步:檢查配置並啟動Logstash

logstash -f first-pipeline.conf --config.test_and_exit

(畫外音:--config.test_and_exit選項的意思是解析配置文件並報告任何錯誤)

logstash -f first-pipeline.conf --config.reload.automatic

(畫外音:--config.reload.automatic選項的意思是啟用自動配置加載,以至於每次你修改完配置文件以后無需停止然后重啟Logstash)

第4步:啟動filebeat

filebeat -e -c filebeat.yml -d "publish"

如果一切正常,你將會在Logstash控制台下看到類似這樣的輸出:

 

更多參考:Logstash

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM