視頻文字版node
今天呢我就帶來了一期視頻,主要就是講ELK和Kafka之間的通信關係經過對一張通信圖,和一些操做命令,讓咱們能更深刻的去理解ELK在日誌採集過程中以及Kafka在消息隊列分發過程中,它們是如何進行配置使用的,以及它們之間的通信機制但願對您的學習有所幫助,謝謝!
咱們的目標是一臺主機主機上的服務會產生日誌,例如/var/log目錄下面會不斷產生各類日誌記錄咱們把這個採集範圍稱爲日誌採集源這時候咱們把ELK的文件採集器filebeat部署到這臺主機上,讓它實時監測並增量採集最新的日誌記錄Filebeat能夠給ELK家族的Elasticsearch搜索引擎直接推送採集日誌也能夠給ELK另一個日誌管道工具Logstash直接推送採集日誌最關鍵的一步是filebeat能夠將日誌做爲消息直接推送給Kafka集羣。架構
咱們就經過命令操做演示,更具體的看看它究竟是怎麼配置的 首先經過pwd命令,查看一下filebeat所在的目錄,個人安裝目錄在/opt/filebeat目錄下而後咱們再用ls命令查看一下目錄下面的文件,找到filebeat的配置文件filebeat.yml。elasticsearch
接着咱們用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集羣是由三臺機器組成node二、node三、node4,端口都是9092推送給Kafka的topic是testT3分佈式
經過命令演示中的配置,讓咱們尋求一種最合理的日誌管道傳輸解決方案,首先filebeat將數據推送給Kafka集羣,這樣能夠造成一個大吞吐承載力的數據緩衝區,並且由Kafka能夠接收更多的filebeat採集點接着Logstash做爲Kafka的消費者客戶端訂閱testT3 Topic,Logstash具有了各類過濾器,編解碼器,進行數據清洗,能夠爲下一階段的輸出提供更高質量的日誌數據最後Logstash將日誌數據寫入elasticsearch集羣的索引當中,完成日誌的最終落地。ide
前往讀字節的知乎——瞭解更多關於大數據的知識公衆號「讀字節」 分佈式,大數據,軟件架構的深度,專業解讀
工具