如何将数据从 AWS S3 导入到 Elastic Cloud - 第 2 部分:Elastic Agent
作者:来自 Elastic Hemendra Singh Lodhi
了解将数据从 AWS S3 提取到 Elastic Cloud 的不同选项。
这是多部分博客系列的第二部分,探讨了将数据从 AWS S3 提取到 Elastic Cloud 的不同选项。
在本博客中,我们将了解如何使用 Elastic Agent 从 AWS S3 提取数据。
注 1:请查看第 1 部分中的不同选项比较:Elastic Serverless Forwarder
注 2:Elastic Cloud 部署是遵循下述步骤的先决条件。
Elastic Cloud
查看博客系列第 1 部分:Elastic Serverless Forwarder,了解如何开始使用 Elastic Cloud。如果你已经有活跃的部署,请跳过此部分。
Elastic Agent
从 AWS S3 提取数据的另一种选择是使用 Elastic Agent。Elastic Agent 是一种提取日志、指标等数据的单一、统一方法。Elastic Agent 安装在 EC2 等实例上,使用集成可以连接到 AWS 服务(如 S3),并将数据转发到 Elasticsearch。
Elastic Agent 工作原理概述:
- 创建类似于清单文件的策略,包含代理说明。
- 在策略中添加集成,这些集成本质上是包含配置、映射、仪表板等资产的模块。
- 代理安装时会遵循所需的策略。
- 代理将根据集成执行提取操作。
功能
- 同时发送日志和指标
- 支持通过 AWS PrivateLink 进行数据传输
- 支持所有集成,并且可以使用 Fleet 管理代理(Elastic Cloud 默认提供)
- 需要安装和维护代理,并且没有自动扩展。使用 Fleet 可以简化代理维护。
- 开箱即用,性能良好,可以配置性能参数以使用性能预设。可以根据数据类型和提取要求使用预设。有关 Fleet 服务器可扩展性的更多信息,请点击此处
- 成本是用于 agent 安装和 SQS 通知的 EC2 实例
数据流
基于 Elastic 代理的数据提取的高级数据流:
- VPC 流日志配置为写入 S3 存储桶
- 一旦日志写入 S3 存储桶,S3 事件通知就会发送到 SQS
- Elastic 代理轮询 SQS 队列以获取新消息。根据消息中的元数据,它从 S3 存储桶读取日志数据并将其发送到 Elasticsearch
- 建议使用 SQS 以提高性能,以便代理可以只读取 S3 存储桶中新更新的对象,而不是每次轮询整个存储桶
设置
对于步骤 (1)-(2),请按照第 1 部分:Elastic Serverless Forwarder 中的详细信息进行操作:
1)创建 S3 Bucket 来存储 VPC 流日志
2)启用 VPC 流日志并发送到上面创建的 S3 Bucket
3)使用默认设置创建 SQS 队列
注意:在与 S3 Bucket 相同的区域中创建 SQS 队列
提供队列名称 sqs-vpc-flow-logs-elastic-agent 并保留其他设置作为默认设置:
更新 SQS 访问策略(Advanced)以允许 s3 存储桶向 SQS 队列发送通知。将 account-id 替换为你的 AWS 帐户 ID。保留其他选项的默认设置。
在这里,我们指定 S3 从 S3 存储桶向 SQS 队列 (ARN) 发送消息:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:ap-southeast-2:<account-id>:sqs-vpc-flow-logs-elastic-agent", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::s3-vpc-flow-logs-elastic" } } } ] }
请记下队列设置下的详细信息中的 SQS URL:
4)在 S3 存储桶中启用 VPC 流日志事件通知
转到 S3 存储桶 s3-vpc-flow-logs-elastic -> Properties 并创建事件通知
提供名称以及你想要触发 SQS 的事件类型。在将任何对象添加到存储桶时,我们已 object create:
选择目标为 SQS queue 并选择 sqs-vpc-flow-logs-elastic-agent:
保存后,配置将如下所示:
确认 VPC 流日志已发布在 S3 存储桶中:
确认 S3 事件通知已发送到 SQS 队列:
5) 在 EC2 实例上安装 Elastic Agent
启动 EC2 实例
要获取安装命令,请转到:
Kibana -> Fleet -> Add Agent
创建新的代理策略 aws-vpc-flow-logs-s3-policy 并单击 “Create Policy”。
创建策略后,复制安装 Elastic Agent 的说明。其他设置保留默认设置:
登录 EC2 实例并运行命令:
[root@ip-xxx-xx-xx-xxx ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.14.3-linux-x86_64.tar.gz tar xzvf elastic-agent-8.14.3-linux-x86_64.tar.gz cd elastic-agent-8.14.3-linux-x86_64 sudo ./elastic-agent install --url=https://xxxxxxxxxxx.fleet.ap-southeast-2.aws.found.io:443 --enrollment-token= xxxxxxxxxxx % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 327M 100 327M 0 0 5068k 0 0:01:06 0:01:06 --:--:-- 5065k elastic-agent-8.14.3-linux-x86_64/manifest.yaml elastic-agent-8.14.3-linux-x86_64/data/elastic-agent-2df2c1/elastic-agent .......................... Elastic Agent will be installed at /opt/Elastic/Agent and will run as a service. Do you want to continue? [Y/n]:Y [= ] Service Started [0s] Elastic Agent successfully installed, starting enrollment. [== ] Waiting For Enroll... [1s] {"log.level":"info","@timestamp":"2024-09-03T03:43:40.209Z","log.origin":{"file.name":"cmd/enroll_cmd.go","file.line":517},"message":"Starting enrollment to URL: https://xxxxxxxxxxx.fleet.ap-southeast-2.aws.found.io:443/","ecs.version":"1.6.0"} [ ==] Waiting For Enroll... [2s] {"log.level":"info","@timestamp":"2024-09-03T03:43:41.396Z","log.origin":{"file.name":"cmd/enroll_cmd.go","file.line":480},"message":"Restarting agent daemon, attempt 0","ecs.version":"1.6.0"} [ ===] Waiting For Enroll... [2s] {"log.level":"info","@timestamp":"2024-09-03T03:43:41.448Z","log.origin":{"file.name":"cmd/enroll_cmd.go","file.line":298},"message":"Successfully triggered restart on running Elastic Agent.","ecs.version":"1.6.0"} Successfully enrolled the Elastic Agent. [ ===] Done [2s] Elastic Agent has been successfully installed.
成功完成后,状态将在机队页面上更新:
使用 aws 集成更新策略 aws-vpc-flow-logs-s3-policy。这会将 aws 集成配置推送到订阅此策略的代理。有关 fleet 和 agent 如何协同工作的更多信息,请参见此处。
Kibana -> Fleet -> Agent policies.。选择策略 aws-vpc-flow-logs-s3-policy 并单击 Add integration。这将带你进入集成页面搜索 AWS 集成。如果你想监控多个 AWS 服务,最好选择 AWS 集成:
提供 AWS 访问密钥 ID 和秘密访问密钥进行身份验证,并允许 Elastic Agent 从 AWS 服务读取。还有其他可用的身份验证选项。详情请见此处。命名空间选项用于根据环境或任何其他标识符隔离数据:
关闭 other services 并使用 Collect VPC flow logs from S3。更新先前复制的 S3 存储桶和 SQS 队列 URL。保留 advance settings 作为默认设置:
向下滚动并单击 Existing hosts 选项,因为我们已经安装了代理并选择策略 aws-vpc-flow-logs-s3-policy。保存并继续。这会将配置的集成推送到 Elastic Agent:
转到 Kibana -> Fleet -> Agent policies,策略 aws-vpc-flow-logs-s3-policy 已使用 AWS 集成进行更新。
几分钟后,你可以验证流日志是否已从 S3 提取到 Elastic。转到 Kibana -> Discover:
6)在 Kibana 仪表板中监控 VPC 流日志
集成附带仪表板等资产,这些资产是为常见用例预先构建的。转到 Kibana -> Dashboard 并搜索 VPC Flow logs:
更多仪表板!
正如承诺的那样,这里有一些仪表板,它们可以帮助使用 Elastic 代理提取方法监控我们设置中使用的 AWS 服务。这将有助于跟踪使用情况并有助于优化。
我们将使用 Elastic Agent 数据提取选项中使用的相同设置来配置设置和填充仪表板。
转到 Kibana -> Fleet -> aws-vpc-flow-logs-s3-policy 。选择 AWS integration 并切换到所需的服务并填写详细信息。
一些有趣的仪表板:
注意:所有仪表板都可以在 Kibana->Analytics->Dashboards 下找到
[Metrics AWS] Lambda Overview
如果你已使用 Elastic Serverless Forwarder 实现提取,则可以使用此仪表板跟踪 AWS Lambda 指标。它主要显示 Lambda 函数持续时间、错误和任何函数限制:
[Metrics
AWS] S3 Overview
此仪表板概述了 S3 的使用情况,并有助于监控存储桶大小、对象数量等。通过跟踪陈旧的存储桶和对象,这可以帮助优化 S3 的使用情况:
[Logs AWS] S3 Server Access Log Overview
此仪表板显示 S3 服务器访问日志,并提供对存储桶发出的请求的详细记录。这在安全和访问审计中很有用,还有助于了解用户如何访问你的 S3 存储桶和对象:
[Metrics AWS] Usage Overview
此仪表板显示 AWS 服务的一般使用情况,并突出显示针对 AWS 服务的 API 使用情况。这有助于了解服务使用情况和潜在优化:
[Metrics AWS] Billing Overview
该仪表板显示服务的计费使用情况,并帮助监控服务花费了多少钱:
[Metrics AWS] SQS
Overview
此仪表板显示 SQS 队列利用率,显示已发送、已接收的消息以及发送消息的任何延迟。这对于监控 SQS 队列是否存在任何问题非常重要,因为它是架构中的一个重要组件。SQS 的任何问题都可能导致数据提取延迟:
[Metrics AWS] EC2
Overview
如果你使用 Elastic 代理提取方法,则可以监视托管 Elastic 代理的 EC2 实例的 CPU、内存、磁盘等的利用率,这在流量负载较高时有助于确定实例的大小。这也可以用于你的其他 EC2 实例:
[Elastic Agent] S3 Input Metrics
此仪表板显示了 Elastic 代理的详细利用率,展示了 Elastic 代理如何处理 S3 输入以及监控与 SQS 和 S3 的交互。仪表板显示了 Elastic 代理在读取 SQS 消息和 S3 对象并将其转发到 Elasticsearch 时的聚合指标。结合 [Metrics AWS] EC2 Overview 仪表板,这可以帮助了解 EC2 和 Elastic 代理的利用率,并可能有助于扩展这些组件:
结论
Elasticsearch 提供了多种选项,可将数据从 AWS S3 同步到 Elasticsearch 部署中。在本演练中,我们演示了实现 Elastic Agent 提取选项并利用 Elastic 业界领先的搜索功能相对容易。
在本系列的第 3 部分中,我们将深入探讨使用 Elastic S3 Native Connector 作为提取 AWS S3 数据的另一种选择。
不要忘记查看本系列的第 1 部分:Elastic Serverless Forwarder。
你可以使用来自任何来源的数据构建搜索。查看此网络研讨会以了解 Elasticsearch 支持的不同连接器和来源。
准备好自己尝试一下了吗?开始免费试用。
原文:How to ingest data from AWS S3 into Elastic Cloud - Part 2 : Elastic Agent - Search Labs

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源日报 | 北大实习生攻击字节AI训练集群;Bitwarden进一步脱离开源;新一代MoE架构;给手机装Linux;英伟达真正的护城河是什么?
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.10.21 今日要闻 Node.js 23 正式发布,不再支持 32 位 Windows 系统 Node.js v23.0.0主要更新亮点 默认启用 ESM:在 Node.js v23.0.0 中,EcmaScript 模块(ESM)现已默认启用,简化了应用使用。 停止支持 32 位 Windows 系统:在 Node.js 23.0.0 中,不再支持 32 位 Windows,专注于现代环境。 稳定化--run命令:--run标志已稳定化,以实现更高效的脚本执行。 测试运行器增强:测试运行器现在支持 glob 模式来覆盖文件,改进了测试配置。 需要提醒的是,在 Node.js 发布过程之后,Node.js 23 将不会升级到 LTS,因为只有偶数版本才会升级到 LTS。 字节跳动商业化团队模型训练被“投毒”,内部人士称未影响豆包大模型 近日,有消息称字节跳动发生大模型训练被实习生 “投毒” 事件。 据悉,该事件发生在字节跳动商业化团队,因实习生田某某对团队资源分配不满,利用 HF(huggingface)的...
- 下一篇
ClickHouse在百度MEG数据中台的落地和优化
导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题,导致开发效率低下、学习成本高,业务需求响应迟缓。为了解决这些问题,百度MEG内部开发了图灵3.0生态系统,包括Turing Data Engine(TDE)计算引擎、Turing Data Studio(TDS)数据开发治理平台和Turing Data Analysis(TDA)可视化BI产品。依托图灵3.0生态,我们进而形成了一套新的开发范式——"OneData+开发范式",其关键在于可视化分析与数据集的构建。 TDE-ClickHouse作为图灵3.0生态中重要的基础引擎之一,专注于为业务提供海量数据下的自助秒级分析能力。通过高性能的数据查询能力与高效的数据导入通路,支持业务更及时、敏捷地对海量数据进行分析;通过稳定可靠的分布式架构,在减少资源和运维成本的同时,严控引擎侧的数据质量。 01 百度MEG数据中台解决方案 1.1 背景与问题 上一期的Geek说我们分享了图灵3.0中的数据开发治理平台TDS(Turing Data Studio),这一期我们分享图灵3.0生态中的一个重要的基础引擎TDE-ClickH...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路