Fluent Bit 中文文档
  • Fluent Bit 中文文档
  • 关于
    • Fluent Bit 是什么?
    • Fluent Bit 简要历史
    • Fluentd & Fluent Bit
    • 协议
  • 概念
    • 核心概念
    • 缓冲
    • 数据管道
      • 输入
      • 解析器
      • 过滤器
      • 缓冲
      • 路由
      • 输出
  • 安装
    • 升级说明
    • 平台支持
    • 依赖
    • 源码安装
      • 下载源码
      • 构建和安装
      • 以静态配置构建
    • Linux 软件包
      • Amazon Linux
      • Redhat / CentOS
      • Debian
      • Ubuntu
      • 树莓派
    • Docker
    • Kubernetes
    • Windows
  • 管理
    • 配置 Fluent Bit
      • 格式与模式
      • 配置文件
      • 变量
      • 命令
      • 上游服务负载均衡
      • 单位
    • 安全性
    • 缓冲与存储
    • 积压
    • 调度与重试
    • 内存管理
    • 监控
    • 内部状态导出/信号
  • 数据管道
    • 输入插件
      • Dummy
      • Memory Metics
      • Standard Input
      • Systemd
      • tail
    • 解析器
      • JSON
      • Regular Expression
      • LTSV
      • Logfmt
    • 过滤器
      • Grep
      • Kubernetes
      • Rewrite Tag
      • Modify
      • Nest
    • 输出插件
      • Counter
      • Elasticsearch
      • File
      • FlowCounter
      • HTTP
      • Kafka
      • NULL
      • PostgreSQL
      • Standard Output
      • TCP & TLS
  • 流处理
    • 简介
    • 总览
    • 快速开始
      • Fluent Bit + SQL
      • Check Keys and NULL values
      • Hands On! 101
  • FLUENT BIT FOR DEVELOPERS
    • C Library API
    • 手动提取记录
    • Golang 输出插件
Powered by GitBook
On this page
  • 相关概念
  • 部署
  • Kubernetes < v1.16 注意事项
  • Fluent Bit to Elasticsearch
  • Fluent Bit to Elasticsearch on Minikube
  • 详情

Was this helpful?

  1. 安装

Kubernetes

Kubernetes 生产级日志处理器

PreviousDockerNextWindows

Last updated 4 years ago

Was this helpful?

是一个轻量级且可扩展的日志处理器,它完全支持 Kubernetes:

  • 从文件系统或 Systemd/Journaled 处理 Kubernetes 容器日志

  • 使用 Kubernetes 元数据丰富日志

  • 将您的日志汇聚到第三方存储服务中,例如 Elasticsearch,InfluxDB,HTTP 等

相关概念

在开始之前,重要的是要了解如何部署 Fluent Bit。Kubernetes 管理 nodes 集群,因此我们的日志代理工具需要在每个节点上运行以从每个 POD 收集日志,因此Fluent Bit 被部署为 DaemonSet(在集群的每个 node 上运行的 POD)。

当 Fluent Bit 运行时,它将读取,解析和过滤每个 POD 的日志,并将使用以下信息(元数据)丰富每条数据:

  • Pod Name

  • Pod ID

  • Container Name

  • Container ID

  • Labels

  • Annotations

为了获得这些信息,名为 kubernetes 的内置过滤器插件与 Kubernetes API Server 进行通信以检索相关信息,例如 pod_id,labels 和 annotations,其他字段,例如 pod_name,container_id 和 container _name 是从本地日志文件名检索。所有这些都是自动处理的,从配置方面来说不需要干预。

部署

$ kubectl create namespace logging
$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-service-account.yaml
$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role.yaml
$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-binding.yaml

然后创建由 Fluent Bit DaemonSet 使用的 ConfigMap:

$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-configmap.yaml

Kubernetes < v1.16 注意事项

对于 v1.16 之前版本的 Kubernetes,DaemonSet 资源对象在 apiVersion: apps/v1 上不可用,该资源对象在 apiVersion: extensions/v1beta1 上可用。我们当前的 Daemonset Yaml 文件使用新版本的 apiVersion。

如果您使用的是较旧版本的 Kubernetes,请手动获取 Daemonset Yaml 文件,并替换 apiVersion 的值,从:

apiVersion: apps/v1

替换为

apiVersion: extensions/v1beta1

Fluent Bit to Elasticsearch

Fluent Bit DaemonSet 可以与 Kubernetes 集群上的 Elasticsearch 一起使用:

$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-ds.yaml

Fluent Bit to Elasticsearch on Minikube

如果您使用 Minikube 进行测试,请使用以下 DaemonSet 清单:

$ kubectl create -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-ds-minikube.yaml

详情

Fluent Bit 的默认配置可确保以下内容:

  • 使用运行节点上的所有容器日志

  • Kubernetes 过滤器插件将使用 Kubernetes 元数据(特别是 labels 和 annotations)丰富日志数据。过滤器仅在找不到缓存信息时才访问 API 服务器,否则将使用缓存

  • 选项 Retry_Limit 设置为 False,这意味着如果 Fluent Bit 无法将记录刷新到 Elasticsearch,它将无限期地重试直到成功

Kubernetes 过滤器插件完全受 编写的 的启发。

必须作为 DaemonSet 部署,这样就可以在 Kubernetes 集群的每个节点上使用它。首先,请使用以下命令来创建名称空间,服务帐号和角色设置(namespace, serviceaccount, role):

您可以在 Kubernetes v1.14 Changelog 上阅读有关此变更/弃用的更多信息:

不会在引擎中添加超过 5MB 的内容,直到将他们刷新到 Elasticsearch。此限制旨在为方案提供解决方法

配置中的默认后端是由 设置的 Elasticsearch。它使用 Logstash 格式处理日志。如果您需要其他索引和类型,请参考插件选项并自行进行调整

Jimmi Dyson
Fluentd Kubernetes 元数据过滤器
Fluent Bit
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.14.md#deprecations
Tail 输入插件
积压
Elasticsearch 输出插件
Fluent Bit