文章出處

Logstash是一款開源的數據收集引擎,具備實時管道處理能力。簡單來說,logstash作為數據源與數據存儲分析工具之間的橋梁,結合 ElasticSearch以及Kibana,能夠極大方便數據的處理與分析。通過200多個插件,logstash可以接受幾乎各種各樣的數據。包括日志、網絡請求、關系型數據庫、傳感器或物聯網等等。

安裝

之前我有一篇文章ElasticSearch + Logstash + Kibana 搭建筆記記錄了ELK環境的搭建過程,只是簡單介紹了一種安裝方式,本文記錄更多的細節。

logstash 要求Java8的支持。Java9暫時不支持,本文使用的logstash版本為5.5.1。

在Linux環境中,我們可以通過包管理進行安裝,例如Unbuntu中的apt、以及CentOS中的yum。也可以從這里下載對應環境的二進制版本。

體驗Pipeline

Logstatsh最基本的Pipeline模式如下圖所示,其需要兩個必需參數inputoutput,以及一個可選參數filter

cd logstash-5.5.1
bin/logstash -e 'input { stdin { } } output { stdout {} }'

[2017-08-09T15:40:03,303][INFO ][logstash.pipeline        ] Pipeline main started

hello world
2017-08-09T07:40:46.397Z iZ627x15h6pZ hello world

-e參數允許我們在命令行中直接輸入配置,而不同通過-f參數指定配置文件。看到Pipeline main started表示logstash已經啟動成功,在命令行輸入一些文字后,logstash會加上日期和主機名(IP)輸出到終端。這就是Logstash最基本的工作模式,接受輸入,然后將信息加工后放入到輸出。

處理日志

Logstash收購了Filebeat加入到自己的生態系統中用來處理日志,Filebeat是一個輕量化的日志收集工具,還可以感知后臺logstash的繁忙程度來決定日志發送的速度。

首先下載 Filebeat,解壓后就可以使用。找到filebeat.yml修改如下:

filebeat.prospectors:
- input_type: log
  paths:
    - /path/to/file/logstash-tutorial.log 
output.logstash:
  hosts: ["localhost:5043"]

配置完成后等logstash啟動后再啟動Filebeat。

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

接下來配置logstash,按照如下配置編寫一個 filebeat.conf 文件

input {
  beats {
    port => "5043"
  }
}
output {
  stdout { codec => rubydebug }
}

配置文件可以用下面的命令驗證是否有問題

bin/logstash -f filebeat.conf --config.test_and_exit

如果驗證沒有問題,就可以用這個配置文件啟動 logstash 了。

bin/logstash -f filebeat.conf

之后再啟動Filebeat,就可以在Filebeat終端窗口看到日志信息的輸出,同時在logstash這邊也能看到有日志輸出。這就說明此時logstash已經能夠正常接收beats送來的文件了。

參考資料:
1、Logstash Reference
2、Filebeat


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()