01背景描述

在 amazon 日常运维中,“日志集中存储到 S3 + 用 Athena 进行 SQL 查询分析” 是处理 EC2、S3、RDS 等服务日志的主流方案 —— 适合中小规模日志分析或非实时性的运维排查场景。但同时也存在一定劣势,Athena 主要依赖 SQL 语法来查询,面对非结构化或者结构高度不规则的日志,复杂检索逻辑编写难度较大,可视化能力薄弱,查询结果通常只是原始数据列表,若想可视化,得额外集成 QuickSight、Grafana 等工具,流程更繁琐 。

而日志通方案恰恰能够解决这些问题。日志通方案简化了日志提取,提供了单个 Web 控制台,用于将应用程序日志和 AWS 服务日志提取到日志分析引擎中;提供了无代码日志处理器,支持Amazon开发的日志处理器插件;还让日志可视化,提供开箱即用的仪表板模板,既适用于 NGINX 和 Apache HTTP Server 等常用软件,也适用于 Amazon S3 和 Amazon CloudTrail 等 Amazon服务。

以下是基于 Amazon S3 的服务日志管道架构。

图片

日志管道运行以下工作流程:

1. Amazon服务配置为将日志传送到 Amazon S3 存储桶(Log Bucket)。

2. (选项 A)当创建新的日志文件时,会向 Amazon EventBridge 发送事件通知。

   (选项 B)当创建新的日志文件时,使用S3 事件通知向 Amazon SQS 发送事件通知。

3.(选项 A)Amazon EventBridge 启动日志处理器Lambda 函数。

  (选项 B)OpenSearch Ingestion Service 使用 SQS 消息。

4. 日志处理器 Lambda 函数读取并处理日志文件。

5.日志处理器 Lambda 函数将日志提取到 Amazon OpenSearch 服务中。

6.处理失败的日志将导出到Amazon S3存储桶(备份存储桶)。

02成本

2.1 您将承担运行解决方案时所使用的亚马逊云服务的费用,影响解决方案成本的主要因素包括:

  • 日志分析引擎的选择(OpenSearch Engine)(主要成本)

  • 要收集/处理的日志类型

  • 日志的入量(每天多少 GB)

  • 单条日志消息的大小

  • 日志存放的地理位置(Region)

  • 是否使用额外功能(如告警、访问代理等)

2.2 当选择 OpenSearch Engine 时,成本可分为三大部分:

  1. Amazon OpenSearch Service 成本

    • 包括实例费用(On Demand 或 预留实例)、副本数(replica)、热/温/冷存储层(tiering)、存储用量等。

    • 当每天 10 / 100 / 1000 GB 日志入量,不同保留天数(30 天、90 天、180 天)、不同副本数量等情境下的月度费用如下表:

图片

  1. 处理成本(Processing Cost):按日志摄入方式不同分为两类

    • Lambda 处理:成本含 Lambda 计算费(260ms/MB raw 日志,按 0.0000000167 美元 /ms 计费)、S3 存储费(0.023 美元 / GB,按压缩后 4% 容量算),如日 10GB 日志月费 1.61 美元,日 1000GB 月费 160.986 美元。

    • OSI 处理:按 OCU(0.24 美元 / OCU / 小时)计费,1OCU 约处理 20MB/s S3 数据,如日 10GB 日志月费 173.1 美元,日 1000GB 月费 373.2 美元。

    • 特殊情况:RDS/Aurora 日志、Lambda 日志若先传至 CloudWatch Logs,需额外支付 Firehose(KDF)费用(按 5KB 增量计费,0.029 美元 / GB,如日 1GB 日志月增 21.75 美元)。

    1. 通过 Amazon S3 摄入

      适用于 Amazon服务日志(如 S3 访问日志、CloudTrail 日志)及以 S3 为缓冲的应用日志,支持 Lambda 或 OpenSearch Ingestion(OSI)作为处理器。

    2. 通过 Amazon Kinesis Data Streams 摄入

      适用于 CloudFront 实时日志等,成本含 Kinesis 分片时费(0.015 美元 / 分片 / 小时)、PUT 负载单元费(0.014 美元 / 百万单元)、Lambda 处理费,如日 10GB 日志月费 17.505 美元,日 1000GB 月费 854.1 美元。

  2. 额外功能成本(Additional Features Cost):仅当使用对应功能时产生费用

    • 访问代理

      按 EC2 实例类型 / 数量、EBS(8GB / 实例,0.1 美元 / GB / 月)、弹性负载均衡(0.0225 美元 / 小时)计费,如 2 台 t3.nano 实例月费 22.18 美元,2 台 t3.large 实例月费 88.9 美元。

    • OpenSearch 服务告警

      含管道告警(Amazon服务日志 4 个告警月费 0.4 美元,应用日志 5 个告警月费 0.5 美元)和管道监控(如 Amazon 服务日志月费 2.928 美元 / 源 / 管道,应用日志月费 2.196 美元 / 源 / 管道)、Fluent Bit 监控(1 台 EC2 实例月费 5.164 美元,100 台月费 308.03 美元)。

2.3 您可以在Cost Explorer 中查看整个解决方案的支出情况,也可以查看管道级别的支出情况。所有通过 Web 控制台预配的管道默认都带有 CLOSolutionCostAnalysis 关联的标签。

03部署步骤

1. cloudformation创建堆栈

a. 在Amazon环境中部署Loghub方案时,需通过cloudformation启动堆栈,根据网络环境不同分为两种方式

    • 在Amazon区域中使用新的vpc启动

填入以下S3 URL

https://s3.amazonaws.com/solutions-reference/centralized-logging-with-opensearch/latest/CentralizedLogging.template

    • 在亚马逊云科技区域中使用已有vpc启动(推荐)

填入以下S3 URL

https://s3.amazonaws.com/solutions-reference/centralized-logging-with-opensearch/latest/CentralizedLoggingFromExistingVPC.template

图片

b. 填写堆栈信息

    • 选择VPC:

指定所选VPC 中的两个公有子网。这些子网必须具有指向IGW网关的路由。
指定所选VPC 中的两个私有子网。子网必须具有指向NAT 网关的路由。

图片

c. 堆栈创建完成后,在堆栈的 “输出” 标签页中可查看所有生成的资源详情,包括:资源的键(如 MetadataTableArn、OpenSearchSecurityGroupId)、值(如 ARN、ID)、描述及导出名称。其中,WebConsoleUrl 为日志通系统的登录地址,可配置 CNAME 指向该地址。

图片

d. 访问日志通网站

账号密码通过邮件发送到邮箱

图片

2. 创建opensearch

a. 创建域

   控制台---opensearch服务---创建域

    • 部署选项
    • 带待机功能的域
    • 无待机功能的域
    • 维度

      带待机功能的域

      无待机功能的域

      故障恢复能力

      主可用区故障时,待机可用区可秒级 / 分钟级切换(自动或手动),业务中断时间极短(RTO 极低)。

      单可用区部署:可用区故障则整个集群不可用,需手动恢复(RTO 长)。
      基础多可用区:单节点 / 可用区故障时,其他可用区节点可接管,但可能因数据再平衡导致性能下降。

      数据可靠性

      主备可用区实时同步数据,主可用区故障时,待机区数据几乎无丢失(RPO 接近 0)。

      单可用区:依赖节点本地存储,硬件故障可能导致数据丢失。
      基础多可用区:数据多副本存储在不同可用区,数据丢失风险低,但无专用待机集群。

      资源利用率

      待机集群不处理请求,资源(计算、存储)处于 “闲置” 状态,仅用于冗余。

      所有节点均活跃处理请求,资源利用率高。

      成本

      更高(需为待机集群支付额外的节点、存储费用)。

      更低(无闲置资源成本,单可用区最低,基础多可用区成本中等)。

      适用场景

      核心业务、对可用性要求极高(如金融交易、医疗数据),需避免任何计划外中断。

      非核心业务、开发测试环境、对成本敏感且可接受短暂中断的场景。

      维护影响

      可在待机区执行升级 / 维护,完成后切换流量,实现 “零停机” 更新。

      升级 / 维护可能导致部分节点不可用,需依赖集群自愈能力,可能有短暂性能影响。

  • 数据节点数:节点数需≥可用区数

图片

3. 在日志通平台导入域

a. 选择导入域

图片

b. 选择刚刚创建的opensearch域

图片

c. 配置网络

    • 网络创建选项选择自动,如果opensearch集中日志记录和opensearch域位于两个不同的vpc,则自动模式会将两个vpc之间创建vpc对等链接,并更新路由表。

图片

4. 创建日志通平台的代理

a.创建代理

图片

  • 此处实例数量是ALB后面负责代理的实例数量

图片

b. 在route53做dns解析

    • 记录创建的负载均衡器域名

图片

  • 在route53中将自定义域名指向LB资源

图片

c. 访问域名

图片

5. 创建服务日志管道

a. 在日志通平台选择Amazon服务日志

图片

b. 选择需要导入日志的服务

图片

c. 选择对应的规则

图片

d. 指定索引、分片数量、日志周期

    • 在 OpenSearch 服务中,默认情况下每个索引被分为五个主分片和一个副本(总共 10 个分片)。由于您无法轻松更改现有索引的主分片数量,因此在索引第一个文档之前,您应该决定分片数。

    • 选择分片数量的总体目标是将索引均匀分布在集群中的所有数据节点上。然而,这些分片不应过大或过多。一个通用的指导原则是,对于搜索延迟是关键性能目标的工作负载,尝试将分片大小保持在 10–30 GiB 之间,对于写入繁重的工作负(如日志分析),尝试保持在 30–50 GiB 之间。

    • 例如,假设您有 66 GiB 的数据。您不希望这个数字随着时间增加,并且您希望将分片保持在大约 30 GiB。您的分片数量应大约为 66 * 1.1 / 30 = 3。(源数据 + 增长空间)*(1 + 索引开销)/ 期望的分片大小 = 大约的主分片数量。

    图片

    e. 选择日志lambda并发数量

    图片

    f. 选择告警SNS主题

    图片

    04实现效果

    在日志通平台查看,访问需要收集日志的服务生成日志,在opensearch的dashboard处即可看到收集的日志。

    图片

    图片

    05

    总结

    Centralized Logging with OpenSearch 方案通过全链路自动化设计与可视化操作,大幅降低Amazon环境下日志管理的技术门槛与运维负担,为日志 “采集 - 处理 - 存储 - 分析 - 管控” 提供一站式解决方案,其核心功能价值可总结为以下几点:

    1. 多来源日志集中采集,告别分散链路:覆盖 AWS 原生服务日志(EC2 系统日志、S3 访问日志、RDS 审计日志等)与自定义应用日志(Nginx 访问日志、Spring Boot 应用日志、JSON 格式日志等),通过自动部署的日志收集代理实现分散日志集中接入,无需手动搭建多套采集链路,减少链路维护成本。

    2. 无代码化日志处理,兼顾稳定性与效率:支持日志富化操作(自动补充来源 IP、标准化时间戳、添加业务标识等),内置缓冲层机制应对日志流量峰值,避免数据丢失或链路阻塞;全程无需编写处理代码,仅通过可视化配置即可完成,降低技术操作门槛。

    3. 自动化存储与索引管理,减少手动运维:日志自动存储至 Amazon OpenSearch Service,方案会按日志类型(AWS 服务日志、应用日志)自动创建差异化索引并配置映射规则;支持自定义日志保留周期,无需手动处理索引分片调整、过期清理等生命周期操作,减少运维工作量。

    4. 即用型分析与可视化,快速洞察日志价值:自动生成适配多场景的控制面板(如 EC2 资源日志监控、Nginx 请求量统计、Spring Boot 错误追踪),通过 OpenSearch Dashboards(或 Kibana)支持实时日志查询、历史数据回溯、多维度筛选(时间、日志级别、来源服务等),还可按需自定义折线图、柱状图、仪表盘等图表,提升日志分析效率。

    5. 亚马逊云科技生态深度集成,形成管理闭环:可与 Amazon其他核心服务无缝联动,例如将日志分析结果对接 CloudWatch 触发异常告警、通过 Lambda 实现自动化处理、借助 IAM 按角色精细化管控面板访问权限,最终构建 “日志采集 - 处理 - 分析 - 监控” 的完整管理闭环,无需跨平台整合工具。

    6. 低门槛运维管控,简化系统管理:提供 Web-based 可视化控制台,支持日志提取管道全生命周期管理(创建、修改、停用);同时自动监控关键组件状态(日志收集代理运行情况、OpenSearch 索引健康度、缓冲层容量等),大幅降低日志系统的运维复杂度,减轻运维人员日常维护压力。

    Logo

    码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

    更多推荐