1. 了解各個組件的作用
Filebeat是一個日志文件托運工具,在你的服務器上安裝客戶端后,filebeat會監控日志目錄或者指定的日志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀)
Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據
Logstash是一根具備實時數據傳輸能力的管道,負責將數據信息從管道的輸入端傳輸到管道的輸出端;與此同時這根管道還可以讓你根據自己的需求在中間加上濾網,Logstash提供里很多功能強大的濾網以滿足你的各種應用場景
ElasticSearch它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口
Kibana是ElasticSearch的用戶界面
在實際應用場景下,為了滿足大數據實時檢索的場景,利用Filebeat去監控日志文件,將Kafka作為Filebeat的輸出端,Kafka實時接收到Filebeat后以Logstash作為輸出端輸出,到Logstash的數據也許還不是我們想要的格式化或者特定業務的數據,這時可以通過Logstash的一些過了插件對數據進行過濾最后達到想要的數據格式以ElasticSearch作為輸出端輸出,數據到ElasticSearch就可以進行豐富的分布式檢索了
2. 安裝各個組件並部署,並配置各個組件的關聯配置文件
下載各個組件的安裝包並解壓(這些組件在Apache官網都可以下載得到)
Filebeat安裝
解壓后Filebeat的目錄
Filebeat的配置很簡單,只需要配置監控的日志文件的全路徑和輸出端的IP,一般默認(默認配置文件filebeat.yml)是輸出到ElasticSearch,輸出配置如下
輸出端配置
這里我們不直接輸出到ElasticSearch,而是kafka,所以需要配置 beat-kafka.yml,輸入端配置如下
輸出端配置
因為是輸出到kafka,所以需要制定kafka的topic
Kafka的安裝
在Filebeat已經配置輸出端為kafka的配置,這里kafaka不需要配置任何東西,解壓直接用,以下是kafka初用的幾個必須的命令,具體查看kafka的官方API
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
現在啟動Filebeat:
./filebeat -e -c beat-kafka.yml -d "publish"
這里需要說明一點,不同的輸出端可以配置不同的.yml文件,所以這里的 beat-kafka.yml文件是kafka對應的配置
以上命令輸出沒有報錯並有如下信息
且可以看到你的監控文件的log的信息字段證明不存在問題
這是kafka的consumer會有如下信息
message就是文件的具體信息
Logstash的安裝
Logstash也不要做太多的配置,從搭建Filebeat和Kafka時,已經實現了數據的流通,現在要完成的事是然流到kafka的數據流到logstash,logtash也需要輸出,將ElasticSearch作為輸出端
對於kafka不同的數據建議logstash用不同的通道去接
一下是配置的兩個不同的通道
啟動logstash
bin/logstash -f first-pipeline.conf --config.reload.automatic --path.data=/home/hadoop/logstash
--path.data=/home/hadoop/logstash是指存放數據的路徑
ElasticSearch配置和安裝
如果你不要更改ip的話那就不需要任何配置,直接啟動
sh bin/elasticsearch
通過elasticsearch查詢看整個架構是否完整數據是否正確流通
查看索引
curl '192.168.1.20:9200/_cat/indices?v'
根據索引查詢數據
curl -XGET '192.168.1.20:9200/test_index/_search?pretty'
這就證明我們整個架構是正確的且數據流通無誤
Kibana的配置和安裝
Kibana只是ElasticSearch的圖形化界面,啟動即用