在 Ubuntu 上部署 Fluent Bit 以实现高效的日志转发

译文 2024-10-10 11:55:18

Fluentbit+Ubuntu

在本博客中,我们将了解如何在 Ubuntu 上部署 Fluentbit。我们还将了解如何配置 Fluentbit 将日志转发到 OpenObserve。

Fluent Bit 是一个开源的多平台日志转发器,它允许您从不同来源收集数据/日志,统一并将它们发送到多个目的地。它与 Docker 和 Kubernetes 环境以及裸机实例和虚拟机完全兼容。它能够从不同来源收集日志,例如 Linux 内核日志、应用程序日志、文件日志、标准输入等。 Fluent Bit 是 Fl​​uentd 的小弟,它非常轻量级,并且是用 C 语言编写的,在大多数场景下推荐优于 Fluentd。

官方说明可在 https://docs.fluentbit.io/manual/installation/linux/ubuntu 上可以找到,文档写得很详细,可以直接参考安装。下面我们按照如下步骤在 Ubuntu 部署 Fluent Bit。

1.设置服务器GPG密钥

sudo sh -c 'curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor > /usr/share/keyrings/fluentbit-keyring.gpg'

2.导出您的 ubuntu 版本名称

在 Ubuntu 上,您需要将 APT 服务器条目添加到源列表中,请在 /etc/apt/sources.list 文件底部添加以下内容 - 确保将 CODENAME 设置为您的特定 Ubuntu 版本名称(例如 Ubuntu 22.04.2 的 jammy):

首先使用如下命令获取 release name:

lsb_release -a

输出:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

或者执行如下命令:

cat /etc/os-release

输出:

ubuntu@ip-172-31-6-194:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

让我们将其导出到环境变量中:

export CODENAME="jammy"

3.更新 sources lists

echo "deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/$CODENAME/ \
  $CODENAME main" | sudo tee /etc/apt/sources.list.d/fluentbit.list

输出:

deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/jammy/ jammy main

4.安装 Fluent Bit

sudo apt-get update
sudo apt-get install fluent-bit

5.使用 systemd 启动 Fluent Bit

# Start Fluent Bit
sudo systemctl start fluent-bit
# Enable Fluent Bit to start on boot
sudo systemctl enable fluent-bit
# Check the status of Fluent Bit
sudo systemctl status fluent-bit

它应该显示如下内容:

ubuntu@ip-172-31-1-242:~$ systemctl status fluent-bit
● fluent-bit.service - Fluent Bit
     Loaded: loaded (/lib/systemd/system/fluent-bit.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-07-25 00:19:53 UTC; 20s ago
       Docs: https://docs.fluentbit.io/manual/
   Main PID: 2755 (fluent-bit)
      Tasks: 4 (limit: 2307)
     Memory: 3.0M
        CPU: 33ms
     CGroup: /system.slice/fluent-bit.service
             └─2755 /opt/fluent-bit/bin/fluent-bit -c /etc/fluent-bit/fluent-bit.conf

Fluent-bit 的默认配置是收集 CPU 使用率指标并将记录发送到标准输出,您可以在 /var/log/syslog 文件中看到传出的数据。

6.配置 Fluent Bit 发送日志到 OpenObserve

默认配置文件位于:/etc/fluent-bit/fluent-bit.conf,可以使用 vim 编辑该文件。我们来采集 /var/log 下面的日志,在 fluent-bit.conf 文件中添加如下配置:

[INPUT]
    Name              tail
    Path              /var/log/*.log
    Parser            docker
    Tag               logs.*
    Refresh_Interval  5
    Rotate_Wait       5
    Mem_Buf_Limit     5MB
    Skip_Long_Lines   On

配置完了 INPUT 部分,我们来配置 OUTPUT 部分,将日志发送到 OpenObserve:

[OUTPUT]
    Name http
    Match *
    URI /api/justprabhat_organization_1010/default/_json
    Host api.openobserve.ai
    Port 443
    tls On
    Format json
    Json_date_key    _timestamp
    Json_date_format iso8601
    HTTP_User youremail@yourdomain.com
    HTTP_Passwd qatj1wfZ890Q5Sk123k1
    compress gzip

OpenObserve 是一个日志监控平台,该产品相对较新,主张把日志存储在 S3 上,类似 Loki,所以成本更低,当然,带来的问题是检索能力不如 ElasticSearch。本文来自 OpenObserve 的作者:Prabhat Sharma,所以有这么一个章节讲解 Fluentbit 推送日志给 OpenObserve。Fluent Bit 在日志采集领域使用广泛,可以转发到 Logstash、Fluentd、ElasticSearch、Kafka 等多种后端。原文地址:https://openobserve.ai/blog/setup-fluent-bit-on-ubuntu-for-efficient-log-forwarding

配置完了 fluent-bit.conf 文件后,重启 Fluent Bit 服务:

sudo systemctl restart fluent-bit

使用以下命令检查服务的状态:

sudo systemctl status fluent-bit

如果有任何错误,您可以使用以下命令检查它们:

journalctl -u fluent-bit.service

7.检查 OpenObserve 中的日志

转到 OpenObserve UI 并检查日志。您现在应该看到日志。如果你使用其他的后端,比如 ElasticSearch,则需要配置 ElasticSearch 的 OUTPUT 部分。

总结

在本文中,我们了解了如何在 Ubuntu 上部署 Fluent Bit。我们还了解了如何配置 Fluent Bit 将日志转发到 OpenObserve。Fluent Bit 是一个开源的多平台日志转发器,它允许您从不同来源收集数据/日志,统一并将它们发送到多个目的地。托管在 CNCF 基金会下,社区活跃,大家可以重点关注。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat
FlashDuty
Flashduty