Fluentd 是一个开源的数据收集器,主要用于统一日志处理和流处理,它的目标是简化数据收集并提供实时分析。
在一个使用 Kubernetes 集群的环境中,需要将来自不同容器的日志集中管理。
apiVersion: v1
kind: ServiceAccount
metadata:
name: fluentd
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: fluentd
rules:
- apiGroups:
- ""
resources:
- pods
- namespaces
verbs:
- get
- list
- watch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-config
data:
fluent.conf: |
<source>
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
tag kubernetes.*
format json
read_from_head true
</source>
<match kubernetes.**>
@type elasticsearch
host elasticsearch.logging
port 9200
logstash_format true
buffer_chunk_limit 2M
buffer_queue_limit 8
flush_interval 5s
max_retry_wait 30
disable_retry_limit
num_threads 8
</match>
此示例中,Fluentd 被配置为从 Kubernetes 容器日志中读取数据,然后将其发送到 Elasticsearch。这只是一个基本配置,实际应用中可能需要更复杂的配置来处理不同的数据源和输出需求。