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

摘要: 目前logtail已承载阿里云全站、所有云产品服务、全球各Region部署、阿里巴巴集团(淘宝、天猫、菜鸟等)上重要服务的数据采集。每天采集接近百万服务器上数PB的实时数据,对接数千个应用与消费者。

什么是日志

提到日志,很多人的第一印象就是系统打到本地的Log文件,出问题的时候看一下这个Log文件,用来排查问题。更进一步可以根据这个Log文件做实时的监控、第三方审计、入侵检测、行为分析、数据大盘制作等等。


马老师说过:阿里巴巴不是零售,我们是一家数据公司,为了数据才做电商、做物流、卖东西。我们认为日志是记录世间人和物所有行为的一种方式,是数据中极其重要又极其庞大的一个组成部分。会产生日志的设备有:服务器、交换机、手机、传感器、IOT设备、智能设备...产生的日志类型有:网络的七层日志、OS日志、订单日志、支持日志、GPS定位日志、用户点击日志...产生的日志形式有:文本文件、二进制文件、syslog、udp日志...如何充分利用这些日志资源才是我们的核心技术和竞争力。

什么是日志采集

数据的价值是什么?数据的价值在于把数据变成行动。这里一个非常重要的过程是数据分析。提到数据分析,大部分人首先想到的都是Hadoop、流计算、机器学习等数据加工的方式。如果从整个过程来看,数据分析其实包含了4个过程:采集,存储,计算和理解四个主要步骤:


  • 采集:从各种产生数据的源头,将数据集中到存储系统。包括硬盘上的历史数据、用户网页的点击、传感器等等。
  • 存储:以各种适合计算的模式集中式存储数据,其中既包含大规模的存储系统(例如数仓),也有例如临时的存储(例如Kafka类消息中间件)。
  • 计算:形态多种多样,但大部分计算完成后会将结果再放入存储,而这个过程也可能迭代多次。
  • 理解:利用机器学习、可视化、通知等手段提炼出结论性或具有代表意义的数据并将结果呈现出来。


数据的采集是一门很大的范畴,从实时性上和每次传输数据规模上分,一般可以分为3类:

  • 实时采集:例如access log、database change log等
  • 定时任务:例如每隔5分钟从FTP或数据源去批量导出数据
  • 线下导数据:例如邮寄硬盘、AWS Snowmobile 卡车、阿里云的闪电立方等
    从数据的价值以及体量上而言,实时数据采集毫无疑问最重要的,而其中最大的部分就是日志实时采集。

为何使用Agent

实现日志的实时采集一般有2种方式:

  • 直接上传:在应用程序(或依赖的框架)中将日志直接上传到服务端。例如各种日志上传的SDK、Log4j的appender、docker driver等
  • 通过Agent采集:应用本身只产生日志,由Agent作为代理采集到服务端。例如将日志打到磁盘、syslog转发、从中间框架(docker engine、mysql、应用自带的monitor模块)中抽取等

下面我们来详细剖析一下二者区别:

对比项直采Agent
实现复杂度高,需要针对不同的应用/设备/日志存储端分别实现低,无需专门实现
性能开销低,直接上传,无额外性能开销较高,需要一层中转,例如本地磁盘、网络等,有一部分额外开销
应用影响高,由于日志采集和应用在同一进程,隔离性很难保证较低,日志采集和应用处于不同进程/设备,采集异常对于应用影响较低
耦合度紧耦合松耦合
可扩展性低,如果更换采集协议、采集目的端,代价极高高,只需更改Agent,无需对应用本身进行改造
可靠性较低,日志随应用生灭,应用crash时数据可靠性很难保证较高,通常由磁盘/中间框架实现持久化,具备一定的可靠性


从以上分析来看,两种采集方式各有优缺点、也有各自适应的场景:

  • 直采:适用于对性能/资源要求较高的场景,例如IOT/智能设备等对于资源要求极高,没有额外的资源独立部署采集Agent;例如负载均衡设备、CDN节点等日志产生量极高(每秒数百MB或者数GB的日志),只有直接上传方能满足性能要求
  • Agent采集:只要应用可以将日志输出(以文件形式保存到磁盘、syslog等)或者支持通用的接口拉取,Agent即可将日志采集到。大部分场景下松耦合、可扩展性、可维护性相比Agent额外开销更具优势

为何选用Logtail

日志采集Agent有很多,例如Logstash、Fluentd、Beats系列(FileBeats、MetricBeats、Packetbeat、Winlogbeat、Auditbeat、Heartbeat)、Nxlog、Telegraf、Heka、Nifi、Logspout、Datadog agent、Sematext agent、Splunk addon系列、Sumologic collector。。。

业界有那么多的Agent,每个Agent各种各样的功能和特性看起来让人眼花缭乱。但围绕日志采集这个最原始的需求展开,无非也就是功能、性能、稳定性、运维代价这4个方面:

  • 功能:作为选择Agent最基本需求,主要分为输入源、数据处理(除日志解析外,还包括过滤、压缩等)、数据输出。
  • 性能:不同类型Agent之间会有数十倍的性能差距。当日志产生速率较低且资源充足时,此项可以忽略;但大部分情况下采集Agent是作为整个集群的基础软件,在集群规模庞大的情况下,即使每台机器节省1%的CPU、10MB的内存也是很大一笔资金节省。
  • 稳定性:稳定的重要性无需多言,除保证自身运行的稳定外,Agent还需保证不能超出限定的资源使用Quota,以免对应用产生影响。
  • 运维代价:日志采集的运维主要包括:Agent部署、动态伸缩、配置管理、Agent升级、Agent异常监控。当只有数台主机时,Agent可以使用人肉的方式进行管理,但当集群规模扩大到数百及以上时,运维必须依赖有效的机制。

阿里云日志服务也有自己的采集Agent--Logtail。目前logtail已承载阿里云全站、所有云产品服务、全球各Region部署、阿里巴巴集团(淘宝、天猫、菜鸟等)上重要服务的数据采集。每天采集接近百万服务器上数PB的实时数据,对接数千个应用与消费者。之所以使用Logtail作为采集Agent也是经过上述四个方面的综合考虑。由于采集Agent数量众多,这里我们选择目前最主流的3款Agent进行对比:

  LogtailLogstashFluentdBeats系列
功能文本文件采集支持支持支持支持
 syslog支持支持支持不支持
 处理方式正则、anchor、分隔符、json任意组合插件扩展插件扩展只支持multiline
 过滤正则插件扩展插件扩展不支持
 压缩lz4插件扩展插件扩展支持
 功能扩展支持插件支持插件支持插件支持(修改源码)
性能采集性能极简单核160M/s、正则20M/s单核2M/s左右单核3-5M/s极简单核15M/s
 资源消耗平均CPU 2%、内存 40M10倍以上性能消耗10倍以上性能消耗内存消耗较低
稳定性多租户隔离自实现的隔离线程级隔离线程级隔离goroutine隔离
 硬性资源限制支持支持支持不支持
 资源动态调整支持不支持不支持不支持
 数据保存支持插件支持插件支持不支持
 进程守护支持辅助软件支持辅助软件支持辅助软件支持
 采集点位保存所有均支持只支持文件插件支持只支持文件
运维代价本地监控支持支持支持
 服务端监控支持Beta版本支持简单功能辅助监控软件扩展不支持
 集群自动缩扩容自定义标识机器组不支持不支持不支持
 运行时配置变更支持支持支持支持
 服务端配置管理支持Beta版本支持简单功能辅助软件扩展不支持
 自动升级支持辅助软件扩展辅助软件扩展不支持

相对主流的采集Agent,Logtail在采集功能上有一定的不足,对于输入源、处理方式等支持没有开源软件的多,但从目前的功能来看,可以满足95%以上的日志采集需求。但日志采集并不是能够采集到就可以。相对开源软件,Logtail的优势是有集团百万服务器、上万应用的练兵环境,很多问题纯粹从Agent和开源社区的角度并不会考虑到。因此经历了数年的迭代优化,在性能、稳定性、运维代价上,Logtail相对更加成熟,在性价比上具有绝对的优势。

原文链接

干货好文,请关注扫描以下二维码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网大佬马老师于昨日教师节正式卸任,让位现任CEO张勇;华为发布新一代CloudLink视讯解决方案,普惠4K+AI;联通……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go OPPO Reno2正式发布&#xf…

Logtail从入门到精通(二):开启日志采集之旅

摘要: 为了更好的了解日志采集,这里我们首先对日志采集中遇到的基本概念进行简要的介绍。Logtail相关概念为了更好的了解日志采集,这里我们首先对日志采集中遇到的基本概念进行简要的介绍。概念介绍项目: 项目(Project…

关于SDN的未来,Linux基金会专访阿里云网络大神

摘要: 近日,大家熟知的国际开源组织Linux基金会与阿里云进行了一次访谈。专访了阿里云网络团队掌门人江鹤。江鹤执掌阿里云网络产品线,并负责阿里集团网络虚拟化产品的研发管理工作。在软件定义网络(SDN)和网络功能虚拟…

5G 共建共享,究竟会带来什么影响?

戳蓝字“CSDN云计算”关注我们哦!共建共享真的来了。根据9月9日中国联通发布的公告,中国联通和中国电信正式签署了《5G网络共建共享框架合作协议书》,将在全国范围内合作共建一张5G接入网络。图片来源网络小枣君认为,这一事件对于…

object转float_人工智能-Object Detection API 模型转tflite并验证

最近在用TensorFlow Object Detection API训练目标检测模型,训练好的pb模型大小17.6M,用pb预测效果不错,于是想着如何在手机端运行,查看官网关于tflite的转换,网址:https://github.com/tensorflow/models/b…

Multi Task Learning在工业界如何更胜一筹

摘要: 本文主要介绍多任务学习和单任务学习的对比优势以及在工业界的一些使用。如何从单任务学习转变为多任务学习?怎样使AUC和预估的准确率达到最佳?如何对实时性要求较高的在线应用更加友好?本文将以淘宝实例为大家进行分享多任…

rsync一行代码实现远程文件同步之修改默认22端口

由于需求需要把应用服务器上的日志文件同步到文件服务器上,但是又不能用22端口 文章目录一、应用服务器脚本修改如下二、文件服务器操作三、执行脚本测试四、应用服务器生成ssh key五、文件服务器添加key5.1. 打开.ssh文件夹目录:5.2. 创建authorized_ke…

上云难?TA霸气回应:不要你觉得,一键上云 so easy!

戳蓝字“CSDN云计算”关注我们哦!图片来源网络2019年阿里提出的“All in Cloud”战略以及《全球云计算 IT 基础设施市场预测报告》的数据结果,都在表明企业上云已成不可逆之势;但上云事故接二连三发生似乎又在宣示企业上云之路道阻且长&#…

基于阿里云HiTSDB搭建工业物联网平台实践

摘要: 基于阿里云全面的物联网、云计算与大数据技术搭建云端的企业能源管理物联网平台实现能耗数据采集、统计分析、平衡调度、节能优化等全面的能源管控协同平台。是企业生产运行保障的利器,也是大量企业实现云上管理的实践案例。背景工业企业的能耗占了…

阿里巴巴开源的通用缓存访问框架JetCache介绍

摘要: JetCache是由阿里巴巴开源的通用缓存访问框架,如果你对Spring Cache很熟悉的话,请一定花一点时间了解一下JetCache,它更好用。JetCache可以做类似Spring Cache的注解式缓存,支持TTL、多级缓存、分布式自动刷新&a…

阿里深度学习的“金刚钻”——千亿特征XNN算法及其落地实践

摘要:随着十二点的钟声响起,无数人盯着购物车开启了一年一度的“剁手”之旅。可你有没有想过这购物狂欢的背后是什么支撑起了数据规模如此庞大的计算任务?其实不只是“双十一”,每一个用户的点击和浏览,每一件宝贝的排…

全球唯一:MySQL社区2018年度公司贡献奖颁给阿里云

摘要:在刚刚的Percona Live开源数据库大会上,MySQL社区委员会宣布将2018年度的MySQL社区公司贡献奖(Corporate Contributor Award)唯一颁给阿里云。图中右一为阿里云数据库RDS团队 彭立勋MySQL社区颁发次奖项是为了感谢阿里云多年…

模拟灰度传感器循迹的程序_灰度传感器的工作原理

灰度传感器是模拟传感器,有一只发光二极管和一只光敏电阻,安装在同一面上。灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。在有效的检测距离内,发光二极管…

Docker Nexus3 maven 私服(搭建篇)

文章目录一、环境准备1. 安装docker2. 启动docker3. 拉取镜像4. 目录权限5. 创建容器6. 监控日志二、登录配置2.1. 效果验证2.2. 登录2.3. 初始化一、环境准备 1. 安装docker 使用yum命令在线安装 yum install docker2. 启动docker systemctl start docker3. 拉取镜像 doc…

这个充电宝太黑科技了,又小又不用自己带线,长见识了~

戳蓝字“CSDN云计算”关注我们哦!现如今我们出门时,手机几乎都是随身携带支付用手机,移动办公用手机,刷剧玩游戏用手机手机可以说与我们工作,生活密不可分。只不过手机频率使用如此之高,也使得用电量大增当…

QuickBI助你成为分析师——群空间自主开通嵌入第三方报表权限

摘要: 用户使用过程中经常需要将创建的仪表板嵌入至自己应用中,方便查看。目前目前高级版群空间下支持用户自助化开通报表权限,通过获取拼接Token方式后台验证更加严格,并且支持实时更新/关闭Token以保证数据安全。用户使用过程中…

如何查看一个组件的 classid是多少_万一免五(万1免5)是骗人的吗?如何查看自己的交易费率是多少?万一免五最新问题汇总!...

前言每天都会遇到很多问题,大多数问题是重复的,所以整理到公众号里,希望你们看一下,别再一遍遍问了....万一免五开户是真的吗?随着监管越来越严,可以给万一免五的券商也越来越少,只要赶在万一免…

阿里云直播转点播最佳实践

摘要: 在前不久刚刚落幕的深圳云栖大会现场,有一个直播间体验项目引起了现场参会嘉宾的关注。云栖直播间是以视频云技术为基础,为云计算从业者量身打造了一个科技直播间,让每位嘉宾都可以过一把当“网红主播”的瘾。前言在前不久刚…

假如从餐饮店的角度来看架构…

戳蓝字“CSDN云计算”关注我们哦!麦当劳作为世界快餐业的巨头之一,可以说是风靡全球圈粉无数。小编个人也是麦当劳的忠实粉丝之一。今天的文章主要就是从餐饮店的角度来讲讲的互联网技术架构发展故事。为了方便故事的讲解,我们假定创始人名称…

Maven依赖方式引用UEditor的jar包

使用UEditor时候,如果不引入相关jar包,controller.jsp就会报找不到类的错误,一些功能也无法实现。但是maven中央仓库没有这两个相关的jar包,用直接导入的方式又显得莫名其妙,那么怎么通过maven方式依赖呢? …