視頻地址:
B站視頻地址:ELK和Kafka是怎么就玩在一起成了日志采集解決方案
公眾號視頻地址:ELK和Kafka是怎么就玩在一起成了日志采集解決方案
知乎視頻地址: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集群的索引當中,完成日志的最終落地。
公眾號 "讀字節" 大數據(技術、架構、應用)的深度,專業解讀