服务器日志快速入湖实践

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
对象存储 OSS,20GB 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 阿里云提供的企业级数据湖解决方案,存储层基于阿里云对象存储 OSS 构建,本文主要介绍服务器日志如何快速入湖

前言

社会在不断发展,科技日益更新迭代,改变了传统的衣食住行,各种各样的APP成为当代年轻人的手机必备,这背后是无数的服务器在提供着技术服务,导致服务器每时每刻都会产生各种类型的日志,当业务出现问题时,运维人员需要在海量的日志中查找需要的信息,给工作带来巨大挑战。

日志入湖后,运维人员可以利用湖上的生态对日志作各种处理,如搜索、离线分析,其他使用者分析师、运营,也能合理的利用数据湖中的数据,来进行多需求的计算分析,如机器学习、实时计算、离线分析、数据下载、搜索等。

阿里云提供的企业级数据湖解决方案,存储层基于阿里云对象存储 OSS 构建,本文主要介绍服务器日志如何快速入湖

服务器日志入湖解决方案

1.开源方案

通过开源的采集器 Flume/Logstash/Beats 等,将服务器日志摄入OSS,插件多,生态广泛,缺点是可靠性、性能表现一般

2.SLS 快速入湖

日志服务(SLS)是云原生观测分析平台,为Log/Metric/Trace等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能,全面提升研发、运维、运营和安全等场景数字化能力。

通过logtail(阿里千万实例可观测采集器,已开源 https://github.com/alibaba/ilogtail)采集服务器日志到SLS,SLS将日志投递到OSS,简单,可靠

流存储:弹性、高可靠

实际业务场景如出行打车遇到节假日,出现高峰用车场景,会导致峰值流量远超过数据存储服务器上限,打爆网关,导致业务不可用。

SLS 通过流存储做高可靠的缓冲,数据存储分区(shard)自动伸缩,抗住峰值写入流量;按量付费,0预留成本;存储3备份冗余,数据安全可靠。

采集:高性能、高质量

开源采集器如Flume官方性能报告如下图所示,性能表现一般:

Logtail采集性能可以达到单核100MB/s,相比开源采集Agent有5-10倍性能优势,能节省服务器的cpu/mem开销,避免影响服务器上核心业务,具体报告可见https://ata.alibaba-inc.com/articles/224523?spm=ata.25287382.0.0.36c97536irIv46

采集:运维负担低

开源的采集器如Flume等,采集配置需要在每台机器上手动配置,当集群过大时运维难度大,手动运维更容易产生问题,如配置遗漏,导致集群配置不一致;agent要重加载配置,流程复杂,agent crash等质量问题。

logtail 安装方便(控制台自助安装),配置中心化,通过机器组管理(可以服务端统一配置管理,不需要在机器上散落在各地手动运维配置管理)

投递:全托管、模板化

投递配置简单,全托管模式,方便快捷,按量付费,提供丰富的入湖模板,方便用户灵活使用,提供整个数据链路的仪表盘和告警

SLS助服务器日志快速入湖实践

1.开通SLS服务并创建project

  • 开通 日志服务(SLS)( https://www.aliyun.com/product/sls),创建一个属于自己的project,填写project名称,全局唯一,选择所属地域(如果要采集的机器组为阿里云ECS,地域选择ECS所在地域),服务日志为用户在当前project操作记录,可以按需开通

2.创建logstore

  • 进入对应的project,创建一个logstore(logstore 是日志服务中日志数据的采集、存储和查询单元),你可以将一类日志存储在一个logstore中,填写logstore名称,其他默认即可,点击确定

3.Logtail采集

Step1:创建配置

  • 点击对应的logstore,点击数据接入,增加logtail配置,根据业务需求选择logtail的方式,本文以单行-文本日志为例

Step2:创建机器组

  • 根据你的机器类型进行机器组配置,如ECS,自建机器,本文以ECS为例,阿里云ECS在对应机器上默认安装logtail客户端,自建机器参考相关文档,点进去有相关介绍
  • 选择实例,logtail提供多种实例选取方式,可以根据业务实际业务来选择,本文手动选择实例,可以通过关键词,如ip地址来搜索,找到对应机器,勾选上,可以同时勾选多台机器,高级选项,可以忽略
  • 点击立即执行,等待执行成功后,点击确认安装完毕
  • 设置机器组名称,点击下一步,  机器组Topic默认为空,不设置,如业务需要,可参考下面帮助信息进行设置

Step3:机器组配置

  • 选择源机器组(上一步配置完毕的机器组),可以选择多个源,让其成为应用机器组,点击下一步

Step4:logtail配置

  • 日志路径:对应机器组中机器要采集的文件路径,可以用*来表示一类的采集文件,上方右图为ECS日志所在路径,/home/oss_test/test.txt 和/home/oss_test/oss1/test2.txt,只需在日志路径中配置上方左图所示配置,最上层的采集根目录/home/oss_test/,需要采集的文件类型*.txt,即可采集该目录下所有文件后缀.txt的文件
  • 设计采集黑名单:可以设置忽略的目录和文件
  • 是否为Docker文件:当被采集的机器为容器时,需要打开该配置
  • 模式:可以选择日志被采集的模式,如单行,多行,正则匹配
  • 丢弃解析失败日志:选择解析失败的日志是否被采集
  • 最大监控目录深度:采集目录被监控的深度

Step5:查询分析配置默认即可,点击完成,点击查询日志,进入查询界面

Step6:查询,点击查询按钮,查询结果有数据,代表日志采集到logstore,可以开始投递

4.OSS投递

数据投递提供全托管服务,方便快捷,按量付费,投递不收取读取 SLS 流量费用,提供多个入湖模板,让存储更好匹配计算

Step1:填写基本目标信息

  • OSS Bucket:填写目标的OSS Bucket
  • 文件投递目录:数据将会放置在目标Bucket的文件目录下,也可以理解是一个文件路径的前缀。可不配置,将按分区格式配置动态生成目录
  • 文件后缀(可选):以此为后缀或由存储格式和压缩类型自动生成。
  • 分区格式:对于计算引擎Spark、Flink等了解的同学对数据分区(partition)的概念不会陌生。目前SLS的OSS投递功能支持用户使用自定义的时间格式来按照时间生成分区(业务时间或者其他自定义字段规划中)

Step2 :配置权限

  • 使用RAM角色来配置好Logstore的读取权限和OSS的写权限,用户还可以通过自定义角色配置粒度更细(如特定Bucket的写权限,特定Logstore的读权限等)。

Step3:配置输出格式

  • 投递大小:代表着会收集投递大小的日志数据量进行投递,无特意需求,默认就好
  • 是否压缩: 可以降低用户成本,默认就好
  • 存储格式: 文件在oss存储的格式,无特殊需求默认json,不投递tag字段,减少日志大小,特殊需求可以参考oss投递详细文档

Step4:配置时间选项

  • 投递时间:决定任务的生成间隔,投递大小或者投递时间满足任一条件会完成一次投递,所以用户可以根据自己使用场景配置合理的投递时间,比如在用户流量较小的情况下,可选择偏长的投递时间,防止出现过多小文件。
  • 开始时间:为开始投递的起始日志收集的时间,可选择 ttl- now任意的时间。
  • 时区选择:时区选择会影响到最后具体的分区partition路径

Step5:确认,启动

Step6:投递概览和任务管理

在配置结束后会跳转到数据投递概览页面,也可以在 作业 - 数据投递(新版)中找到创建的任务

可以在数据投递概述页面查看投递任务信息,包含基础信息和统计报表,可以修改任务配置和查看任务运行情况

更详细的细节可以参考官方文档:https://help.aliyun.com/document_detail/371924.html

总结

SLS提供logtial采集+OSS投递入湖快速解决方案,logtail采集可靠性强,性能优越,运维成本低廉,极大降低了用户的成本。数据通过SLS作为缓冲,更能抵御数据洪峰。OSS投递开箱即用,全托管服务,丰富的存储格式,可视化观察投递任务进展,带给用户更好的体验。SLS还提供更丰富采集方式,如数据导入,云产品日志采集,SDK采集等,详情请参考https://help.aliyun.com/document_detail/128134.html。希望SLS能帮助用户实现日志价值,助力业务发展。

若有收获,就点个赞吧

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
14天前
|
Linux 文件存储
定期删除服务器n天前日志
该内容介绍了如何在Linux中删除指定目录及子目录下超过n天的文件。使用`find`命令结合参数`/nas/logs/* -maxdepth 3 -type d -ctime +6`查找6天前的目录,然后通过`xargs rm -rvf`进行删除。在CentOS中,可以编辑crontab设置定时任务,例如每天1点执行此删除操作:`0 1 * * * find /nas/logs/* -maxdepth 3 -type d -ctime +6 | xargs rm -rvf`,其中`+6`可按需调整。
25 2
|
2月前
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
48 1
|
1天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
5天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
6天前
|
监控 云计算 开发者
探索云计算中的无服务器架构:从概念到实践
无服务器架构作为云计算领域的新兴技术,正在以其高效、灵活的特性吸引着越来越多的开发者和企业。本文将深入探讨无服务器架构的概念及其在云计算中的应用,通过实际案例展示如何利用无服务器架构构建可靠、可扩展的应用系统。
|
7天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
|
8天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
9天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
26天前
|
Apache
web服务器(Apache)访问日志(access_log)详细解释
web服务器(Apache)访问日志(access_log)详细解释