EFK(Elasticsearch + Fluentd + Kibana) 日志收集系统

一、EFK 部署步骤

  1. 创建 NFS 存储访问

◦ 启动 Master 节点的 NFS 服务,创建数据目录 /data/v1。

◦ 通过 serviceaccount.yaml、rbac.yaml、deployment.yaml、class.yaml 等资源文件配置存储访问权限和类。

  1. 构建 Elasticsearch 集群

◦ 使用 kube-logging.yaml 创建命名空间及相关资源。

◦ 通过 elasticsearch-statefulset.yaml 部署有状态的 ES 集群。

◦ 通过 elasticsearch_svc.yaml 暴露服务。

◦ 可用 kubectl port-forward 转发端口并通过 curl 测试集群健康状态。

  1. 部署 Kibana

◦ 定义 Deployment 和 Service(NodePort 类型)。

◦ 使用环境变量 ELASTICSEARCH_URL 指向 ES 服务。

◦ 支持通过 ConfigMap 挂载 kibana.yml 实现汉化(配置 i18n.locale: "zh-CN")。

◦ 创建资源后可通过 kubectl get pods,svc -n kube-logging 验证。

  1. 安装 Fluentd 组件

◦ 通过 fluentd.yaml 部署 Fluentd,作为日志收集器,负责采集容器日志并发送到 ES。

二、Fluentd 配置详解

Fluentd 配置采用"数据管道"模型,核心三要素:输入(source)→ 过滤(filter)→ 输出(match)。

• 标签(Tag):日志的路由标识,支持通配符 * 和 **。

• 指令类型:

◦ <source>:定义输入源(如 tail 监控文件、forward 接收 TCP 日志)。

◦ <filter>:对匹配 tag 的事件进行解析、修改、过滤。

◦ <match>:将匹配 tag 的事件输出到目标(如 ES、S3、stdout)。

◦ 其他:<label>、<parse>、<format>、<buffer> 等。

• 插件(@type):tail, forward, parser, record_modifier, elasticsearch, s3, stdout 等。

典型配置示例:

• 输入 Nginx 访问日志(tail + nginx 解析器)。

• 过滤:用 grok 进一步解析 message 字段,用 record_modifier 添加/删除字段。

• 输出:匹配不同 tag 分别发往 ES(按索引区分)或控制台打印。

• 缓冲配置:使用 <buffer> 提高可靠性(file 类型,设置刷新间隔和 chunk 大小)。

最佳实践:

• 先用 @type stdout 调试。

• 规划标签命名策略。

• 务必配置 buffer(尤其是网络输出)。

• 使用环境变量保护敏感信息。

• 用 fluentd --dry-run -c 检查配置语法。

相关推荐
2601_9605679634 分钟前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
泡沫冰@1 小时前
使用Jenkins时的常见问题以及Podman容器+Jenkins流水线落地方案
jenkins
吳所畏惧1 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
HiDev_2 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling3 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
爱写代码的森3 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客3 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝3 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维
AOwhisky4 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客4 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice