基于ELK实时日志分析的最佳实践

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: 摘要:在2018云栖大会深圳峰会大数据分析与可视化专场上,由阿里巴巴搜索引擎事业部开放搜索团队的吴迪带来了“基于ELK实时日志分析的最佳实践”的主题分享。介绍了传统的日志分析、ELK的概念和ELK实时日志分析的实践。

在2018云栖大会深圳峰会大数据分析与可视化专场上,由阿里巴巴搜索引擎事业部开放搜索团队的吴迪带来了“基于ELK实时日志分析的最佳实践”的主题分享。介绍了传统的日志分析、ELK的概念和ELK实时日志分析的实践。
数十款阿里云产品限时折扣中赶快点击这里领券开始云上实践吧!
直播视频回顾
以下为精彩视频内容整理:

什么是日志

首先来说一下日志,日志是属于程序的一部分,在编写程序的时候也就写好了日志。日志的作用是为了排查问题,尤其是突发的问题,一般线上出了问题首先翻日志。日志还可以给我们提供报警监控的功能,通过监控日志的变化,通过日志中可以看出系统出现的问题甚至做出预测。

传统的日志分析

通常用Linux中小工具去搜索关键字能得到我们需要用到的信息。这种传统的日志分析的效率是非常低的,尤其是当业务越来越多系统越来越庞大的时候,这时在搜集日志就会变得非常的困难。下面是针对传统日志分析过程中遇到的几点问题:
1、日志的集中收集与存储:当有上千个节点的时候,日志是分布在许多机器上,如果要获取这些日志的文件,不可能一台一台的去查看,所以这就是很明显的一个问题。
2、 日志搜索:这种搜索是基于文件的,并且这种效率也会比较低,并不能表达出逻辑上的关系,并不能对系统的全局作出判定。
3、 分析聚合及可视化:由于日志分布在不同的机器上所以查看起来很困难。
4、 安全、角色管理:当系统变大后就会有上百个人来查看日志,不同角色不同级别的人看到的是不同的日志而不是所有的人都能看到所有的日志,所以传统的日志可能就会有安全上的问题。
5、 可伸缩性:当系统越来越大的时候,会产生大量的日志。

ELK

现在在开源的生态里面,解决日志收集、搜索、日志聚合和日志分析的一个技术站就是ELK。可能大家已经接触过ELK,但在这里再给大家介绍一下,ELK是Elasticsearch+Logstash+Kibana的缩写。
Elasticsearch是一套搜索的框架,它的内核是Lucene,它把Lucene这个算法做了封装,提供了很方便使用的接口,以及有非常强大的扩展的能力。用Elasticsearch就可以很快速的做到全文检索的一个服务。
Logstash也是Elasticsearch公司的一个产品,是用来做数据源的收集,最初它是为了做日志但后来它不光做日志的收集只要是数据都可以用它来收集,它就是一个收集器。
Kibana可以把它理解为一个UI,但它不是一个简单的UI,通过Kibana可以看到ES上的所有数据,在这上面可以做各种的展示可以做各种图形化的界面。
这是ELK的一个介绍。因为ELK在开源的搜索领域是非常的火热,只要提到搜索都会想到Elasticsearch,提到数据的搜集就会想到Logstash,所以现在这套组件都成了标配了。

阿里云Elasticsearch生态

_1


这是一个阿里云的Elasticsearch生态,所有的这些组件都是基于阿里云的。可以看到这个Beats和Logstash是平行的,它俩的作用基本类似。和阿里云合作最重要的一点就是X-Pack,X-Pack提供了很多强大的功能,比如说Security就能解决前边的一些问题,不同级别的人可以看到不同的字段。数据本身也可以得到一个保护,安全也基本上可以放心。再介绍一下Alerting,如果用户在世界的多个地方登录了可以通过Alerting这个功能报警出来,可以做一个预警,因为这种行为可能是被黑客入侵。Monitoring是为了监控整个Elasticsearch技术站的组件。Graph可以分析出在Elasticsearch上所有的数据之间的关系,来帮我们更好的组织数据。Reporting是可以通过对数据的一些计算,能够分析出数据的变化,然后通过Reporting的机制告诉我们这些数据的变化。MachineLearning是在把数据导入Elasticsearch以后通过MachineLearning以后能够通过统计学上的一些计算能够分析出Graph一段时间的数据,甚至可以预测出未来变化的走向。所有的这一切都是建立在阿里云上面的。

数据安全

_2


右边这个大的虚线框是VPC网络,用户的数据和Elasticsearch的数据站都是在VPC里面,接触阿里云的ECS、VPC可能都知道它对于用户来说就是一个封闭的网络,外面进不去里面出不来,除非用户授权。右侧是用户的应用服务,用户的搜索都是在用户的VPC里面。中间是公网服务,通过有密码的保护,黑白名单的限制来保护服务暴露在公网上的安全性。Logstash可以把语音服务器、云数据库和云存储的数据都是可以导入到VPC里面的ES服务,用户这边可以使用到ES的数据。这样一来就可以保护用户的数据不被泄露。

Logstash架构

_3


Logstash这个架构非常简单,Input就是我能对接各种数据源,比如数据库、OSS等都可以对接。Filter做一些数据的处理,处理完了以后输出,输出可以输出到ES也可以输出到别的系统。所以Date Source通过Logstash输出到Date Destination。

通过Kibana搜索日志

把日志导入到ES这个技术站里面之后,其实就是通过ES解决了日志聚合的问题,可以散布在各个机器上的日志收集到一块,通过ES聚合在一起,通过Kibana就可以很方便的去搜索日志。

通过ES API定制搜索条件

通过API去搜索日志库,通过Kibana可以直接写查询的条件,这个是非常的方便的。

阿里云Elasticsearch性能

刚刚说了Elasticsearch的特性,我们在回来说一下Elasticsearch在阿里云上的一些性能。

_4


我们做了一个Elasticsearch的压测主要是5.5.3版本的,分别在2核4G、4核16G、16核64G的上做了一个压测。使用的是官方的压测工具,没有改任何的参数,都是默认的参数。可以看到这条绿色的线是官方的geonames3.3GB,单doc311B,在16和64G的时候可以达到每秒14万doc。后来做了更进一步的压测就是说多线程的时候它的性能会更好。这个比市面上的同类软件是要高很多的。

业务架构

_5


当需要搭建ELK的时候业务架构是什么样的。先看一下Beats,Beats是可以和业务部署在一起。Beats可以直接到Elasticsearch也可以直接到Logstash,Beats和Logstash的整合应用是现在比较流行的。整体的架构来看Logstash和Elasticsearch一般会分开部署,因为Logstash属于CPU密集型的组件,Elasticsearch属于I/O密集型的组件,所以在部署的时候会把两者分开。

实践

基于机器学习的日志分析

_6


机器学习可以对日志进行分析,这个虚线分析出这段时间内的一个趋势,然后分析所有日志的时候就会发现数据不太对的时候就可以通过Reporting来反馈给我们,并且还可以预测出趋势。

ELK监控告警

ELK监控报警是对ELK技术栈的一个报警,是对索引、节点的一个监控。我们致力于把搜索事业部一些很强大的功能通过阿里云这个平台向外输出,其实这个特性就是我们技术沉淀的一个输出,它会自动的分析整个ES的健康状况。然后把ELK的架构做一个自动的优化。

本文由云栖志愿小组陈欢整理编辑

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
620 64
搭建ELK日志收集,保姆级教程
|
2月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
249 1
日志收集和Spring 微服务监控的最佳实践
|
2月前
|
负载均衡 监控 安全
5 个 IIS 日志记录最佳实践
IIS日志记录是监控Web服务器性能与安全的关键。本文介绍启用日志、应用池配置、负载均衡、敏感数据防护、日志集中管理及保留策略等五大最佳实践,助力高效分析与合规审计。
181 1
|
2月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
106 0
|
7月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
7月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
535 117
|
6月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
730 54
|
4月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
639 0
|
6月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
718 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
5月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。