许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  CNCF实践之Fluentd简单使用:云原生日志收集

CNCF实践之Fluentd简单使用:云原生日志收集

阅读数 2
点赞 0
article_banner

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收集日志了


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空