Fluent Bit Loki 输出插件
Fluent Bit 是一个快速轻量级的日志和指标处理器及转发器,可以通过配置Fluent-bit Loki 输出插件将日志发送到 Loki。
您可以使用 Tail
或 Stdin
数据管道输入定义要收集的日志文件。此外,Fluent Bit 支持多种 Filter
和 Parser
插件(例如 Kubernetes
、JSON
等)来结构化和修改日志行。
注意
Fluent Bit 有两个用于 Loki 的插件:官方维护的插件
loki
和grafana-loki
插件。我们推荐使用本页面描述的loki
插件,因为它由 Fluent Bit 项目官方维护。有关更多信息,请参阅 Fluent Bit Loki 输出插件文档。请注意,
grafana-loki
插件不再积极维护。
配置
Fluent Bit Loki 输出插件的所有配置选项均在Fluent Bit Loki 输出插件文档中进行详细说明。
以下是将 Fluent Bit 连接到 Grafana Cloud 上托管的 Loki 的通用示例
[OUTPUT]
Name loki
Match *
Host YourHostname.company.com
port 443
tls on
tls.verify on
http_user XXX
http_passwd XXX
将 Host
、http_user
和 http_passwd
替换为您的 Grafana Cloud Loki 端点和凭据。
使用示例
以下是使用 Fluent Bit 向 Loki 发送日志的一些示例。
Tail Docker 日志
以下是在 Docker 容器中运行 Fluent Bit、收集 Docker 日志并将其发送到本地 Loki 实例的示例。
docker run -v /var/lib/docker/containers:/var/lib/docker/containers fluent/fluent-bit:latest /fluent-bit/bin/fluent-bit -i tail -p Path="/var/lib/docker/containers/*/*.log" -p Parser=docker -p Tag="docker.*" -o loki -p host=loki -p port=3100 -p labels="agent=fluend-bit,env=docker"
在此示例中,我们使用 tail
输入插件收集 Docker 日志,并使用 loki
输出插件将日志发送到 Loki。请注意,建议使用配置文件来定义输入和输出插件。-p
标志用于将配置参数传递给插件。
配置文件(命令行参数的替代方案)
创建一个名为 fluent-bit.conf
的配置文件,其内容如下
[INPUT]
Name tail
Path /var/lib/docker/containers/*/*.log
Parser docker
Tag docker.*
[OUTPUT]
Name loki
Match *
Host loki
Port 3100
Labels agent=fluend-bit,env=docker
使用配置文件运行 Fluent Bit
docker run -v /var/lib/docker/containers:/var/lib/docker/containers -v $(pwd)/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf fluent/fluent-bit:latest /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf
收集 Docker 事件
以下是在 Docker 容器中运行 Fluent Bit、收集 Docker 事件并将其发送到本地 Loki 实例的示例。
docker run -v /var/run/docker.sock:/var/run/docker.sock fluent/fluent-bit:latest /fluent-bit/bin/fluent-bit -i docker_events -o loki -p host=loki -p port=3100 -p labels="agent=fluend-bit,env=docker"
在此示例中,我们使用 docker_events
输入插件收集 Docker 事件,并使用 loki
输出插件将日志发送到 Loki。请注意,建议使用配置文件来定义输入和输出插件。-p
标志用于将配置参数传递给插件。
配置文件(命令行参数的替代方案)
创建一个名为 fluent-bit.conf
的配置文件,其内容如下
[INPUT]
Name docker_events
[OUTPUT]
Name loki
Match *
Host loki
Port 3100
Labels agent=fluent-bit,env=docker
使用配置文件运行 Fluent Bit
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf fluent/fluent-bit:latest /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf
收集 Kubernetes 日志
从 Kubernetes 收集日志并使用 Fluent Bit 的推荐方法是使用 Fluent Bit 项目提供的 Helm chart。该 Helm chart 可在 https://github.com/fluent/helm-charts 获取。
以下是部署 Fluent Bit Helm chart 以从 Kubernetes 收集日志并将其发送到 Loki 的示例
添加 Fluent Bit Helm 仓库
helm repo add fluent https://fluent.github.io/helm-charts
创建一个名为
values.yaml
的文件,其内容如下config: outputs: | [OUTPUT] Name loki Match * Host YourHost.Company.net port 443 tls on tls.verify on http_user XXX http_passwd XXX Labels agent=fluend-bit Note we are only updating the `outputs` section of the Fluent Bit configuration. This is to replace the default output plugin with the Loki output plugin. If you need to update other parts of the Fluent Bit configuration refer to the [Fluent Bit values file reference](https://github.com/fluent/helm-charts/blob/main/charts/fluent-bit/values.yaml).
部署 Fluent Bit Helm chart
helm install fluent-bit fluent/fluent-bit -f values.yaml