filebeat+kakfa+Logstash+es ELK部署

語言: CN / TW / HK

部署方案:filebeat+kafka+logstash+elasticsearch+kibana

Filebeat:輕量級日誌採集器

Kafka:高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料

Logstash:實時資料傳輸能力的管道,負責將資料資訊從管道的輸入端傳輸到管道的輸出端;與此同時這根管道還可以讓你根據自己的需求在中間加上濾網

ElasticSearch:分散式多使用者能力的全文搜尋引擎,基於RESTful web介面

Kibana:ElasticSearch的使用者介面

伺服器:

| | | | | --------------- | -- | -------------------- | | 應用 | IP | 備註 | | kafka-1 | | kafka叢集 | | kafka-2 | | | | kafka-3 | | | | kafka-manager | | kafka管理介面 | | zookeeper | | 用於發現kafka叢集 | | logstash-1 | | 2臺loagstash消費kafka訊息 | | logstash-2 | | | | es-master | | es的master節點,日誌清理指令碼 | | es-master&data | | master節點和儲存節點 | | es-data | | es的儲存節點 | | es-data | | es的儲存節點 | | kibana | | 查詢介面 |

應用部署:

1、Filebeat

下載地址:https://www.elastic.co/downloads/beats/filebeat  本次採用版本:6.5.4

下載後進行解壓,建立配置檔案 beat-kafka.yml (預設的配置檔案是filebeat.yml)

image.png

Filebeat,配置並不難,只需要配置將空的日誌檔案全路徑和輸出端的IP,預設輸出是到ElasticSearch,需要調整輸出到kafka(避免丟訊息),具體配置可以參考:

image.png 啟動filebeat: nohup ./filebeat -e -c beat-kafka.yml  > filebeat.log 2>&1 &

2、Kafka

下載地址:http://kafka.apache.org/downloads  本次採用版本:2.12-2.1.0

下載後進行解壓,修改kafka配置檔案:server.properties

填寫zookeeper地址(用於註冊kafka):

image.png 配置kafka的listeners,在叢集的過程中,需要保證broker.id唯一,即每臺機器的broker.id不能相同

image.png

啟動kafka: nohup ./kafka-server-start.sh /apps/svr/kafka/config/server.properties 2>&1 &

驗證kafka是否啟動正常:

1、新建topic: kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 1 --topic test

2、檢查topic是否生成正確:kafka-topics.sh --list --zookeeper :2181    kafka-topics.sh --describe --zookeeper ip:2181 --topic test

3、建立一個生產者:kafka-console-producer.sh --broker-list  ip:9092 --topic test    然後隨便輸入一些字元

4、另起一個頁面建立一個消費者:kafka-console-consumer.sh --bootstrap-server ip:9092 --topic test --from-beginning   能檢視到生產者建立的資料

3、Logstash

下載地址:https://www.elastic.co/downloads/logstash  本次採用版本:6.5.4

下載後進行解壓,修改logstash配置檔案kafka.conf (預設是logstash-sample.conf),由於日誌的過濾和合並已經在filebeat配置,logstash只需要配置input和ouput

image.png 啟動logstash: ./logstash -f  ../config/kafka.conf -l /apps/logs/elk/logstash/logs/logstash.out &

input用於配置訊息來源(即kafka叢集),outpurt用於配置訊息輸出,輸出地址為es的叢集

4、Elasticsearch

下載地址:https://www.elastic.co/downloads/elasticsearch 本次採用版本:6.5.4

下載後解壓,修改配置檔案elasticsearch.yml,其中node.data 和node.master需要注意,node.data為true(儲存節點),node.master為true(master節點),兩者都不為true(分發節點),

叢集情況下需要額外配置transport.tcp.port ,用於內部tcp交流

image.png

啟動es:nohup ./elasticsearch 2>&1 &

5、Kibana

下載地址: https://www.elastic.co/downloads/kibana 本次採用版本:6.5.4

解壓後修改配置檔案kibana.yml,

image.png

啟動kibana:nohup ./kibana 2>&1 &