java相關框架 - logstash 使用


Logstash是一款輕量級的日志搜集處理框架,可以方便的把分散的、多樣化的日志搜集起來,並進行自定義的處理,然后傳輸到指定的位置,比如某個服務器或者文件。

下載

Logstash是開箱即用的軟件,下載和Elasticsearch一樣的版本即可。

使用

通過命令行,進入到logstash/bin目錄,執行下面的命令:

./logstash -e ""

 

工作原理

  Logstash使用管道方式進行日志的搜集處理和輸出。有點類似*NIX系統的管道命令 xxx | ccc | ddd,xxx執行完了會執行ccc,然后執行ddd。

  在logstash中,包括了三個階段:

  輸入input --> 處理filter(不是必須的) --> 輸出output

 

 

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

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

 

  由於這種插件式的組織方式,使得logstash變得易於擴展和定制。

 

命令行中常用的命令

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

 

 

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

 

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

 

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

 

配置文件說明

  前面介紹過logstash基本上由三部分組成,input、output以及用戶需要才添加的filter,因此標准的配置文件格式如下

input {...} 
filter {...} 
output {...}

 

  說完這些,簡單的創建一個配置文件的小例子看看:

Case1:將log里的內容輸出到控制台

先准備test.log

 

 

# vi /home/elk_user/logstash-6.5.4/config/mytest02.conf

input {
    file {
        path => "/home/elk_user/logstash-6.5.4/config/test.log"
        start_position => beginning
    }
}
filter {

}
output {
    stdout {}
}

 

執行命令得到如下信息:

 

 

 Case 2 : Logstash 輸出到Elasticsearch

# ./logstash -e 'input { stdin {} } output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "logstash-test-%{+YYYY.MM.dd}" } }'

 

 

 

 

 

  Case 3 : Logstash 輸出日志內容到Elasticsearch

# vi /home/elk_user/logstash-6.5.4/config/mytest03.conf

input {
    file {
        path => "/home/elk_user/logstash-6.5.4/config/test.log"
        start_position => beginning
    }
}
filter {

}
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "logstash-log-%{+YYYY.MM.dd}"
  }
}

 

# ./logstash -f ../config/mytest03.conf

 

 

 

 如果這個新的索引不能出來的話,需要往test.log里再插入幾條數據


免責聲明!

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



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