「視訊小課堂」ELK和Kafka是怎麼就玩在一起成了日誌採集解決方案文字版

讀位元組發表於2021-03-09

視訊地址:ELK和Kafka是怎麼就玩在一起成了日誌採集解決方案

視訊文字版

今天呢我就帶來了一期視訊,主要就是講ELK和Kafka之間的通訊關係通過對一張通訊圖,和一些操作命令,讓我們能更深入的去理解ELK在日誌採集過程當中以及Kafka在訊息佇列分發過程當中,它們是如何進行配置使用的,以及它們之間的通訊機制希望對您的學習有所幫助,謝謝!
我們的目標是一臺主機主機上的服務會產生日誌,例如/var/log目錄下面會不斷產生各種日誌記錄我們把這個採集範圍稱為日誌採集源這時候我們把ELK的檔案採集器filebeat部署到這臺主機上,讓它實時監測並增量採集最新的日誌記錄Filebeat可以給ELK家族的Elasticsearch搜尋引擎直接推送採集日誌也可以給ELK另外一個日誌管道工具Logstash直接推送採集日誌最關鍵的一步是filebeat可以將日誌作為訊息直接推送給Kafka叢集。

我們就通過命令操作演示,更具體的看看它到底是怎麼配置的 首先通過pwd命令,檢視一下filebeat所在的目錄,我的安裝目錄在/opt/filebeat目錄下然後我們再用ls命令檢視一下目錄下面的檔案,找到filebeat的配置檔案filebeat.yml。

接著我們用vi命令編輯並檢視filebeat.yml檔案我們用output關鍵字,搜尋filebeat採集輸出的配置,通過n鍵匹配,我們找到了第一個配置點:Elastisearch輸出好,我們可以看到已經被#注掉的Elastisearch,證明filebeat採集到資料不會輸出給Elasticsearch。同時可以看到Elasticsearch接收地址是node1,埠是9200。 好!接著繼續按n鍵搜尋下一個輸出,這時候我們找到了第二個配置點:Logstash輸出我們同樣可以看到已經被#注掉的Logstash,證明filebeat採集到資料不會推給logstash,同時可以看到Logstash的接收地址:node1,埠5044Ok,我們接著繼續按n鍵搜尋最後一個資料,這時候我們找到了最後一個輸出點:Kafka輸出這次Kafka的輸出沒有被註釋掉,證明filebeat採集到的資料一定會輸出給Kafka同時我們看到接收資料的Kafka叢集是由三臺機器組成node2、node3、node4,埠都是9092推送給Kafka的topic是testT3

通過命令演示中的配置,讓我們尋求一種最合理的日誌管道傳輸解決方案,首先filebeat將資料推送給Kafka叢集,這樣可以形成一個大吞吐承載力的資料緩衝區,而且由Kafka可以接收更多的filebeat採集點接著Logstash作為Kafka的消費者客戶端訂閱testT3 Topic,Logstash具備了各種過濾器,編解碼器,進行資料清洗,可以為下一階段的輸出提供更高質量的日誌資料最後Logstash將日誌資料寫入elasticsearch叢集的索引當中,完成日誌的最終落地。

前往讀位元組的知乎——瞭解更多關於大資料的知識

公眾號 "讀位元組" 大資料(技術、架構、應用)的深度,專業解讀
file

相關文章