NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

基于 AWS 托管服务的日志收集分析系统

  • 2019-11-11
  • 本文字数:3145 字

    阅读完需:约 10 分钟

基于AWS托管服务的日志收集分析系统

应用系统日志的收集分析对于运维来说是至关重要的。一个可靠、安全、可扩展的日志收集分析解决方案在分析应用系统异常终止原因时能够让一切都变得轻松起来。


在这篇博文里,我们会探讨除了流行的 ELK(Elasticsearch, Logstash, and Kibana)解决方案之外的另一种选择,EKK 解决方案(Amazon Elasticsearch Service, Amazon Kinesis, and Kibana)。EKK 架构最大的好处是使得你不再需要自己亲自安装、部署、管理以及扩展日志收集分析系统,而将精力集中在分析日志,排除应用系统异常上面。


下面我们会介绍如何使用 EKK 架构来收集和分析 Apache web 服务器的日志,先来看看 EKK 架构的组成部分。


Amazon Elasticsearch Service 是一个流行的搜索和分析引擎,主要用来提供实时的应用系统日志和点击类流量的分析服务。本文中我们会利用 Amazon ES 将 Apache 的日志存储并索引起来,作为一项托管服务,Amazon ES 可以很轻松地在 AWS 云上进行部署、操作和扩展。此外使用托管服务,还能大大减轻管理上的工作,例如打补丁、异常监测、节点恢复、备份、监控等等。因为 Amazon ES 自身内部已经和 Kibana 进行了集成,所以省去了安装和配置等工作。获取 Amazon ES 的更多信息,请参考Amazon Elasticsearch Service


Amazon Kinesis Agent 是一个易于安装的单机版 Java 应用程序,它负责收集和发送日志数据。它会持续监控 Apache web 服务器的日志文件,并且将新的数据不断地发送到传输数据流中。同时它还负责文件回滚、生成检查点、异常发生后的重试,以及以时间序列为准可靠地发送日志文件。获取更多利用 Amazon Kinesis Agent 的信息,请参考Amazon Kinesis AgentGitHub 相关项目


Amazon Kinesis Firehose 提供了往 AWS 中加载流式数据的捷径。本文中,Firehouse 会获取并自动加载日志的流式数据到 Amazon ES 里,随后在 S3 中还会再进行一次备份。获取 Amazon Kinesis Firehose 的更多信息,请参考Amazon Kinesis Firehose


有了 AWS CloudFormation 的帮助,你只需要使用一个模板就能快速实现 EKK 架构。模板里准备了 Apache web 服务器,并使用 Amazon Kinesis Agent 和 Firehose 将它的访问日志发送给 Amazon ES 集群,同时在 S3 中备份日志数据,最后使用 Amazon ES Kibana endpoint 来对你的日志进行可视化分析。


AWS CloudFormation template 帮你快速完成如下工作:


  • 准备 Amazon ES 集群。

  • 准备 Amazon EC2 实例。

  • 安装 2.4.23 版本的 Apache HTTP 服务器。

  • 在 Apache HTTP 服务器之上安装 Amazon Kinesis Agent。

  • 准备 ELB(弹性负载均衡)。

  • 创建 Amazon ES 索引和相应的日志对应关系。

  • 创建 Amazon Kinesis Firehose 发送系统。

  • 创建所有的 IAM 角色以及相应的权限规则。例如,Firehose 需要将日志数据备份到 S3 中,那么就需要往目标 S3 桶上传数据的权限。

  • 为 Firehose 发送系统配置 CloudWatch 日志流和日志组,以便在日志发送出现异常时进行排查。


EKK 架构示意图:



要搭建本文中的 EKK 架构,你需要以下先决条件:


  • US West 区域的 Amazon EC2 密钥对。

  • US West 区域的 S3 桶。

  • US west 区域的默认 VPC。

  • 具有管理员权限的 IAM 角色,用来确保 Amazon ES 和 Amazon S3 通过 Firehose 获取到 EC2 上的日志数据


让我们开始吧:

从启动 AWS CloudFormation 模板开始创建整个系统

  1. 在 AWS CloudFormation 控制台上,选择来 启动模板。请确保你在 US West 区域。


提示:如果你想下载这个模板并随后上传至 AWS CloudFormation,你可以从随后给出的 S3 桶里面下载模板到你本地的电脑中。


  1. 选择下一步

  2. 在详细设置页面,提供以下信息:



a)软件栈名称:为你的 EKK 系统命名


b)实例类型:选择安装 Apache HTTP 服务器的 EC2 实例类型


c)密钥:选择 US West 区域的密钥对


d) SSH 位置:可以通过 SSH 连接到 EC2 实例的 IP 地址范围,默认为 0.0.0.0/0


e)web 服务端口:Web 服务器的监听端口,默认为 80


  1. 选择下一步

  2. 在选项页面,为 AWS CloudFormation 模板提供你想要的可选信息,然后选择下一步。



  1. 在回顾页面,检查模板的各项设置,点击确认然后选择创建系统。


整个创建过程大约耗时 10-15 分钟。

配置 Amazon Kinesis Agent

等待 AWS CloudFormation 创建完整个 EKK 系统,然后开始配置 Amazon Kinesis Agent。


  1. 在 AWS CloudFormation 控制台中,选择资源标签页,找到 Firehose 发送系统的名称。你在随后的第 3 步中需要它来配置 Agent。



  1. 在输出标签页,找到并记录下 Web 服务器的公有 IP 地址。你随后需要通过它 SSH 登录到 Web 服务器上配置 Agent。获得更多关于通过 SSH 连接 EC2 实例的信息,请参考通过 SSH 登录你的 Linux 实例.



  1. 在 Web 服务器的命令行上,运行以下命令:


Java


sudo vi /etc/aws-kinesis/agent.json
复制代码


该命令会打开配置文件,agent.json,内容如下:


Java


{ "cloudwatch.emitMetrics": true, "firehose.endpoint": "firehose.us-west-2.amazonaws.com", "awsAccessKeyId": "", "awsSecretAccessKey": "", "flows": [ { "filePattern": "/var/log/httpd/access_log", "deliveryStream": "", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }
复制代码


  1. 将在资源标签页获得的 Firehose 发送系统名称填入 deliveryStream 栏目中,然后保存并退出。

  2. 在命令行上运行以下命令:


sudo service aws-kinesis-agent restart


  1. 在 AWS CloudFormation 控制台中查看 Amazon ES 对应的逻辑 ID 域

  2. 在 AWS Elasticsearch 服务页面中你可以查看到由 AWS CloudFormation 创建的 ES 集群


配置 Kibana 并分析日志数据

Amazon ES 为每一个 ES 域都默认提供了 Kibana 的安装,你可以在域的展示页面找到 Kibana endpoin 的相关信息。


  1. 在 Amazon ES 控制台,选择 Kibana endpoin

  2. 在 Kibana 中,为索引名称和模式选项键入 logmonitor。该值是你为 Web 访问日志创建的 AWS ES 索引名称。来自 AWS ELB 的健康检查会产生 Apache 的访问日志,随后流经整个 EKK 数据线,最后在 Kibana 中被可视化展现出来供分析所用。

  3. 在时间选择中,选择 datetime



  1. 在 Kibana 控制台,选择发现标签页来观察 Apache 日志。



Kibana 提供了条形图、折线图、散点图、直方图、饼图等来对日志文件进行分析。



过去 30 天访问 Web 服务器的 IP 地址饼图



过去 5 分钟内访问 Web 服务器的 IP 地址条形图


你还可以将 http 响应、IP 地址等各类信息绘制成图表,甚至组合它们,以此来提供对于 Apache 日志的更深洞见。

监控日志收集分析系统

在 Firehose 控制台上选择流数据,然后选择监控标签页来查询 CloudWatch 中针对 Firehose 发送系统的度量值。



当日志发送失败后,Amazon S3 和 Amazon ES 上等日志会帮助你定位问题。比如,如下的截图显示了因为索引上的日期映射没有和源日志文件保持一致。


结论

本文中,我们展示了如何通过 Amazon Kinesis Agent, Amazon ES 和 Firehose 将 Apache 日志传输至 Kibana 并进行可视化分析。值得注意的是,Firehose 会根据应用系统产生日志的速率来自动进行伸缩。获取更多如何扩展 Amazon ES 集群的信息,请参考Amazon ES 开发指南.


综上所述,使用类似 Amazon ES 和 Amazon Kinesis Firehose 这类的托管服务,让管理和维护日志收集分析系统变得十分轻松。更棒的是,你还可以通过在日志流数据上直接运行 SQL 语句来进一步提升 EKK 系统的性能和功能。而这一切都可以基于本文中给出的AWS CloudFormation 模板


译者介绍:



刘磊,曾供职于中国银联电子支付研究院,期间获得上海市科技进步一等奖,并申请 7 项国家发明专利。现任职于 AWS 中国专家服务团队,致力于为客户提供基于 AWS 服务的专业大数据解决方案、项目实施以及咨询服务。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/ekk-log-collection-and-analysis-system-based-on-aws-managed-services/


2019-11-11 08:001117

评论

发布
暂无评论
发现更多内容

坚持梦想,心向光明

何元

ARTS 打卡计划 个人感悟

MATLAB R2023a 激活for Mac附安装教程

胖墩儿不胖y

Mac软件 数据分析软件 好用的数据管理

微信小程序:跨端开发框架的繁荣发展之路

没有用户名丶

“龙蜥社区系统运维MeetUp”乘云数字议题分享

乘云 DataBuff

smardaten实战丨谁说无代码不能开发出漂亮的门户首页?

热爱编程的小白白

ARTS 打卡第 8 天

自由

ARTS 打卡计划

银行科技外包存风险,金融机构如何做好软件供应链安全管理?

网安云

软件安全 供应商管理 软件供应链安全 金融业

BSN“五、十、百”工程实施半年成果丰硕,助力数字化转型和高质量发展

BSN研习社

【华秋推荐】无线充电的原理与解决方案

华秋电子

无线充电

Presto 设计与实现(三):依赖注入框架 Guice

冰心的小屋

guice presto 依赖注入 presto 设计与实现

2023上海国际智慧物业展览会|城博会

AIOTE智博会

城博会 智慧物业博览会

鸿蒙生态星河璀璨| 先行者李洋全力以赴,拥抱星辰大海

最新动态

四项代表厂商,Kyligence 入选 Gartner 数据及人工智能相关领域多项报告

Kyligence

数据分析 指标建设

基于 Easysearch kNN 搭建即时图片搜索服务

极限实验室

KNN 向量检索 图像搜索 easysearch

《知识图谱互联互通白皮书》正式发布,合合信息携手电子标准院共同推动技术规范化发展

合合技术团队

人工智能 知识图谱

Centos 7系统安装python 3.9.10详细教程。

百度搜索:蓝易云

Python 云计算 Linux centos 运维

中国大学生服务外包创新创业大赛丨借 AI 之力,助“记账”难题

热爱编程的小白白

MySQL切换字符集引发的思考(一)

石小天

MySQL 数据库 运维

R 语言入门与介绍

timerring

R 语言

通宵加班设计的储能板不能用?厚铜PCB设计这个问题一定要注意

华秋电子

储能

PoseiSwap 更新质押系统,并将在 8 月18 日开启“Trident ”快照

大瞿科技

OLED屏幕,LED,AMOLED哪个更好?

Dylan

LED 显示器 LED显示屏

Eudic欧路词典 for Mac(英语学习工具) v4.4.5增强激活版

mac

苹果mac Windows软件 欧路词典 Eudic mac 英语学习工具

火山引擎DataLeap:助力PICO落地数据流程规范,提升开发效率

字节跳动数据平台

数据中台 数据治理 数据安全 数据研发 企业号 8 月 PK 榜

分析商务报表使用什么工具?

对不起该用户已成仙‖

VisualStudio打包项目文件为.exe安装包

智趣匠

ARTS 打卡第1周(8.14~8.20)

向东是大海

ARTS 打卡计划 arts

Kyligence x 百胜数睿|电商全渠道运营增长新利器

Kyligence

数智化 指标平台

VuePress 数学公式支持

ReturnTmp

Illustrator 2023最新资源v27.8.1+补丁激活教程

mac大玩家j

AI Mac软件 矢量设计 矢量设计工具

基于AWS托管服务的日志收集分析系统_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章