(0.3)logstash安裝


【基本介紹】

官方文檔:https://www.elastic.co/guide/en/logstash/current/first-event.html

【0.1】概念介紹

Logstash是一個具有實時管道的開源數據收集引擎。可以動態地統一不同來源的數據,並將數據歸到不同目的地。也是一個管理事件和日志工具。你可以用它來收集日志,分析它們,並將它們儲存起來以供以后使用。

Logstash 通常都是和 Kibana 以及 Elasticsearch 一起使用,且版本要一樣。

【0.2】save your event

  Logstash管道具有兩個必需元素inputoutput,以及一個可選元素filter輸入插件使用來自源的數據,過濾器插件根據您的指定修改數據,輸出插件將數據寫入目標。

  

 

 

【1】Centos7.X 下載

【1.1】下載

要和 es/kibana 下載同一個版本,最佳;

https://www.elastic.co/cn/downloads/logstash

  

【1.2】前置環境配置(JVM)

Logstash需要以下版本之一:

  • Java 8
  • Java 11
  • Java 14

使用 官方的Oracle發行版或開源發行版,例如 OpenJDK

如果要使用捆綁版本以外的JDK,請使用JAVA_HOME環境變量。如果您將JAVA_HOME環境變量設置為使用自定義JDK,則即使升級后,Logstash仍將繼續使用您指定的JDK版本。

  

 安裝包里有自帶捆綁JDK;

注意,如果操作系統並環境變量中沒有配置 JAVA_HOME,則使用其自帶的捆綁JDK;

 

【2】安裝

【2.1】解壓、移動位置、授權

tar -zxvf logstash-7.11.1-linux-x86_64.tar.gz 
mv logstash-7.11.1 /usr/local/logstash
groupadd elk
useradd elk -g elk
chown -R elk:elk /usr/local/logstash

【2.2】快速啟動的方法

#啟動 基本的 intput output
#stdin stdout 標准輸入、標准輸出插件
/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ stdout{} }'

# codec插件,指定輸出格式為json
/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ stdout{ codec => json } }'

# 日志內容寫入elasticsearch
/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ elasticsearch{hosts => ["192.168.175.129:9200"]} }'

#日志內容寫入elasticsearch,同時標准輸出
#注意elasticsearch插件的語法格式:hosts 對應數組
/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ elasticsearch{hosts => ["192.168.175.129:9200"]} stdout{} }'

 

【3】啟動演示

【3.1】標准輸入、輸出啟動演示

(1)啟動

su -l elk -c "/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ stdout{} }'"

機器性能太差啟動花了好幾分鍾,我還以為我出問題了呢,詳細啟動信息如下圖:

  

(2)輸入,輸出,核驗

  

 在默認情況下,stdout輸出插件的編碼解釋器為 rubydebug,所以輸出內容中包含了時間、版本等額外信息;其中 message 就是我們輸入的信息了;

(3)停止,我們沒有后台運行,直接 ctrl c 即可

  

【3.2】更換編解器啟動

 在默認情況下,stdout輸出插件的編碼解釋器為 rubydebug,所以輸出內容中包含了時間、版本等額外信息;其中 message 就是我們輸入的信息了;

換一些編碼解碼器試試:

(1)JSON

/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ stdout{ codec => json } }'

  

(2)plain

/usr/local/logstash/bin/logstash -e 'input{ stdin{} } output{ stdout{ codec => plain } }'

  

【3.3】使用配置文件啟動,連接 ES

在我們上面幾種啟動方法中,都是直接使用命令加 -e 參數傳輸配置字符串,指定了標准輸入 stdin 和 標准輸出 stdout 插件

(1)修改配置文件

logstash有兩種類型的文職文件,一種是 .yml,一種是.conf;

我們這次用 .conf

vim /usr/local/logstash/config/logstash-sample.conf

input {
  stdin {
  }
}

output {
  elasticsearch {
    host = > ["http://192.168.175.129:9200"]
    index = > "stdin"
  }
}

 

里面有個默認簡單案例配置在里面,我們注釋掉就好了;然后把我們上面的代碼粘貼進來

  

 

 

(2)以配置文件啟動

記得把配置文件修改成utf8格式不然十有八九就報錯

/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash-sample.conf

 

 

 

 

【錯誤】

(1) Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main

  

 

 解決:把.conf  文件轉成utf8格式

 (2)org.jruby.exceptions.SystemExit: (SystemExit) exit

org.jruby.exceptions.SystemExit: (SystemExit) exit
        at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:747) ~[jruby-complete-9.2.13.0.jar:?]
        at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:710) ~[jruby-complete-9.2.13.0.jar:?]

 


免責聲明!

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



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