Fluentd
-
簡介?:Fluentd 是一個高性能、可擴展的數據收集與聚合工具,能夠統一數據收集和消費,實現各種數據源到各種數據接收器的高效傳輸,廣泛應用于日志收集等領域。
-
功能特點?:
-
統一日志收集?:支持從各種數據源收集日志,如文件、網絡、應用程序等,將不同來源的日志統一收集并傳輸到一個或多個目的地,便于集中管理和分析。
-
插件豐富?:擁有超過 500 個插件,可與多種工具集成,如與 Prometheus、Elasticsearch、Kafka 等主流工具的集成,方便用戶根據需求擴展功能。
-
高性能?:采用多線程架構,能夠高效地處理大量數據,適用于高并發場景。
-
低延遲?:優化了數據處理流程,可以快速地將數據從源頭傳輸到目的地,降低了數據處理的延遲。
-
-
應用場景?:
-
日志收集與分析?:將應用程序、服務器等產生的日志收集到一個中心位置,如 Elasticsearch,然后使用 Kibana 等工具進行可視化分析。例如,在微服務架構中,收集各個服務的日志,以便快速定位和解決問題。
-
數據集成與轉換?:對收集到的數據進行清洗、轉換和富化等操作,使其符合特定的數據模型或格式,方便后續的數據分析和處理。比如,將不同格式的日志數據轉換為統一的 JSON 格式。
-
事件驅動的架構?:作為事件收集和分發的中間件,將事件從生產者傳遞給消費者,實現系統之間的解耦和協同工作。
-
Docker啟動Fluentd
準備共享目錄
useradd fluent
chown fluent: /data/fluentd/
chmod 777 /data/fluentd/?
fluentd容器內默認使用fluent用戶,在host上的共享目錄權限不夠,導致服務啟動失敗。
啟動fluentd
docker run -d --name my-fluentd \
-u fluent -p 24224:24224 -p 24224:24224/udp \-v /data/fluentd:/fluentd/log fluent/fluentd
查看檢查插件列表
docker exec -it my-fluentd /bin/bash -c 'gem list'
*** LOCAL GEMS ***
abbrev (default: 0.1.1)
async (1.32.1)
async-http (0.64.2)
async-io (1.43.2)
async-pool (0.10.3)
base64 (0.2.0, default: 0.1.1)
benchmark (default: 0.2.1)
bigdecimal (default: 3.1.3)
……