Fluentd简介

Fluentd简介最近公司想要统一管理各个项目的日志 也为以后日志可视化查询做一个铺垫 经过筛选 选择了 fluentd 来做日志的收集转发工作 预想利用 EFK 来做日志收集 查询 可视化的方案 啥 你问我为啥不用 Logstash 可参考文章 Fluentdvs Logstash AComparisono 两者差异并不大 Fluentd 所占内存较小 社区更活跃 Fluen

Fluentd是什么?能解决什么问题?

  • 使用JSON进行统一日志记录:Fluentd尝试尽可能地将数据结构化为JSON:这允许Fluentd 统一处理日志数据的所有方面:收集,过滤,缓冲和跨多个源和目标(统一日志层)输出日志。使用JSON可以更轻松地进行下游数据处理,因为它具有足够的结构,可以在保留灵活模式的同时进行访问。
  • 可插拔架构:Fluentd拥有灵活的插件系统,允许社区扩展其功能。我们的500多个社区贡献插件连接了数十个数据源和数据输出。通过利用插件,您可以立即开始更好地使用日志。
  • 所需的资源较少: Fluentd是用C语言和Ruby组合编写的,只需要很少的系统资源。vanilla实例运行30-40MB内存,可处理13,000个事件/秒/核心。
  • 内置可靠性:Fluentd支持基于内存和文件的缓冲,以防止节点间数据丢失。Fluentd还支持强大的故障转移功能,可以设置为高可用性。

注:fluentd-benchmark 对简单数据2014-02-20 17:20:55 +0900 [info]: plugin:out_flowcounter_simple count:500 indicator:num unit:second测压结果是次/s

fluentd log
Fluentd解决数据流流向混乱的问题,通过在两者之间提供统一的日志记录层,从后端系统中分离数据源。

为什么要用Fluentd?

  • 简单易用且灵活
  • 开源
  • 久经考验的可靠性和性能:5,000多家数据驱动型公司依靠Fluentd通过更好地使用和了解他们的日志数据来区分他们的产品和服务。
  • 活跃的社区
  • 与Logstash相比占用内存更少、社区更活跃,两者比较可参考Fluentd vs. Logstash: A Comparison of Log Collectors

人气情况:

  • github fluent/fluentd start 6.8k
  • npm fluent-logger weekly downloads 11,493

Fluentd的用户:

  • Atlassian
  • Microsoft
  • amazon
  • LINE
  • PPTV

fluentd安装

fluentd安装、启动可参考Fluent doc

Fluentd配置

  • source: 数据源配置,可接受log-tail、http、tcp、udp等方式数据,
  • filter: 数据过滤配置,对匹配的tag进行过滤
  • match: 数据输出配置,对匹配的tag进行输出设置
 @type tcp tag tcp.events # required 
   
     @type regexp expression /^(? 
    
      \d+):(? 
     
       \w+)$/ 
      
     
    port 5170 # optional. 5170 by default bind 0.0.0.0 # optional. 0.0.0.0 by default delimiter \n # optional. \n (newline) by default 
$ echo ':awesome' | netcat 0.0.0.0 5170 

Parsed result like below:

{"field1":"","field2":"awesome} 
 built-in TCP input @see http://docs.fluentd.org/articles/in_forward  @type forward @id input_forward 
   
     self_hostname input.local shared_key liang_handsome 
    
   
     @type grep regexp1 levelStr (INFO|WARN|ERROR) 
    # Match events tagged with "myapp.access" and # store them to /var/log/fluent/access.%Y-%m-%d # Of course, you can control how you partition your data # with the time_slice_format option. 
   
     @type file path E:\software\fluentd\td-agent\log\output_file 
    

fluentd更多配置请参考官网:https://docs.fluentd.org/v1.0/articles/config-file

fluent-logger配置

import { 
   configure, getLogger, shutdown} from 'log4js' const fluentAppender = configure({ 
    appenders: { 
    "fluent": { 
    "type": "log4js-fluent-appender", "tag_prefix": "example.your_keys", "options": { 
    "levelTag": true, "host": "localhost", "port": 24224, "timeout": 3.0, "reconnectInterval": , "security": { 
    "clientHostname": "client", "sharedKey": "liang_handsome" } } } }, categories: { 
    default: { 
    appenders: ['fluent'], level: 'info' } } }); 

如上配置,fluent-logger根据host、port连接fluentd,sharedKey作为连接认证

logger.info({ 
   log_type: "create-room", uuid: 1112, room_id: 234, config: { 
   cards: 16, chairs: 3}}); 

JavaScript fluent_logger缓存测试:

  • 在fluentd关闭的情况下,logger输出20条日志,开启fluentd,fluent-logger会自动连接上fluentd,并将缓存的20条log发送至fluentd
  • 正常连接fluentd,输出5条log。然后关闭fluentd,继续输出15条log,启动fluentd,fluent-logger自动连接上fluentd,并将缓存的15条log发送至fluentd

以上测试表明fluentd-logger在与fluentd丢失连接时,相关log暂先会缓存起来,并在重连时将缓存的log发送至fluentd。这个机制相当优秀,大大增加了安全性,不过要注意缓存是占用内存的,如果长时间连接不上fluentd,有内存耗尽的风险。

日志解决方案实战

未来展望

fluentd收集数据,可输出到hadoop中,利用数据做数据挖掘,可以实现很多有价值的目标。比如:

  • 监测用户行为,针对流失较高的点,优化流失率,提高留存
  • 监测消费行为,针对性营销,增加收入
  • 异常检测,发现数据异常情况,第一时间发现服务器逻辑漏洞
  • 消费数据挖掘,将消费者分类,同类消费者商品推荐
  • 发现即将流失客户,重点给与相关优惠吸引策略
  • 发现核心用户,重点关注

参考资料

个人主页:http://liangiter.top

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224268.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:19
下一篇 2026年3月17日 下午12:19


相关推荐

  • 1、Pycharm 常用配置及快捷键

    1、Pycharm 常用配置及快捷键1 主题 字体及代码分割线 RightMargin 配置 IDE amp amp amp amp Editor 主题配置字体 颜色 配置代码分割线的取消及设置 2 IDE 布局及全屏设置将项目移动到右侧边栏然后在菜单栏 Window amp gt StoreCurrent 还可以在菜单栏的 View amp gt Enter

    2026年3月27日
    3
  • docker dockerfile详解_docker exec 进入容器

    docker dockerfile详解_docker exec 进入容器前言Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile简介Dockerfile是用来构建Docker镜像的构建文件,是由一系列

    2022年7月31日
    12
  • 二元正态分布,多元正态分布

    二元正态分布,多元正态分布对于两个随机变量 XXX YYY 若它们服从二维正态分布 则概率密度函数为 f x y 12 X Y1 2exp 11 2 x X 2 X y Y 2 Y 2 x X y Y X Y f x y frac 1 2 pi sigma X sigma Y sqrt 1 rho 2 exp left frac 1 1 rho 2 left

    2026年3月18日
    2
  • 入门级Unity安装教程

    入门级Unity安装教程这是一篇面向对unity感兴趣,想要学习unity,但是还处于入门阶段的小伙伴的超详细unity安装教程。因为是面向入门的小伙伴,所以文章写的有点长,还配有许多图片,这样才能更详细的介绍安装流程。但是不必担心太长看起来太费劲,各位只要照着教程一步步来就可以了。跟着这章博文走,最终你的电脑一定能张开双臂,成功拥抱unity。那么,现在进入正题吧!1.进入官网unity的官网链接:unity.cn…

    2022年6月27日
    32
  • UART介绍「建议收藏」

    UART介绍「建议收藏」1.概述UART,UniversalAsynchronousReceiver-Transmitter,通用异步收发器;串口:在嵌入式里指的是UART口,常用TTL电平即3.3V或者5.0V;COM口:在台式机上常用的口,DB9那种接口,接口协议只有两种RS232和RS485;RS232电平即负逻辑电平,定义+5V~+12V为逻辑0,-5V~-12V为逻辑1。…

    2025年11月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号