日志分析:阿里云 Logstash & Beats 简单低成本接入上千数据源

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Logstash & Beats,在整个 Elastic Stack 数据链路中,属于前数据链路,目的是把多源数据接入到 Elasticsearch 中,并由 Elasticsearch 进行各种分析及检索,所以对于 Elastic Stack 来说,前数据链路的数据接入难度及复杂度,决定了业务数据实时监测及问题定位的难度。如何快速、简单、低成本接入多源数据?本文告诉你答案。

Logstash & Beats,在整个 Elastic Stack 数据链路中,属于前数据链路,目的是把多源数据接入到 Elasticsearch 中,并由 Elasticsearch 进行各种分析及检索,所以对于 Elastic Stack 来说,前数据链路的数据接入难度及复杂度,决定了业务数据实时监测及问题定位的难度。如何快速、简单、低成本接入多源数据?本文告诉你答案。

本文作者:沐泽 — 阿里巴巴高级产品经理

本文字数:3454
阅读时间:6~10分钟

您将了解:
1、传统方式接入多源数据的难点
2、云上轻量化数据解决方案
3、云上数据接入的核心优势
4、如何搭建云上日志分析平台
5、如何实现数据迁移及数据同步
6、如何搭建 ELK 运维监控体系

image.png

【全链路云上Elastic Stack 全景图】100%兼容开源,9大独有能力

----> 直播回顾 | 请点击观看 :阿里云Elasticsearch 轻量化数据接入解决方案

数据接入的场景和挑战


image.png

(图 1)

场景一:收集日志文件,通过故障分析和告警监控,定位业务系统异常。

该场景下,当面临大规模业务场景,服务器数量1000+、日志增量超过TB级的情况下,用户会想如何降低日志接入门槛、如何实现网络访问配置的一致性,以及在多主机配置上,如何实现标准化和集中化管理。

场景二:云上 MySQL、Maxcompute 等数据库的业务数据接入阿里云 Elasticsearch,或者自建的 Elasticsearch 集群上做查询和检索。

在该场景下,会有很多数据的搜索、解析,以及后续的聚合、实时查询分析的工作,所以如何处理云上多样的数据来源和数据格式,并在处理过程中保障完善的监控报警、日常处理方案,这些都是整个数据接入场景下面的问题及挑战。

传统数据链路接入流程


image.png

(图 2)

在搭建开源 Elastic Stack 集中式日志平台的时候,我们可以在网上找到很多教程,最常见的就是在应用服务器上,通过部署 Filebeat 去采集服务器日志文件,并近实时推送到 Logstash,再由 Logstash 数据管道的 Pipeline,对数据进行处理后,推送到 Elasticsearch 进行储存和分析。

在操作上述流程时,我们会面临较多复杂、冗余动作。

首先大家需要在应用服务器上,下载并解压 Beats 安装包,但当用户的业务规模较大时,将面临数百台服务器的 Beats 安装,同时还要配置 Beats 采集器,并逐一验证。在这个过程中,还会遇到网络一致性、监测采集器 Agent的运行异常的情况。而通过本地搭建统一的监测平台,又是一件比较困难的事情。

当用户希望把数据通过 Beats 传输到 Logstash,并做后续处理时,还需要单独购买 ECS 机器,安装部署 Logstash 实例。最后是配置 Logstash Pipeline,并启动管道处理。那么在用户对数据处理的过程中,同样会面临复杂的处理逻辑,比如多管道的集中处理。如果还需要使用额外插件,需要手动安装配置。

以上问题都是比较细节的操作,但对开发者来说,上述数据链路的接入流程,是非常麻烦且会耗费大量的精力和成本的。而且在运维监控及业务拓展方便,依旧会面临以上操作的重复配置操作。

云上轻量化数据接入方案


通过云上轻量化接入方案,简便、快速接入多源数据。

image.png

(图 3)

阿里云 Elasticsearch 控制台,不仅仅是对数据的检索和分析,还包括 Beats 数据采集中心,可以帮助用户集中下发客户端,也提供 Logstash 数据传输工具,在 Elasticsearch 数据搜索和分析过程中,会结合 Kibana 可视化数据管理。还有 X-pack 商业插件能力,其中包括APM / 可视化 / Monitor 等各种功能组件。

云上 Beats 数据采集中心

在最新上线的阿里云 Beats 数据采集中心,帮助用户接入 ECS 服务器的日志数据,只需要两步

image.png

(图 4)

第一步:采集器的配置;
支持用户选择采集器类型和版本,目前支持通用的Filebeat、Metricbeat、Auditbeat 和 Heartbeat 四种,版本目前支持6.8.5的,与阿里云 Elasticsearch 和 Logstash 兼容。

用户可以灵活的配置他想要的 Beats 采集器的 Output,包括是否使用Monitor、是否启用 kibana Dashboard 这样的功能。我们也会帮助用户做一些校验,保证配置能快速拉起。

image.png

(图 5)

第二步:采集器安装;
通过解析用户上一步的“Out / put”,帮用户过滤网络情况,并获取专有网络下的 ECS 机器,这样能保证网络的连通性,不需要用户在安装的过程中,再去监测网络是否相通。

另外在列表上,我们支持用户批量选择服务器。用户在选择、安装采集器实例后,实现一键安装并下发同样的Agent。

用户通过以上两个步骤做简单UI化配置,就能够实现快速接入。同时在运维检测中,通过一些包括状态和心跳的监测,更好的监控 Agent 安装和运行的情况。

Logstash 数据处理全托管

阿里云 Logstash 提供数据处理云上全托管服务,降低用户部署和运维成本。

image.png

(图 6)

能力一:可弹性收缩的独立部署
Logstash 实例是部署在 VPC 网络下。在同一集群下,用户可以选择部署多个 Logstash 节点,每个节点可以部署多个 Pipeline 进程,从而处理不同的数据管道流程。

在云上部署的时候,随着用户量、数据量的增多,用户可以通过水平扩展方式,增加节点个数,灵活满足用户业务扩缩容的需求。

能力二:完善的云上运维监控;
不管是 Elasticsearch,还是 Logstash ,用户不仅是接入阿里云的云监控,同样可以自定义报警规则,从而较好的监测在数据传输和处理的过程中出现问题,并对异常排查。

由于本身 Elasticsearch 和 Logstash 可以实现打通,当用 Logstash 去关联阿里云 Elasticsearch 实例,就能够用 X-pack 监测,并通过 Kibana 对各种指标监控。


image.png

(图 7)

能力三:提供 Logstash 开源原生能力
阿里云 Logstash 100%支持开源能力,其中包括带条件和多管道的动态数据流。通过管理 Elasticsearch 实例,使用 X-pack 对数据管道做集中化管理;再者就是通过身份验证和加密,来保障数据传输过程中的安全性。

能力四:阿里云 Logstash 独有能力
1、独立管道管理和配置界面;用户可以在上面进行创建、修改和部署,甚至是复制现有管道配置。简单两步,帮助用户完成整个 Logstash pipeline 的配置。
2、提供简单的端口校验,保障用户配置在整体网络下是相通的。
3、集群监控,日志查询的模块,用户不用去黑屏上,查看日志哪些地方有报错。
4、提供扩展文件的管理中心,通过上传配置使用第三方文件。

云产品数据链路打通


用户网络访问日志,会根据业务的不同,将数据存储在不同介质中。如文件存储在 OSS、本地文件缓存在 MySQL、或者将日志数据,存储在阿里云 LogService 上。

image.png

(图 8)

阿里云 Logstash 灵活的插件中心,帮用户对接各种云上数据源
Logstash 可以通过 SLS input 插件、Maxcompute input 插件,去读取 SLS、Maxcompute 上的数据。在日志采集方面,同样会去读取日志存储的文件系统,Logstash 会更多的做一些日志的截取和过滤的功能,去实现各种日志的格式化。

相较于开源,阿里云 Logstash 最大的不同点,是做了云上数据链路打通,用户可以更为方便的对接云上数据源,像 RDS,通过 Logstash jdbc的插件去完成。

云上数据接入的核心优势


Logstash & Beats 在云上数据接入的构成的核心优势:在海量数据源中,实现稳定可控的快速接入。

image.png

(图 9)

海量数据
支持安装各种 Beats ,Logstash 多管道处理多数据流程,采集海量服务器日志、Metric指标。并对接云上多数据源,针对将数据存在 Maxcompute、MySQL 里的用户,都可以进行对接。

快速接入
提供UI化配置,帮助用户保障监测网络及配置的一致性,尽可能少的出现问题。同时支持服务器日志采集器批量下发,可以一次性部署 Agent,完成数据接入。

稳定可控
云上各种日志监控和报警规则上丰富的,方便用户直接检测 Agent 安装、心跳状态。不管是我们去添加/移除机器,或者添加/移除 Logstash 节点,在云上均可提供灵活的弹性伸缩及业务扩展。

搭建云上日志分析平台


快速实现日志数据接入,通用的就是搭建云上日志分析平台。

image.png

(图 10)

以客户案例来说,图10 中是一个互联网教育直播平台的系统架构,主营业务为在线教育。该业务会大量使用CDN等网络资源,从而产生较多的CDN Log,并通过转码、解码服务进行后续处理。所以对于这类用户来说,整个数据及日志链路是非常长的,而且直播对延迟监测要求是非常高的,像直播中的抖动、打开的问题,都需要能快速监测并定位问题。

针对客户的业务场景,我们通过运用图 10 中搭建的数据链路,帮助用户快速、实时的接入日志数据源,从而实现后续的监测、确定问题的定位。

在解决方案架构图上,通过 Beats 对用户各种 CDN Log、Metric、网络日志进行采集和集中处理,并接入 kafka 消息队列,建立缓存机制,解决吞吐量的问题,最后输送到 Logstash 处理和解析后,结合阿里云 Elasticsearch、Kibana,更好的完成数据分析和展现的过程。

云上数据迁移和数据同步


Logstash 帮助用户实现数据上云、迁移、同步。

image.png

(图 11)

场景一:用户自建集群,希望搬站上云,做集群间的迁移或备份,

用户自建集群的情况下,业务复杂度往往会比较高,且平台容量、扩展能力都非常有限,所以选择 Logstash & Beats 对希望上云的用户是一个非常好的选择。

阿里云的logstash,也可以对腾讯云、AWS 这样一些数据迁移。

如果已经有阿里云 Elasticsearch 集群的用户,想重新建集群,也可以通过 Logstash,在两个集群中进行数据迁移。

场景二:对接存于 OSS、Logservice、数据库上的数据

Logstash 会有各种 input / Output 插件,实现基于数据库、消息队列,与下游的一些计算引擎和存储系统同步,这样 Logstash 中间去做一些处理和 Data filter 功能,他也能非常灵活的通过 input、output 插件去进行对接,这也是 Logstash 做数据同步,完成数据接入基础。

ELK 运维监控架构方案


image.png

(图 12)

架构中,像路由器/网关的数据,需要 Packetbeat 去采集;在业务服务器上的数据,需要 Metricbeat、Auditbeat 进行采集;在日志服务器上的数据,我们通过 Filebeat、Auditbeat。这些 Beats 在阿里云上,都能够免费的去使用和批量下发安装的.我们通过 Packetbeat 去采集 Http 网络请求日志、DNS 日志,也可以通过 Metricbeat,搜集各种指标,包括一些硬件指标、数据库指标、容器指标的数据。

日志数据中 想 Weblog、Syslog,通过下游的消息队列 Kafka,传输到 Logstash,在 Logstash中进一步格式转化、过滤,最终存储到阿里云 Elasticsearch 的集群中,进行后续分析。

下游对接包含 Kibana、DataV、Grafana 运维可视化大屏,通过这样的大屏能够帮助用户更好的分析和查看数据情况。同时阿里云 Kibana 在告警配置、监测方面,也是有非常多的功能的,比如通过 Webhock,对接一些短信网关、邮件网关、或者通过钉钉给大家发送一些告警信息。

所以不管是业务服务器还是路由器/网关,去采集数据到 Logstash,对于整个运维监控架构的搭建是非常重要的,我们将进一步提供更好的接入方案,进一步降低数据接入门槛,提高数据易用性。

最佳实践


阿里云Elasticsearch数据采集解决方案
阿里云Elasticsearch通过Beats搭建可视化运维系统
从腾讯云迁移Elasticsearch索引至阿里云

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

• 阿里云 Elasticsearch 商业通用版,1核2G首月免费
阿里云 Elasticsearch 日志增强版,首月六折,年付六折
阿里云 Logstash 2核4G首月免费


image.png

image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
Java 应用服务中间件 nginx
微服务框架(二十九)Logstash Nginx 日志上报
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Logstash Nginx 日志上报 本系列文章中所使用的框架版本为Spring Boot 2.0.3...
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(三十)Logstash Kong 日志上报
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Logstash Kong 日志上报 本系列文章中所使用的框架版本为Spring Boot 2.0.3-...
|
3月前
|
JSON Java 数据格式
微服务框架(十三)Spring Boot Logstash日志采集
  本文为Spring Boot中Log4j2对接Logstash,进行日志采集。Logstah只支持log4j,使用log4j2时需要通过TCP插件调用 此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。
|
4月前
|
SQL druid Java
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
springboot +logback+阿里数据源(druid)打印sql日志以及简化日志输出方式
333 0
|
7月前
|
存储 消息中间件 监控
阿里云sls日志服务简介和使用流程
阿里云SLS(Simple Log Service)是一种高度可扩展的、低成本的日志托管服务,它提供了全面的日志采集、存储、分析和呈现功能。阿里云SLS是全球首个在公共云上提供日志服务的企业,它具有高可靠性、高稳定性和高安全性等特点,可满足不同企业的日志需求。
|
7月前
|
存储 数据采集 安全
通过filebeat、logstash、rsyslog采集nginx日志的几种方式
由于nginx功能强大,性能突出,越来越多的web应用采用nginx作为http和反向代理的web服务器。而nginx的访问日志不管是做用户行为分析还是安全分析都是非常重要的数据源之一。如何有效便捷的采集nginx的日志进行有效的分析成为大家关注的问题。本文通过几个实例来介绍如何通过filebeat、logstash、rsyslog采集nginx的访问日志和错误日志。
257 0
|
6月前
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
125 0
|
6月前
|
NoSQL Redis 索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
|
3月前
|
Linux
利用Logstash实现GrayLog日志转发到第三方日志平台
利用Logstash实现GrayLog日志转发到第三方日志平台
34 0
|
3月前
|
存储 监控 Serverless
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况【1月更文挑战第23天】【1月更文挑战第114篇】
63 5