Logstash學習之路(一)Logstash的安裝


一、Logstash簡介

  Logstash 是一個實時數據收集引擎,可收集各類型數據並對其進行分析,過濾和歸納。按照自己條件分析過濾出符合數據導入到可視化界面。它可以實現多樣化的數據源數據全量或增量傳輸,數據標准格式處理,數據格式化輸出等的功能,常用於日志處理。工作流程分為三個階段:

  (1)input數據輸入階段,可接收oracle、mysql、postgresql、file等多種數據源;
  (2)filter數據標准格式化階段,可過濾、格式化數據,如格式化時間、字符串等;
  (3)output數據輸出階段,可輸出到elasticsearch、mongodb、kfka等接收終端。
 

二、下載

說明:由於我安裝的Elasticsearch版本為6.3.1,因此我下載logstash版本為6.31

https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.tar.gz

解壓:

[root@master mnt]# tar -zxvf logstash-6.3.1.tar.gz
[root@master mnt]# mv logstash-6.3.1 logstash

簡單輸出到控制台,觀察是否安裝成功:

[root@master bin]# ./logstash -e 'input { stdin { } } output { stdout {} }'
日志:
Sending Logstash's logs to /mnt/logstash/logs which is now configured via log4j2.properties [2019-04-24T16:19:14,090][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/mnt/logstash/data/queue"} [2019-04-24T16:19:14,111][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/mnt/logstash/data/dead_letter_queue"} [2019-04-24T16:19:15,079][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified [2019-04-24T16:19:15,168][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"1a5ca4ad-02a5-4f48-91d7-1373799f0fd2", :path=>"/mnt/logstash/data/uuid"} [2019-04-24T16:19:16,754][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.3.1"} [2019-04-24T16:19:22,045][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50} [2019-04-24T16:19:22,329][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x4eb0dbdb run>"} The stdin plugin is now waiting for input: [2019-04-24T16:19:22,503][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} [2019-04-24T16:19:22,966][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}

輸入:aaaaaaaa,發現安裝成功

aaaaaaaaaa
{
       "message" => "aaaaaaaaaa",
          "host" => "master",
    "@timestamp" => 2019-04-24T08:21:07.403Z,
      "@version" => "1"
}

命令行參數:logstash命令

1
2
3
4
5
參數:
執行    -e              bin /logstash  -e  ''
文件    --config 或 -f       bin /logstash  -f agent.conf
測試    --configtest 或 -t     用來測試 Logstash 讀取到的配置文件語法是否能正常解析。
日志    --log 或 -l         Logstash 默認輸出日志到標准錯誤。生產環境下你可以通過 bin /logstash  -l logs /logstash .log 命令來統一存儲日志。

實例操作:

  以輸出到Elasticsearch為例:接收控制台輸入,Logstash解析輸出到ElasticSearch集群

[root@master bin]# cat test_es.conf 
input{
        stdin{}
}
output{
        elasticsearch{
                hosts=>["192.168.200.100:9200"]
                index=>"testeslogstash"
        }
        stdout{codec=>rubydebug}
}
運行:
[root@master bin]# ./logstash -f /mnt/logstash/bin/test_es.conf

結果:

  

 

所以搭建成功。


免責聲明!

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



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