Elasticsearch+Fluentd+Kafka搭建分散式日誌系
#
前言由於此處所指的EFK是Elasticsearch + Fluentd + Kfka,實際上K應該是Kibana。演示,此處僅收集資料的採集流程。
#必然
- [docker](。[docker-compose](。[apache kafka服務](https://liangyuanpeng.com/post/docker-deploy-kafka/
#架構
資料採集流程
資料的產生使用cadvisor採集容器的監控資料和資料傳輸到Kafka。
資料的傳輸傳輸是這樣的:Cadvisor-> Kafka-> Fluentd-> elasticsearch
![ ](
每一個服務都可以橫向擴充套件,新增服務到日誌系統。
配置檔案
docker-compose.yml
版本: “3.7” 服務: elasticsearch: 影像:elasticsearch:7.5.1 環境: - discovery.type =單節點#使用單機模式啟動 埠: - 9200:9200 cadvisor: 影像:谷歌/ cadvisor 命令: - storage_driver =卡夫卡-storage_driver_kafka_broker_list = 192.168.1.60:9092(卡夫卡服務IP:PORT)-storage_driver_kafka_topic = kafeidou depends_on: - elasticsearch fluentd: 影像:lypgcs / fluentd-ES-卡夫卡:V1.3.2 卷: - ./:/etc/流利 -在/ var /日誌/ fluentd:在/ var /日誌/ fluentd ```
其中:
1. cadvisor產生的資料會傳輸到192.168.1.60這臺機器的kafka服務,topic為kafeidou
2. elasticsearch指定為單機模式啟動(``discovery.type=single-node``環境變數),單機模式啟動是為了方便實驗整體效果
fluent.conf
#
輸入http
埠8888
#
<match **>
@type複製
@type標準輸出
flush_interval 10秒
其中:
1. type為copy的外掛是為了能夠將fluentd接收到的資料複製一份,是為了方便除錯,將資料列印在控制檯或者儲存到檔案中,這個配置檔案預設關閉了,只提供必要的es輸出外掛.
需要時可以將``@type stdout``這一塊開啟,除錯是否接收到資料.
2. 輸入源也配置了一個http的輸入配置,預設關閉,也是用於除錯,往fluentd放入資料.
可以在linux上執行下面這條命令:
curl -i -X POST -d'json = {“ action”:“ write”,“ user”:“ kafeidou”}'
3. target_index_key引數,這個引數是將資料中的某個欄位對應的值作為es的索引,例如這個配置檔案用的是machine_name這個欄位內的值作為es的索引.
### 開始部署
在包含docker-compose.yml檔案和fluent.conf檔案的目錄下執行:
``
docker-compose up -d
``
在檢視所有容器都正常工作之後可以檢視一下elasticsearch是否生成了預期中的資料作為驗證,這裡使用檢視es的索引是否有生成以及資料數量來驗證:
-bash:-:未找到命令[root @ master kafka] #curl http://192.168.1.60:9200/_cat/indices?v健康狀態索引uuid pri rep docs.count docs.deleted store.size pri.store。大小黃色開放55a4a25feff6 Fz_5v3suRSasX_Olsp-4TA 1 1 1 0 4KB 4KB
也可以直接在瀏覽器輸入
`
http://192.168.1.60:9200/_cat/indices?v 檢視結果,會更方便。可以看到我這裡是用了不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同machine_name這個欄位作為索引值,查詢的結果是生成了一個叫
55a4a25feff6
的索引資料,生成了1條資料(
docs.count
)到目前為止
kafka-> fluentd-> ES
這樣一個日誌收集流程就搭建完成了當然。了,架構不是固定的。也可以使用
fluentd-> kafka-> ES
這樣的方式進行收集資料。這裡不做演示了,無非是修改一下fluentd。 conf配置檔案,將和卡夫卡相關的配置做一下對應的位置調換就可以可以了。
鼓勵多看官方文件,在github或Fluentd官網上都可以找到到Fluentd-es外掛和fluentd-kafka外掛。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2824887/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用docker搭建ELK分散式日誌同步方案Docker分散式
- 日誌: 分散式系統的核心分散式
- 一種分散式預寫日誌系統分散式
- 分散式系統監控(五)- 日誌分析分散式
- 分散式日誌傳輸系統Databus(一)--系統介紹分散式
- 分散式日誌元件GrayLog入門分散式元件
- 分散式 | DBLE 的 general 日誌實現分散式
- SpringBoot開發案例構建分散式日誌處理系統Spring Boot分散式
- SpringBoot接入輕量級分散式日誌框架(GrayLog)Spring Boot分散式框架
- Elasticsearch+Kibana日誌分析系統搭建Elasticsearch
- 日誌架構演進:從集中式到分散式的Kubernetes日誌策略架構分散式
- 請問你知道分散式系統的預寫日誌設計模式麼?分散式設計模式
- 請問你知道分散式系統設計模式的分割日誌思想麼?分散式設計模式
- 高效能、分散式、實時日誌服務 - TLog分散式
- 分散式日誌儲存架構程式碼實踐分散式架構
- PowerJob 線上日誌飽受好評的祕訣:小但實用的分散式日誌系統分散式
- 分散式、微服務必須配個日誌管理系統才優秀,Exceptionless走起~~~分散式微服務Exception
- .NET Core 中的日誌與分散式鏈路追蹤分散式
- Windows系統搭建ELK日誌收集伺服器Windows伺服器
- .Net Core 整合ExceptionLess分散式日誌框架之本地化部署Exception分散式框架
- [分散式][Redis]Redis分散式框架搭建與整合分散式Redis框架
- docker-compose搭建grafana+loki+promtail日誌系統DockerGrafanaLokiAI
- 日誌系統
- Flume+Kafka收集Docker容器內分散式日誌應用實踐KafkaDocker分散式
- 使用XLog、Spring-Boot、And-Design-Pro搭建日誌系統Springboot
- HDFS分散式叢集搭建分散式
- hadoop分散式叢集搭建Hadoop分散式
- Zookeeper — 本地完全分散式 搭建分散式
- Hbase完全分散式的搭建分散式
- HA分散式叢集搭建分散式
- 使用Logstash工具匯入sqlserver資料到elasticSearch及elk分散式日誌中心SQLServerElasticsearch分散式
- OAuth2.0分散式系統環境搭建OAuth分散式
- 分散式檔案系統fastdfs_搭建和基本使用分散式AST
- 搭建ELK日誌平臺(單機)
- Rsyslog日誌系統
- AIX系統日誌AI
- Kubernetes-20:日誌聚合分析系統—Loki的搭建與使用Loki
- 輕量級的分散式日誌追蹤利器,十分鐘即可接入,從此日誌追蹤無難事分散式