Logstash 初探

Logstash

Logstash是一個開源數據收集引擎,具備實時管道功能。Logstash能夠動態地未來自不一樣數據源的數據統一塊兒來,並將數據標準化到你所選擇的目的地。html

集中、轉換和存儲你的數據java

Logstash是一個開源的服務器端數據處理管道,能夠同時從多個數據源獲取數據,並對其進行轉換,而後將其發送到你最喜歡的「存儲」。(固然,咱們最喜歡的是Elasticsearch)ruby

INPUTS (輸入插件): 採集各類格式、大小和來源的數據bash

      數據每每以各類各樣的形式,或分散或集中地存在於不少系統中。Logstash 支持各類輸入選擇 ,能夠在同一時間從衆多經常使用來源捕捉事件。可以以連續的流式傳輸方式,輕鬆地從您的日誌、指標、Web 應用、數據存儲以及各類 AWS 服務採集數據。服務器

 

 FILTERS (過濾器插件):實時解析和轉換數據 架構

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

Logstash 可以動態地轉換和解析數據,不受格式或複雜度的影響:ide

  • 利用 Grok 從非結構化數據中派生出結構
  • 從 IP 地址破譯出地理座標
  • 將 PII 數據匿名化,徹底排除敏感字段
  • 總體處理不受數據源、格式或架構的影響

咱們豐富的過濾庫給數據過濾提供了無限的可能性。測試

OUTPUTS(輸出插件):選擇你的存儲,導出你的數據ui

       儘管 Elasticsearch 是咱們的首選輸出方向,可以爲咱們的搜索和分析帶來無限可能,但它並不是惟一選擇。Logstash 提供衆多輸出選擇,您能夠將數據發送到您要指定的地方,而且可以靈活地解鎖衆多下游用例。

 

安裝Logstach

一、安裝JDK

Logstach是基於Java開發是一個Java程序,運行在Jvm中,因此第一步要安裝JDK。

yum install -y java-1.8.0-openjdk-devel

二、下載Logstach

https://www.elastic.co/cn/downloads/logstash,是Logstach的官方站點,若是須要下載最新的版本,進入官網下載便可。能夠下載到本地電腦而後再導入CentOS中,也能夠直接在CentOS中下載。

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.rpm

二、安裝Logstach

# 執行安裝命令

rpm -ivh logstash-6.5.4.rpm

warning: logstash-6.5.4.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing...                ########################################### [100%]
   1:logstash               ########################################### [100%]
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash

# 查看下logstash的安裝目錄

rpm -ql logstash

# 建立一個軟鏈接,每次執行命令的時候不用在寫安裝路勁(默認安裝在/usr/share下)

ln -s /usr/share/logstash/bin/logstash /bin/

好,立刻開始咱們的第一個例子:

首先,讓咱們經過最基本的Logstash管道來測試一下剛纔安裝的Logstash。Logstash管道有兩個必需的元素,輸入和輸出,以及一個可選元素過濾器。輸入插件從數據源那裏消費數據,過濾器插件根據你的指望修改數據,輸出插件將數據寫入目的地。

 

接下來咱們輸入最基本的管道,例如:

# 執行logstash的命令

logstash -e 'input { stdin { } } output { stdout {} }'                 # -e是容許命令行指定配置

# 運行成功之後輸入:

hello world

而後啓動後,輸入hello world

# 注:
#   -e          執行操做
#   input       標準輸入
#   { input }   插件
#   output      標準輸出
#   { stdout }  插件  
#
# 經過rubydebug來輸出下更詳細的信息
logstash -e 'input { stdin { } } output { stdout {codec => rubydebug} }'

# 執行成功輸入:
愛上一匹野馬,可我家裏沒有草原

# stdout輸出的結果:

# 若是標準輸出還有Elasticsearch中都須要保留應該怎麼玩,看下面
logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.1.111:9200"] } stdout { codec => rubydebug }}'

# 運行成功之後輸入:
愛上一匹野馬,可個人家裏沒有草原

# 返回的結果(標準輸出中的結果):

參考資料

相關文章
相關標籤/搜索