背景说明
应用系统的日志收集与分析工作对运维来说至关重要。常见的系统解决方案中开源技术栈 ELK(Elastic Stack: Elasticsearch, Logstash, Kibana)是当前比较流行的选择。下面我们会讨论另一种构建于云原生设计的类似于 ELK 的解决方案 EKK(Amazon Elasticsearch Service, Amazon Kinesis, and Kibana)。
EKK 的优势在于组件是 AWS 托管服务,不必自己安装、运维,并且与 AWS 的其它服务轻松集成,可以很轻松的部署一套可靠、可扩展、安全、容错以及解耦和基于事件的解决方案。
传统的 Elasticsearch 中,日志数据的不断膨胀,对数据的生命周期管理越来越重要(应对此需求的新功能 ILM(index lifecycle management)在 Elasticsearch 7.0 中闪亮登场)。本文不介绍 ILM,介绍另一种解决方案:使用 Lambda 配合实现数据的轮换。
创建一个 SNS Topic(s3-to-es-by-hour) 触发 Lambda(s3-to-es-bulk-by-hour)
1. 创建 Topic
进入 SNS 服务页面
2. 订阅事件
3. 测试
消息
复制 Topic 的 ARN,下面 Lambda 会发送消息进来
创建 Lambda split-day-to-24-hour
负责把按天 ES index 的导入事件拆分成 24 个按小时导入的事件
https://s3.cn-north-1.amazonaws.com.cn/awschinablog/Amazon Elasticsearch Service, Amazon Kinesis, and Kibana82.jpg">
1. 更新代码
替换 SNS Topic ARN 为上面创建的 Topic
创建 SNS Topic 用于触发此 Lambda
3. 订阅 Lambda
4. 测试
2019 年 6 月 30 日的日志文件,会并发为 24 个 Lambda 按小时导入到 ES
Athena query data in S3 using SQL
1. 基于 S3 路径,创建 Table
2. 使用 Table 查询
作者简介
陈朕,AWS 解决方案架构师,负责基于 AWS 云计算方案架构的咨询和设计,在国内推广 AWS 云平台技术和各种解决方案。十余年分布式应用、大数据的分布式处理经验。
本文转载自 AWS 技术博客
原文链接:
评论