使用Kinesis Data Firehose、OpenSearch Service和OpenSearch Dashboards分析和可视化流数据
实验概述和目标 大数据问题通常需要实时解决方案。这是大数据的五个V中的速度部分(容量、多样性、速度、真实性和价值)。这些情景的常见数据源包括视频流、应用程序日志和基础设备。在这些速度情景中的数据称为流数据。Amazon Kinesis是一套用于分析流数据的服务。
在这个实验中,您将使用Amazon Kinesis Data Streams从托管在Amazon Elastic Compute Cloud(Amazon EC2)中的Web服务器收集数据。然后,您将使用AWS Lambda处理和丰富数据。您将使用OpenSearch Dashboards分析数据,您可以在其中构建索引,然后可视化数据以创建仪表板。业务用户可以使用Amazon Cognito访问仪表板。
完成此实验后,您应该能够执行以下操作:
描述AWS管理控制台中的实验基础架构。
将Web服务器日志导入Amazon Kinesis Data Firehose和Amazon OpenSearch Service。
使用Amazon CloudWatch日志事件观察数据摄取和转换过程。
在OpenSearch Service中为这些日志构建索引。
使用OpenSearch Dashboards可视化数据,包括:
创建一个饼图,说明访问者用于访问网站的操作系统和浏览器。 创建一个热力图,说明用户是通过搜索页面还是推荐页面访问产品页面。
持续时间 完成此实验大约需要90分钟。
AWS服务限制 在此实验环境中,可能仅限于访问完成实验指示所需的AWS服务和服务操作。如果您尝试访问其他服务或执行超出此实验描述的操作,则可能会遇到错误。
情景 大学书店网站的管理员希望了解访问者与该网站的互动情况。她一直使用基于Web的JavaScript跟踪系统,其中包括有关用户活动的图表信息。这些信息包括用户所在的位置、使用的浏览器以及是否使用移动设备。数据还可以指示访问者是通过搜索页面还是推荐页面访问书店产品页面。
该网站的访问者数量每年都在增长。然而,由于许多访问者使用阻止第三方跟踪脚本的浏览器,她现在担心用户活动的数据不准确。
在研究如何获取更准确的数据时,她在AWS数据库博客上看到了《使用Amazon Elasticsearch Service、Amazon Kinesis Data Firehose和Kibana分析用户行为》一文。这篇文章详细介绍了使用流数据分析Web服务器日志并确定用户访问模式的解决方案。网站管理员听说过您的团队使用AWS服务创建数据分析解决方案,她向您寻求建议,询问博客文章中的方法是否能够提供与她当前的跟踪系统相同的信息。
该博客文章提供了一个包含搜索页面和推荐页面的基本网站文件,这些页面将访问者引导到一些产品页面。您决定使用这个基本网站来开发一个概念验证(POC),以使用流数据分析书店网站的用户活动。
该解决方案使用Kinesis Data Firehose来接收流式的Web服务器访问日志,然后使用Lambda函数来丰富数据。在使用Kinesis和Lambda处理数据之后,您可以使用OpenSearch Service来加载和索引数据。通过使用OpenSearch Dashboards,您可以创建数据的可视化,以提供关于大学网站访问者的洞察。您可以使用Amazon Cognito作为身份验证工具和AWS Identity and Access Management(IAM)来授权对仪表板的访问。
当您开始实验时,环境中将包含以下资源的内容,如下图所示。
基础架构旨在分析流数据,包括以下组件:
运行Web服务器的EC2实例。该实例位于公共子网中。
Web服务器运行在该实例上,包括以下文件的网站。如果您想查看网站包,请下载并打开此.zip文件:
httpd.conf:Apache Web服务器的配置文件 agent.json:将Web服务器连接到Kinesis Data Firehose传递流的配置文件 search.php:用户可以在该页面上搜索产品 recommendation.php:根据用户的搜索历史推荐特定产品的页面 echo.php、kindle.php和firetvstick.php:网站上三个产品的页面 一个Kinesis Data Firehose传递流,从Web服务器日志中捕获流数据。您将使用传递流将数据写入一个OpenSearch Service集群。
一个Lambda函数用于转换数据。如果您想查看该函数,请下载并打开此.zip文件。
一个OpenSearch Service集群,用于索引和存储数据。
一个OpenSearch Dashboards实例,用于构建数据可视化并从数据中获得洞察。
在实验结束时,您将使用这个架构执行几个任务。图表后面的表格详细解释了这些任务与实验架构的关系。
访问AWS管理控制台 在这些说明的顶部,选择“开始实验”。
实验会话开始。
页面顶部显示一个计时器,显示会话的剩余时间。
提示:要在任何时候刷新会话长度,请在计时器达到0:00之前再次选择“开始实验”。
在继续之前,请等待位于左上角AWS链接右侧的圆形图标变为绿色。
要连接到AWS管理控制台,请选择左上角的AWS链接。
会打开一个新的浏览器选项卡,将您连接到控制台。
提示:如果没有打开新的浏览器选项卡,通常您的浏览器顶部会有一个横幅或图标,显示浏览器阻止打开弹出窗口的站点的消息。选择横幅或图标,然后选择“允许弹出窗口”。
任务1:查看EC2实例及其安全配置 首先,查看Web服务器的EC2实例配置。
查找实例的公共IPv4地址。
要访问Amazon EC2控制台,在“服务”右侧的搜索框中搜索并选择“EC2”。
在“资源”部分,选择“实例(正在运行)”链接。
显示一个EC2实例列表。
选择名为“OpenSearch Demo”的实例的实例ID链接。
注意:如果尚未列出此实例,请等待直到它可用。
将公共IPv4地址值复制到您选择的文本编辑器中。
提示:要快速复制IP地址,请选择IP地址左侧的图标。
稍后在实验中,您将使用该IP地址访问Web服务器作为访问者并生成Web访问日志。
查看与Web服务器实例相关联的安全设置。
在OpenSearch Demo实例的摘要页面下部,选择“安全”选项卡。
在IAM角色下,选择“OsDemoWebserverIAMRole”链接。
打开IAM控制台。为控制对本实验中的资源的访问,创建了多个IAM策略。要查看每个策略的详细信息,可以选择策略名称左侧的加号图标。
选择“OsDemoWebserverIAMPolicy1”的链接。
选择“JSON”选项卡。
IAM策略以JSON格式显示。
审查策略。
此IAM策略使Web服务器EC2实例能够读取和写入TempS3Bucket S3存储桶。
注意:OsDemoWebserverIAMRole引用了其他策略,这些策略执行其他功能。如果您感兴趣,请查看并确定它们的功能。
非常好!在这个任务中,您审查了EC2实例及其如何受到保护。
任务2:查看Kinesis Data Firehose传递流 现在,您将查看Kinesis Data Firehose传递流的配置。
要访问Kinesis控制
台,请在“服务”右侧的搜索框中搜索并选择“Kinesis”。
注意:以“Kinesis”开头的多个服务,包括Amazon Kinesis Data Analytics和Amazon Kinesis Video Streams。选择仅为“Kinesis”的服务。
查看Kinesis Data Firehose传递流配置。
在左侧导航窗格中,选择“传递流”。
选择os-demo-firehose-stream传递流的名称链接。
注意在页面的传递流详细信息部分,源被指定为直接PUT。选择直接PUT是因为EC2实例正在运行Linux,并使用Apache作为Web服务器。由于EC2实例正在运行Linux,您可以使用Kinesis Agent(Linux)来收集Web服务器日志。有关更多信息,请参阅Kinesis Data Firehose传递流中的源、目标和名称设置。
还要注意,目标被指定为Amazon OpenSearch Service。传递流将向Amazon OpenSearch Service传递有效负载,以便您稍后分析日志。
在浏览器中向下滚动。注意监控已经启用并生成传递流指标。
在传递流详细信息页面的底部,选择“配置”选项卡,特别是“转换记录”部分。
Lambda函数os-demo-lambda-function与传递流相关联,用于在将日志交付给OpenSearch服务进行分析之前转换访问日志。
注意:从高层次上看,Lambda函数使用更多信息丰富Web服务器日志。例如,该函数通过将访问者的IP地址转换为位置,确定站点访问者的地理位置。如果您感兴趣,可以通过点击链接查看有关此Lambda函数的详细信息。
恭喜!在这个任务中,您审查了Kinesis Data Firehose传递流的配置。
任务3:查看OpenSearch Service集群 现在,您将查看为您创建的OpenSearch Service集群的配置。
查看OpenSearch Service集群的配置。
在传递流的配置选项卡中,在OpenSearch Service目标部分的域下,选择os-demo链接。
打开OpenSearch Service控制台。
审查集群配置。
在“常规信息”部分,将OpenSearch Dashboards URL复制到您选择的文本编辑器中,以便稍后在实验中使用。
您可能会注意到OpenSearch域正在删除资源。要查看进度,请选择“查看详细信息”。在继续之前,请等待操作完成。
注意:您可能会注意到集群健康为黄色。如果您选择该状态右侧的“信息”链接,将打开一个面板,并指出“黄色集群健康意味着所有主分片都已分配,但至少有一个副本未分配。所有单节点集群都以黄色集群健康状态初始化。”本实验中使用的集群是单节点集群,因此在整个实验过程中
它将保持黄色的集群健康状态。在生产环境中,您将配置具有多个节点的集群。增加节点数目到2个或更多个将会将集群健康状态改为绿色。
查看OpenSearch Service集群的安全配置。
选择“安全配置”选项卡。
审查“访问策略”部分中的信息。
此访问策略使用了两个角色:os_demo_firehose_delivery_role和osdemocognitoauthuserrole。
现在,您将查看有关这些角色的详细信息。
要访问IAM控制台,在“服务”右侧的搜索框中搜索并选择“IAM”。
在左侧导航窗格中,选择“角色”。
选择“osdemocognitoauthuserrole”的角色名称链接。
审查与该角色相关联的权限策略。
该角色允许OpenSearch域使用Amazon Cognito对用户进行身份验证。
返回到角色页面,选择“os_demo_firehose_delivery_role”的角色名称链接。
审查与该角色关联的权限策略“OsdemoFirehoseIAMPolicy”。
该角色比其他角色更复杂,但从高层次上看,它允许OpenSearch域执行以下操作:
访问Amazon S3并获取和写入对象。 获取Lambda函数并使用它们。 创建CloudWatch日志。 使用OpenSearch Service域执行配置等操作。
恭喜!在这个任务中,您审查了OpenSearch Service集群的配置。
任务4:配置OpenSearch索引 在这个任务中,您将登录到OpenSearch Dashboards,并为从Kinesis Data Firehose流式传输的Web服务器日志数据配置一个索引。
注意:索引是搜索引擎用于组织数据以实现快速检索的方法。结果的结构被称为索引。有关OpenSearch索引的更多信息,请参见索引数据。
登录并更改LabUser密码。
打开一个新的浏览器选项卡或窗口,转到先前复制的OpenSearch Dashboards URL。
使用以下凭据登录:
用户名:LabUser
密码:Passw0rd1!
注意:Amazon Cognito托管此登录界面。OpenSearch Service依赖于Amazon Cognito进行身份验证和IAM进行授权。
您将被提示更改密码。
输入以下内容作为新密码:Passw0rd1!2
选择“发送”。
如果弹出窗口要求您添加数据或自行浏览,请选择“自行浏览”。
OpenSearch Dashboards登陆页面显示。
删除现有的Web服务器日志。
选择菜单图标(),然后选择“Dev Tools”。
Dev Tools控制台将显示出来。
在控制台区域,将现有的JSON文本替换为以下SQL命令:
```
DELETE /apache_logs
```
该命令将删除OpenSearch Service EC2实例上已存在的apache_logs索引。
要运行命令,请选择蓝色箭头图标。
将显示以下响应:
```
{
"acknowledged": true
}
```
现在使用REST API创建OpenSearch索引。
注意:使用PUT方法创建索引。有关更多信息,请参阅创建索引。
将以下文本复制并粘贴到控制台中:
```
PUT apache_logs
{
"settings" : {
"index" : {
"number_of_shards" : 10,
"number_of_replicas" : 0
}
},
"mappings": {
"properties": {
"agent": {
"type": "text"
},
"browser": {
"type": "keyword"
},
"bytes": {
"type": "text"
},
"city": {
"type": "keyword"
},
"country": {
"type": "keyword"
},
"datetime": {
"type": "date","format":"dd/MMM/yyyy:HH:mm:ss Z"
},
"host": {
"type": "text"
},
"location": {
"type": "geo_point"
},
"referer": {
"type": "text"
},
"os": {
"type": "keyword"
},
"request": {
"type": "text"
},
"response": {
"type": "text"
},
"webpage": {
"type": "keyword"
},
"refering_page": {
"type": "keyword"
}
}
}
}
```
注意:将命令完全按照原样复制,否则在运行命令时可能会收到错误提示。您应该看到与以下图像中显示的完全相同的文本。
要运行命令,请选择蓝色箭头图标。
将显示以下响应:
```
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "apache_logs"
}
```
分析:该命令创建了一个名为apache_logs的新索引。当由于网站流量而更新Web服务器日志时,Kinesis Data Firehose传递流将根据命令中的映射将数据填充到OpenSearch Service集群中。该命令为OpenSearch Service数据库中的服务器日志文件中的字段设置了数据类型。现在您已经有了一个索引,可以生成一些Web访问日志,并基于此索引中的数据创建可视化图表。
恭喜!在这个任务中,您成功地创建了一个新的OpenSearch索引。
任务5:生成Web服务器访问日志 现在,您已经创建了索引,是时候测试基础架构通过Kinesis Data Firehose传递流将Web服务器日志流式传输到OpenSearch Service的能力了。
要开始测试过程,首先需要在Web服务器上生成一些日志。
打开一个新的浏览器选项卡或窗口,转到以下URL。将<PUBLIC-IP>替换为先前复制的公共IP地址:http://<PUBLIC-IP>/main.php 通过使用多个Web浏览器生成Web服务器访问日志。
浏览网站并访问各个页面。
使用不同的Web浏览器访问和浏览网站。
注意:对于此POC,您需要至少两个Web浏览器的数据。为了使结果多样化,您可以使用多个设备访问和浏览网站。
太棒了!在这个任务中,您填充了Web服务器日志数据,以便稍后使用OpenSearch Dashboards进行数据分析。
任务6:观察CloudWatch中的日志事件 现在,您已经生成了Web服务器日志,了解数据摄取和处理阶段如何与您的POC和支持其的基础架构配合工作非常重要。这部分基础架构以自动化的方式进行,访问者的访问日志被从Web服务器拉取到Kinesis数据流中。然后,日志被发送到Kinesis Data Firehose,Lambda函数对数据进行处理和丰富。丰富后,日志被反馈到Kinesis Data Firehose,然后传递给OpenSearch Service以供稍后分析。整个过程在毫秒级别内完成,对于使用OpenSearch Dashboards分析日志的相关方来说是透明的。
作为数据工程师,您如何观察POC中的数据摄取、处理和转换过程?CloudWatch Logs可以帮助您了解发生的情况。
在此任务中,您将查看当Web服务器访问日志被摄取到Kinesis Data Firehose中,然后由Lambda进行转换和丰富时生成的CloudWatch Logs信息。
注意:在此实验中,工作流事件被合并到名为/aws/lambda/aes-demo-lambda
-function的日志组中。您将在此日志组中审查的两个关键事件是从Kinesis Firehose接收的记录和转换后返回到Kinesis Firehose的记录。
访问日志组。
返回到打开AWS管理控制台的选项卡或窗口。 要访问CloudWatch控制台,在右侧的“服务”旁边的搜索框中搜索并选择“CloudWatch”。 在左侧导航窗格中,选择“日志” > “日志组”。 选择“/aws/lambda/aes-demo-lambda-function”日志组的日志组链接。 审查日志流。
日志流部分列出了多个日志流。
选择最新的日志流的日志流链接。
日志流中列出了事件,如下图所示。每个事件包含创建时间戳以及包含事件详细信息的消息。
展开一条以“Incoming Record from Kinesis Firehose”开头的消息的日志。
事件的详细信息类似于以下内容:
```
Incoming Record from Kinesis Firehose :
{
"host": "68.206.xxx.xxx",
"ident": null,
"authuser": null,
"datetime": "09/Jul/2022:02:43:51 +0000",
"request": "GET /firetvstick.php HTTP/1.1",
"response": "200",
"bytes": "305",
"referer": "http://18.207.217.39/recommendation.php",
"agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"
}
```
分析:此CloudWatch Logs事件是在Web服务器访问日志从EC2实例发送并被摄取到Kinesis Data Firehose时生成的。在被摄取后,访问日志数据被路由到Lambda,其中一个函数对数据进行转换和丰富。
展开一条以“Transformed Record going back to Kinesis Firehose”开头的消息的日志。
事件的详细信息类似于以下内容:
```
Transformed Record going back to Kinesis Firehose :
{
"host": "68.206.xxx.xxx",
"ident": null,
"authuser": null,
"datetime": "09/Jul/2022:02:43:51 +0000",
"request": "GET /firetvstick.php HTTP/1.1",
"response": "200",
"bytes": "305",
"referer": "http://18.207.217.39/recommendation.php",
"agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1",
"webpage": "firetvstick",
"refering_page": "recommendation",
"city": "Corpus Christi",
"country": "United States",
"browser": "Mobile Safari",
"os": "iOS",
"location": {
"lat": 27.7693,
"lon": -97.444
}
}
```
分析:请注意数据是如何通过添加附加字段进行转换,并通过使用访问者的IP地址对其进行丰富以获取访问者的位置信息。
展开一条以“REPORT RequestId”开头的消息的日志。
事件的详细信息类似于以下内容:
REPORT RequestId: d0ad7487-bcce-4881-a030-6dea03c100bd Duration: 473.96 ms Billed Duration: 474 ms Memory Size: 128 MB Max Memory Used: 51 MB Init Duration: 454.88 ms
分析:此事件定期出现在日志流中,并包含有关Kinesis Data Firehose和Lambda的使用信息。例如,计费持续时间是Lambda处理一组Web访问日志并对其进行丰富所需的时间。通过Kinesis Data Firehose和Lambda,AWS客户按照他们使用的资源进行计费。
太棒了!您已经审查了与Kinesis Data Firehose传递流和Lambda函数相关的CloudWatch日志事件。传递流和Lambda函数自动摄取和转换了您通过浏览网站创建的Web访问日志。您可以在CloudWatch中查看日志事件,以了解处理过程并获取有关资源使用情况的信息。
任务7:创建OpenSearch Service索引模式 现在,您已经收集了一些访问日志并观察了它们的处理方式,接下来您将在OpenSearch Service中创建一个索引模式以存储这些数据。OpenSearch使用索引模式来识别您要使用的OpenSearch索引,以创建可视化效果。在这种情况下,您将使用日期时间字段来筛选您感兴趣的数据。
创建索引模式。
返回到打开OpenSearch Dashboards的浏览器窗口。
从导航菜单中选择“Discover”。
选择“Create index pattern”。
在第1个步骤的页面上,对于“Index pattern name”,输入“apache_logs”。
注意:这与一个源匹配。
选择“Next step”。
在第2个步骤的页面上,对于“Time field”,选择“datetime”。
选择“Create index pattern”。
OpenSearch Dashboards将返回一个记录在OpenSearch Service中的字段和数据类型的列表,并显示哪些字段可进行搜索,如下图所示。
太好了!在这个任务中,您使用访问日志数据中包含的日期时间字段创建了一个OpenSearch索引模式。
任务8:创建饼图可视化 现在,索引已经设置好了,您可以使用OpenSearch Dashboards来分析和可视化这些发现。第一个可视化将回答客户选择的产品与操作系统或网络浏览器之间是否存在关系的问题。在本任务中,您将创建一个堆叠饼图来获得答案。
创建可视化并选择数据源。
从导航菜单中选择“Visualize”。 选择“Create new visualization”。 选择“Pie”可视化类型。 选择“apache_logs*”。 在右上角将时间间隔更改为最近30分钟。 选择右下角的“Update”按钮。 为网页创建第一个分组。
注意:当您第一次设置分组时,了解分组聚合的含义非常重要。分组聚合将一组文档按照某种方式进行分类。分组聚合的类型决定了给定文档是否属于某个分组。
您可以使用分组聚合来实现分面导航(通常放置在搜索结果页的侧边栏),以帮助用户缩小搜索结果范围。创建分组的步骤如下:
在“Buckets”部分,选择“Add” > “Split slices”。
对于“Aggregation”,选择“Terms”。
重要:不要选择“Significant Terms”。
对于“Field”,选择“webpage”。
保留“Order by”、“Order”和“Size”的默认值。
打开“Group other values in separate bucket”。
对于其余选项,保留默认值。
为访问者设备的操作系统创建一个分组。
选择“Add” > “Split slices”。 对于“Sub aggregation”,选择“Terms”。 对于“Field”,选择“os”。 保留“Order by”、“Order”和“Size”的默认值。 打开“Group other values in separate bucket”。 对于其余选项,保留默认值。 重复上述步骤,为浏览器类型添加另一个分组。 选择右下角的“Update”按钮。 配置饼图的筛选器。
在左上角,选择“Add filter”。
对于“Field”,选择“webpage”。
对于“Operator”,选择“is”。
对于“Value”,选择“kindle”。
选择“Save”。
您的筛选器将应用于图表,并向可视化中添加了其他圆圈。
将圆环样式应用于饼图,并配置其他图表设置。
在页面右侧的窗格中,选择“Options”。
关闭“Donut”和“Show top level only”选项,如下图所示。
此外,界面已经更新。现在这些是切换按钮,而不是复选框。
打开“Show labels”。
要应用更改,请选择右下角的“Update”按钮。
数据标签将添加到可视化效果中。您的可视化效果应该类似于以下图像。
注意:您的可视化效果中的颜色可能与图像中的颜色不匹配。
分析:这个可视化图表展示了来自不同浏览器和操作系统的产品页面访问量的百分比。
与图表进行交互以获得洞察。
将鼠标悬停在饼图的每个片段上,可以查看包含在该片段中的数据的详细信息。
添加一个不同的筛选器,只查看浏览器等于您在之前生成Web日志数据时使用的浏览器的页面。
还要修改产品筛选器,以包含其他产品。要删除先前的筛选器,将鼠标悬停在它上面,然后选择X图标。
得到的饼图类似于以下图示:
分析:这个饼图与之前的饼图类似,但包含了特定浏览器的筛选器。
恭喜!在这个任务中,您成功创建了一个堆叠饼图,以展示网站访问者使用的操作系统和浏览器。
任务9:创建热力图可视化 现在,您将创建一个热力图可视化,以回答更多的客户是从搜索页面还是推荐页面跳转到产品页面。
创建可视化并选择数据源。
在导航菜单中选择“Visualize”。 选择“Create new visualization”。 选择“Heat Map”可视化类型。 选择“apache_logs*”。 为引荐页面创建一个分组。
在“Buckets”部分,选择“Add” > “X-axis”。
对于“Aggregation”,选择“Terms”。
对于“Field”,选择“refering_page”。
保留“Order by”、“Order”和“Size”的默认值。
打开“Group other values in separate bucket”。
对于其余选项,保留默认值。
提示:为了简化后续的步骤,您可以折叠第一个创建的分组,如下图所示。
为网页创建一个分组。
选择“Add” > “Y-axis”。
对于子聚合,选择“Terms”。
对于字段,选择“webpage”。
保留“Order by”、“Order”和“Size”的默认值。
打开“Group other values in separate bucket”。
选择“Options”选项卡。
在“Labels”部分,打开“Show labels”。
要应用更改,请选择右下角的“Update”按钮。
在右上角,将持续时间更改为最近1小时,然后选择“Refresh”。
热力图显示了网页的访问量以及访问来源是搜索页面还是推荐页面。
您的热力图应该与下图类似,但根据您在生成网页访问日志时访问的页面和使用的浏览器而有所不同。
分析:根据这个可视化图表,访问者更多地从搜索页面而不是推荐页面访问Echo和FireStick产品页面。团队可以推断,相比于推荐页面,搜索页面更有效地引导用户访问产品页面。
恭喜!在这个任务中,您创建了一个热力图,以了解更多的客户是从搜索页面还是推荐页面跳转到产品页面。您的POC演示了如何使用Kinesis Data Firehose和OpenSearch Service来分析网站的流数据。
来自团队的更新 您与大学书店网站的管理员分享了POC的结果。她对从网页访问日志中分析流数据的基础架构感到兴奋。
在这个实验中,您配置了OpenSearch Service来使用Web访问日志数据的索引。您观察到Kinesis Data Firehose如何摄取数据,然后Lambda如何快速转换数据。您还在OpenSearch Dashboards中创建了可视化图表来分析数据并生成洞察。