Logstash,Fluentd, Logtail比较

大数据工程师入门系列 - 常用数据采集工具(Flume、Logstash 和 Fluentd) 作者:幻好 来源: 恒生LIGHT云社区 ... 阅读详情

摘要: 针对主流日志采集客户端(Logstash,Fluentd,以及日志服务客户端Logtail)进行功能、性能和稳定性测评

日志收集的场景

DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。

中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是始于足下的第一步。

logtail_centralize_arch

三款日志收集工具

logstash

开源界鼎鼎大名ELK stack中的"L",社区活跃,生态圈提供大量插件支持。

logstash基于JRuby实现,可以跨平台运行在JVM上。

模块化设计,有很强的扩展性和互操作性。

fluentd

开源社区中流行的日志收集工具,td-agent是其商业化版本,由Treasure Data公司维护,是本文选用的评测版本。

fluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能不错。

fluentd设计简洁,pipeline内数据传递可靠性高。相较于logstash,其插件支持相对少一些。

logtail

阿里云日志服务的生产者,目前在阿里集团内部机器上运行,经过3年多时间的考验,目前为阿里公有云用户提供日志收集服务。

采用C++语言实现,对稳定性、资源控制、管理等下过很大的功夫,性能良好。相比于logstash、fluentd的社区支持,logtail功能较为单一,专注日志收集功能。

日志文件收集场景 - 功能对比

功能项logstashfluentdlogtail
日志读取轮询轮询事件触发
文件轮转支持支持支持
Failover处理 (本地checkpoint)支持支持支持
通用日志解析支持grok(基于正则表达式)解析支持正则表达式解析支持正则表达式解析
特定日志类型支持delimiter、key-value、json等主流格式支持delimiter、key-value、json等主流格式支持key-value格式
数据发送压缩插件支持插件支持LZ4
数据过滤支持支持支持
数据buffer发送插件支持插件支持支持
发送异常处理插件支持插件支持支持
运行环境JRuby实现,依赖JVM环境CRuby、C实现,依赖Ruby环境C++实现,无特殊要求
线程支持支持多线程多线程受GIL限制支持多线程
热升级不支持不支持支持
中心化配置管理不支持不支持支持
运行状态自检不支持不支持支持cpu/内存阈值保护

日志文件收集场景 - 性能对比

日志样例

以Nginx的access log为样例,如下一条日志365字节,结构化成14个字段:

logtail_nginx_access_log

在接下来的测试中,将模拟不同的压力将该日志重复写入文件,每条日志的time字段取当前系统时间,其它13个字段相同。

相比于实际场景,模拟场景在日志解析上并无差异,有一点区别是:较高的数据压缩率会减少网络写出流量。

logstash

logstash-2.0.0版本,通过grok解析日志并写出到kafka(内置插件,开启gzip压缩)。

日志解析配置:

grok {
    patterns_dir=>"/home/admin/workspace/survey/logstash/patterns"
    match=>{ "message"=>"%{IPORHOST:ip} %{USERNAME:rt} - \[%{HTTPDATE:time}\] \"%{WORD:method} %{DATA:url}\" %{NUMBER:status} %{NUMBER:size} \"%{DATA:ref}\" \"%{DATA:agent}\" \"%{DATA:cookie_unb}\" \"%{DATA:cookie_cookie2}\" \"%{DATA:monitor_traceid}\" %{WORD:cell} %{WORD:ups} %{BASE10NUM:remote_port}" }
    remove_field=>["message"]
}

测试结果:

写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.2222.4427
1000356.4546.6431
50001782.23221.1440
100003564.45483.7450

fluentd

td-agent-2.2.1版本,通过正则表达式解析日志并写入kafka(第三方插件fluent-plugin-kafka,开启gzip压缩)。

日志解析配置:

<source>
  type tail
  format /^(?<ip>\S+)\s(?<rt>\d+)\s-\s\[(?<time>[^\]]*)\]\s"(?<url>[^\"]+)"\s(?<status>\d+)\s(?<size>\d+)\s"(?<ref>[^\"]+)"\s"(?<agent>[^\"]+)"\s"(?<cookie_unb>\d+)"\s"(?<cookie_cookie2>\w+)"\s"(?
<monitor_traceid>\w+)"\s(?<cell>\w+)\s(?<ups>\w+)\s(?<remote_port>\d+).*$/
  time_format %d/%b/%Y:%H:%M:%S %z
  path /home/admin/workspace/temp/mock_log/access.log
  pos_file /home/admin/workspace/temp/mock_log/nginx_access.pos
  tag nginx.access
</source>

测试结果:

写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.2213.561
1000356.4523.461
50001782.2394.3103

注:受GIL限制,fluentd单进程最多使用1个cpu核心,可以使用插件multiprocess以多进程的形式支持更大的日志吞吐。

logtail

logtail 0.9.4版本,设置正则表达式进行日志结构化,数据LZ4压缩后以HTTP协议写到阿里云日志服务,设置batch_size为4000条。

日志解析配置:

logRegex : (\S+)\s(\d+)\s-\s\[([^]]+)]\s"([^"]+)"\s(\d+)\s(\d+)\s"([^"]+)"\s"([^"]+)"\s"(\d+)"\s"(\w+)"\s"(\w+)"\s(\w+)\s(\w+)\s(\d+).*
keys : ip,rt,time,url,status,size,ref,agent,cookie_unb,cookie_cookie2,monitor_traceid,cell,ups,remote_port
timeformat : %d/%b/%Y:%H:%M:%S

测试结果:

写入TPS写入流量 (KB/s)CPU使用率 (%)内存使用 (MB)
500178.221.713
1000356.45315
50001782.2315.323
100003564.4531.625

单核处理能力对比

logtail_performance_evaluation

总结

可以看到三款日志工具各有特点:

  • logstash支持所有主流日志类型,插件支持最丰富,可以灵活DIY,但性能较差,JVM容易导致内存使用量高。

  • fluentd支持所有主流日志类型,插件支持较多,性能表现较好。

  • logtail占用机器cpu、内存资源最少,结合阿里云日志服务的E2E体验良好,但目前对特定日志类型解析的支持较弱,后续需要把这一块补起来。

Fluentd、Filebeat、Logstash 对比分析 阅读详情

相关推荐

【大数据安全分析】数据采集技术

在大数据时代,海量的数据如同蕴藏着无尽宝藏的矿山,而数据采集技术则是开启这座矿山的关键钥匙。高效准确的数据采集是大数据分析的基石,直接影响着后续数据分析、挖掘以及决策的质量与效果。在众多数据采集技术中,Logstash、Flume、Fluentd、Logtail 脱颖而出,它们各自凭借独特的优势和特点,在不同的应用场景中发挥着重要作用,下面将对它们展开深入剖析。

风一样 1060

日志客户端(Logstash,Fluentd, Logtail)横评

日志收集的场景 DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。 中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是始于足下的第一步。 三款日志收集工具 logstash 开源界鼎鼎大名ELK stack中的"L",社区活跃,生态圈提供大量插件支持。 logstash基于JRuby实现,可以跨平...

weixin_33788244的博客 762

ArcMap实战:用栅格计算器搞定16年NDVI趋势分析,附完整F检验流程

本文详细介绍了如何使用ArcMap的栅格计算器进行16年NDVI趋势分析,包括数据预处理、线性趋势计算和F显著性检验的全流程操作。通过实际案例和统计原理解析,帮助GIS从业者掌握植被覆盖变化的分析方法,特别适合生态评估和农业监测应用。

weixin_29251567的博客 254

Logstash、Fluentd、Fluent Bit 和 Vector,谁才是开源日志收集最强王者?

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !企业无论是已经使用了开源日志收集工具,还是准备选择一款或多款工具,都有必要了解日志收集工具的关键要求。这些要求包括:高数据吞吐量、可靠性、可扩展性、灵活性、安全性以及资源(CPU和内存)消耗等。本文讨论了市面上流行的几款日志收集工具(包括 Logstash、Fluentd、Fluent Bit 和 Vector)及其...

easylife206的专栏 4361

利用wolcmd.exe批处理执行远程唤醒

代码如下: @echo off cls :check if exist wolcmd.exe goto targetmac echo 缺少wolcmd.exe echo. goto end :targetmac cls echo -------------------------------------------------------- echo 目标主机PC-01地址:40235678A...

Chriseo的博客 6951

W5500+STM32F103C8T6进行TCP通信(modbus)

一路生花一、w5500资料二、modbus通信三、从机代码四、总结五、参考 一、w5500资料 w5500的资料就放在下面了,单纯的客户端和其他模式上面有教程 https://www.aliyundrive.com/s/enPnnZgNtpE 二、modbus通信 Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议 这里是Modbus TCP数据帧 公共功能码定义 三、从机代码

junseven164的博客 5781

logstash快速入门 (这篇文章很不错 ) | 两种方式往logstash传输数据实例:Apache 日志(从文件获取)、Syslog方式...

原文地址:http://www.2cto.com/os/201411/352015.html  原文地址:http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash (纯英文) 英语水平有限,如果有错误请各位指正 简介 Logstash是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错...

weixin_34335458的博客 432

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.youkuaiyun.com/download/che

chengbaola的博客 1366

logstash 同时支持多个管道_详解三款日志采集工具--Logstash,Fluentd, Logtail比较

概述DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。中心化的日志处理方案有效地解决了在完整生命周期内对日志的消费需求,而日志从设备采集上云是第一步。下面介绍下常见的三款日志采集工具并对比分析。01logstashLogstash是一款开源的数据收集引擎,具备实时管道处理能力。简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合 ElasticSearch以及K...

weixin_39586915的博客 372

第12章 STM32+BH1750光照传感器+OLED模块显示环境光照强度

相比光敏传感器,它可以直接输出环境光照强度的数值(范围是0~65535lx),非常适合懒人党,各位的传感器买到手后,赶紧跟着文章试试吧!

qq_44645742的博客 1万+

MySQL操作之用户管理权限管理:(DC)(五)

一、简介 二、用户管理 2.1 User表 2.2 创建普通用户 2.3 删除普通用户 2.4 修改用户密码 2.5 解决root用户密码丢失 三、权限管理 3.1 MySQL的权限 3.2 授予权限 3.3 查看权限 3.4 收回权限

lydms的博客 4509

Logstash,Fluentd, Logtail对比伤害

Logstash,Fluentd, Logtail对比伤害 摘要:针对主流日志采集客户端(Logstash,Fluentd,以及日志服务客户端Logtail)进行功能、性能和稳定性测评 日志收集的场景 DT时代,数以亿万计的服务器、移动终端、网络设备每天产生海量的日志。 中心化的日志处理方案有效地解决了...

Super_man54188的博客 753

NCCL 核心集体通信操作深度解析:从原理到优化实践

操作逻辑:若 N 个 GPU 各持有一段数据(大小为 S),通信后每个 GPU 会持有所有 N 段数据(总大小为 N×S)。典型场景:多卡推理结果聚合、模型并行中间结果同步。操作逻辑:N 个 GPU 各持有数据,通过归约(求和、取平均等)运算后,所有 GPU 获得相同结果。典型场景:数据并行训练的梯度聚合(如 SGD 优化器)。操作逻辑:N 个 GPU 各持有 N 份数据分片,通信后每个 GPU 获得所有 GPU 的对应分片。典型场景。

jundao1997的专栏 680

日志采集工具--Logstash、Filebeat、Fluentd、Logagent对比

常见的日志采集工具有Logstash、Filebeat、Fluentd、Logagent、rsyslog等等,那么他们之间有什么区别呢?什么情况下我们应该用哪一种工具? Logstash Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。 优势 Logstash 主要的有点就是它的灵活性,主要因为...

人在码途,逐日拾光 3797

权重衰减weight_decay参数从入门到精通

Weight Decay是一个正则化技术,作用是**抑制模型的过拟合**,以此来提高模型的泛化性。 目前网上对于Weight Decay的讲解都比较泛,都是短短的几句话,但对于其原理、实现方式大多就没有讲解清楚,本文将会逐步解释weight decay机制。

iioSnail的博客 4万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Logtail从入门到精通(一):日志采集杂谈

什么是日志 提到日志,很多人的第一印象就是系统打到本地的Log文件,出问题的时候看一下这个Log文件,用来排查问题。更进一步可以根据这个Log文件做实时的监控、第三方审计、入侵检测、行为分析、数据大盘制作等等。 马老师说过:阿里巴巴不是零售,我们是一家数据公司,为了数据才做电商、做物流、卖东西。我们认为日志是记录世间人和物所有行为的一种方式,是数据中极...

weixin_34087307的博客 940

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Docker处理日志的方法&日志收集工具比较

测试logstash:docker run -it mylogstash:0.1.0 logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' http://www.jianshu.com/p/8384f6cd0f22 https://www.cnblogs.com/richaaaard/p/6109595.html ==...

weixin_33688840的博客 983

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ELK转EFK

因为之前使用ES比较多,所以也认为ELK是一个不错的解决方案,ELK(Elasticsearch + Logstash + Kibana)来管理日志。Logstash是一个具有实时渠道能力的数据收集引擎,但和fluentd相比,它在效能上表现略逊一筹,故而逐渐被fluentd取代,ELK也随之变成EFK。EFK由ElasticSearch、Fluentd和Kiabana三个开...

weixin_34370347的博客 446

dataguard日志传输模式解析_日志收集工具简单对比

Logstashlogstash基于JRuby实现,可以跨平台运行在JVM上优点主要的优点就是它的灵活性,这还主要因为它有很多插件。然后它清楚的文档已经直白的配置格式让它可以再多种场景下应用。这样的良性循环让我们可以在网上找到很多资源,几乎可以处理任何问题。劣势Logstash 致命的问题是它的性能以及资源消耗(默认的堆大小是 1GB)。尽管它的性能在近几年已经有很大提升,与它的替代者们相比还是要...

weixin_39610964的博客 232

日志收集工具对比

日志收集服务

FeelTouch Labs 1440
上一篇: Kibana基本使用
下一篇: logstash input output filter 插件总结
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值