CNCF实践之Fluentd简单使用

Fluentd是一款由CNCF维护的开源日志收集工具,适用于云原生环境,能够处理大规模日志数据,支持多种插件进行日志处理与转发,如fluent-plugin-forest和fluent-plugin-grep等,广泛应用于容器化微服务架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CNCF之Fluentd简介与使用

CNCF(Cloud Native Computing Foundation)于 2015 年 7 月成立,隶属于 Linux 基金会,初衷围绕“云原生”服务云计算,致力于维护和集成开源技术,支持编排容器化微服务架构应用。随着应用程序的数量和公司规模的增长(尤其是越来越多的服务被容器化),在一个地方收集、分析和查询结构化日志是非常重要的。
这就是 Fluentd 的初衷。Fluentd 是一个日志收集器(类似于 logstorage ),通过它可以对日志进行过滤、净化和路由到各种目的地。与其他日志收集器一样,Fluentd 可以与各种核心和第三方输入及输出插件(如 Elasticsearch 插件、S3 插件等)一起使用。
Fluentd 还具有一定的内存存储和可靠性。从多个主机到 Fluentd、接着到Elasticsearch 集群的 rsyslog 文件的日志路径极其简洁,这一简单的例子也充分证明了使用 Fluentd 的益处所在。Fluentd是一个开源的数据收集器,专为处理数据流设计,有点像 syslogd ,但是使用JSON作为数据格式。它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发。

Fluentd使用插件:

首先介绍一下推荐使用的插件

  • 用于路径中加入tag:fluent-plugin-forest

  • 用于修改record:fluent-plugin-record-reformer

  • 用于修改tag:fluent-plugin-rewrite-tag-filter

  • 用于正则匹配日志内容,进行筛选:fluent-plugin-grep

# 客户端需要安装的插件
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-rewrite-tag-filter
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-grep
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer
 
# 服务器端需要安装的插件
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-forest

Fluentd下载和安装

首先是下载,下载安装方式有多种,

Fluentd多种下载方法及具体步骤

可以通过Docker下载,MacOS也可以直接下载dmg文件后安装

目录在分别在以下位置,其中plist文件用于通过launchctl命令来启动守护进程

  • /Library/LaunchDaemons/td-agent.plist
  • /etc/td-agent
  • /opt/td-agent
  • /var/log/td-agent

其中配置文件是/etc/td-agent下的td-agent.conf

除此之外/opt/td-agent/etc/init.d/目录下存放了可运行的文件td-agent.sh

也可以对服务设置别名方便操作

vim ~/.bash_profile #编辑添加如下脚本 
alias fluentd.start =’sudo launchctl load /Library/LaunchDaemons/td-agent.plist’ 
alias fluentd.stop =’sudo launchctl unload /Library/LaunchDaemons/td-agent.plist’ 

然后通过如下命令,运行:

$ sudo launchctl load /Library/LaunchDaemons/td-agent.plist
$ less /var/log/td-agent/td-agent.log

停止运行:

$ sudo launchctl unload /Library/LaunchDaemons/td-agent.plist

简单地测试一下,通过HTTP将简单的Log发送过去

$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test

在这里插入图片描述

然后可以在/var/log/td-agent中找到内容

$ tail -n 1 /var/log/td-agent/td-agent.log

内容如下

在这里插入图片描述

gem安装使用

除此之外,可以通过gem进行安装,然后就可以通过命令行直接使用了

gem install fluentd -v "~> 0.12.0" --no-ri --no-rdoc

在用户路径下创建一个配置文件和插件路径

fluentd --setup ./fluent

然后就可以启动,这里我为了简单,就使用了一个更简单的配置:

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match *.*>
  @type stdout
</match>

运行

fluentd -c ./fluent/fluentd.conf

然后再打开一个终端,输入:

echo '{"json":"tttttest"}' | fluent-cat debug.test

就能发现,在运行fluentd的那个窗口中,输出了相关的信息

如图 :

在这里插入图片描述


在这里插入图片描述

通过Fluentd收集docker的日志

通过简单的配置之后,使用了我上面所列的配置文件,那么接下来在docker上启动容器即可

配置docker转储日志有两种方法,指定特定的容器或者配置docker daemon将所有容器日志均存储到fluent中。

方法1:指定容器

docker run --log-driver=fluentd --log-opt fluentd-address=myhost.local:24224

方法2: 设置全局log-driver

docker daemon --log-driver=fluentd

使用第一种方法,简单测试一下

docker run --log-driver=fluentd ubuntu echo "tttttest"

发现fluentd端输出成功了

最后就实现通过Fluentd收集日志了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值