选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

ECS使用 Firelens 日志路由器为 Amazon 创建自定义日志解析器 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ECS使用 Firelens 日志路由器为 Amazon 创建自定义日志解析器

由 Varun Sharma 创作 () AWS

摘要

Firelens 是亚马逊弹性容器服务(亚马逊ECS)和 Far AWS gate 的日志路由器。您可以使用 Firelens 将容器日志从亚马逊路由到ECS亚马逊 CloudWatch 和其他目的地(例如 SplunkSum o Logic)。Firelens 使用 F luentd 或 Flu ent B it 作为日志代理,这意味着你可以使用 A mazon ECS 任务定义参数来路由日志。

通过选择在源级别解析日志,您可以分析您的日志记录数据并执行查询,从而更加高效和有效地响应操作问题。由于不同的应用程序具有不同的日志模式,因此您需要使用自定义解析器来构建日志,以便在最终目的地更轻松地进行搜索。

此模式使用带有自定义解析器的 Firelens 日志路由器,将日志 CloudWatch 从在 Amazon 上运行的示例 Spring Boot 应用程序推送到。ECS然后,您可以使用 Amazon CloudWatch Logs Insights 根据自定义解析器生成的自定义字段筛选日志。

先决条件和限制

先决条件

  • 一个有效的亚马逊 Web Services (AWS) 账户。

  • AWS命令行界面 (AWSCLI),已在本地计算机上安装和配置。

  • 已在本地计算机上安装并配置的 Docker。

  • 亚马逊弹性容器注册表(亚马逊)上现有的基于 Spring Boot 的容器化应用程序。ECR 

架构

使用 Firelens 日志路由器将日志 CloudWatch 从在 Amazon 上运行的应用程序推送到。ECS

技术堆栈

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • Fluent Bit

工具

  • 亚马逊 ECR — 亚马逊弹性容器注册表 (AmazonECR) 是一项安全、可扩展且可靠的AWS托管容器镜像注册服务。

  • Ama zon ECS — Amazon 弹性容器服务 (AmazonECS) 是一项高度可扩展、快速的容器管理服务,可轻松运行、停止和管理集群上的容器。

  • AWSIdent@@ ity and Access Management (IAM) — IAM 是一项用于安全控制AWS服务访问的网络服务。

  • AWSCLI— AWS Command Line Interface (AWSCLI) 是一个开源工具,可让您使用命令行外壳中的命令与AWS服务进行交互。

  • Docker - Docker 是用于开发、发布和运行应用程序的开放平台。

代码

此模式附加了以下文件:

  • customFluentBit.zip - 包含用于添加自定义解析和配置的文件。

  • firelens_policy.json— 包含用于创建策略的IAM策略文档。

  • Task.json— 包含 Amazon 的示例任务定义ECS。

操作说明

任务描述所需技能

创建亚马逊ECR存储库。

登录AWS管理控制台,打开 Amazon ECR 控制台,然后创建一个名为的存储库fluentbit_custom

有关这方面的更多信息,请参阅 Amazon ECR 文档中的创建存储库

系统管理员、开发人员

解压 customFluentBit .zip 压缩包。

 

  1. customFluentBit.zip 软件包(附件)下载至本地计算机。 

  2. 运行以下命令解压缩到 customFluentBit 目录中:unzip -d customFluentBit.zip

  3. 该目录包含添加自定义解析和配置所需以下文件:

    • parsers/springboot_parser.conf - 包含解析器指令并定义自定义解析器的正则表达式(regex)模式。您可以为您的特定解析器添加正则表达式模式。

    •  conf/parse_springboot.conf - 包含筛选器和服务指令。

    • Dockerfile

创建自定义 Docker 映像。

  1. 将目录更改为 customFluentBit

  2. 打开 Amazon ECR 控制台,选择fluentbit_custom存储库,然后选择查看推送命令。 

  3. 上传您的项目。 

  4. 上传完成后,复制该版本的URL。URL在 Amazon 中创建容器时需要这样做 ECS

有关这方面的更多信息,请参阅亚马逊ECR文档中的推送 Docker 镜像。 

系统管理员、开发人员

创建自定义 Fluent Bit 映像

任务描述所需技能

创建亚马逊ECR存储库。

登录AWS管理控制台,打开 Amazon ECR 控制台,然后创建一个名为的存储库fluentbit_custom

有关这方面的更多信息,请参阅 Amazon ECR 文档中的创建存储库

系统管理员、开发人员

解压 customFluentBit .zip 压缩包。

 

  1. customFluentBit.zip 软件包(附件)下载至本地计算机。 

  2. 运行以下命令解压缩到 customFluentBit 目录中:unzip -d customFluentBit.zip

  3. 该目录包含添加自定义解析和配置所需以下文件:

    • parsers/springboot_parser.conf - 包含解析器指令并定义自定义解析器的正则表达式(regex)模式。您可以为您的特定解析器添加正则表达式模式。

    •  conf/parse_springboot.conf - 包含筛选器和服务指令。

    • Dockerfile

创建自定义 Docker 映像。

  1. 将目录更改为 customFluentBit

  2. 打开 Amazon ECR 控制台,选择fluentbit_custom存储库,然后选择查看推送命令。 

  3. 上传您的项目。 

  4. 上传完成后,复制该版本的URL。URL在 Amazon 中创建容器时需要这样做 ECS

有关这方面的更多信息,请参阅亚马逊ECR文档中的推送 Docker 镜像。 

系统管理员、开发人员
任务描述所需技能

创建 Amazon ECS 集群。

按照亚马逊ECS文档中创建ECS集群的仅限联网模板部分的说明创建 Amazon 集群

注意

请务必选择 “创建” VPC 来为您的 Amazon ECS 集群创建新的虚拟私有云 (VPC)。

系统管理员、开发人员

设置 Amazon ECS 集群

任务描述所需技能

创建 Amazon ECS 集群。

按照亚马逊ECS文档中创建ECS集群的仅限联网模板部分的说明创建 Amazon 集群

注意

请务必选择 “创建” VPC 来为您的 Amazon ECS 集群创建新的虚拟私有云 (VPC)。

系统管理员、开发人员
任务描述所需技能

设置 Amazon ECS 任务执行IAM角色。

使用AmazonECSTaskExecutionRolePolicy托管策略创建 Amazon ECS 任务执行IAM角色。有关这方面的更多信息,请参阅 Amazon ECS 文档中的亚马逊ECS任务执行IAM角色

注意

请务必记录该IAM角色的 Amazon 资源名称 (ARN)。

系统管理员、开发人员

将IAM策略附加到 Amazon ECS 任务执行IAM角色。

  1. 使用firelens_policy.json(随附的)策略文档创建策略。IAM有关这方面的更多信息,请参阅IAM文档中JSON选项卡上的 “创建策略”。

  2. 将此策略附加到您之前创建的 Amazon ECS 任务执行IAM角色。有关这方面的更多信息,请参阅IAM文档中的添加IAM策略 (AWSCLI)。 

系统管理员、开发人员

设置 Amazon ECS 任务定义。

  1. 更新 Task.json 示例任务定义(附加)中的以下部分:

    • taskRoleArn使用任务执行IAM角色ARN的 and 进行更新 executionRoleArn

    • 使用您之前创建的自定义 Fluent Bit Docker 映像更新 containerDefinitions 中的映像

    • 使用您的应用程序映像名称更新 containerDefinitions 中的映像

  2. 打开 Amazon ECS 控制台,选择 “任务定义”,选择 “创建新任务定义”,然后在 “选择兼容性” 页面上选择 Fargate。   

  3. 选择通过 Json 配置,将更新的 Task.json 文件粘贴到文本区域,然后选择保存

  4. 创建任务定义

有关这方面的更多信息,请参阅 Amazon ECS 文档中的创建任务定义

系统管理员、开发人员

设置 Amazon ECS 任务

任务描述所需技能

设置 Amazon ECS 任务执行IAM角色。

使用AmazonECSTaskExecutionRolePolicy托管策略创建 Amazon ECS 任务执行IAM角色。有关这方面的更多信息,请参阅 Amazon ECS 文档中的亚马逊ECS任务执行IAM角色

注意

请务必记录该IAM角色的 Amazon 资源名称 (ARN)。

系统管理员、开发人员

将IAM策略附加到 Amazon ECS 任务执行IAM角色。

  1. 使用firelens_policy.json(随附的)策略文档创建策略。IAM有关这方面的更多信息,请参阅IAM文档中JSON选项卡上的 “创建策略”。

  2. 将此策略附加到您之前创建的 Amazon ECS 任务执行IAM角色。有关这方面的更多信息,请参阅IAM文档中的添加IAM策略 (AWSCLI)。 

系统管理员、开发人员

设置 Amazon ECS 任务定义。

  1. 更新 Task.json 示例任务定义(附加)中的以下部分:

    • taskRoleArn使用任务执行IAM角色ARN的 and 进行更新 executionRoleArn

    • 使用您之前创建的自定义 Fluent Bit Docker 映像更新 containerDefinitions 中的映像

    • 使用您的应用程序映像名称更新 containerDefinitions 中的映像

  2. 打开 Amazon ECS 控制台,选择 “任务定义”,选择 “创建新任务定义”,然后在 “选择兼容性” 页面上选择 Fargate。   

  3. 选择通过 Json 配置,将更新的 Task.json 文件粘贴到文本区域,然后选择保存

  4. 创建任务定义

有关这方面的更多信息,请参阅 Amazon ECS 文档中的创建任务定义

系统管理员、开发人员
任务描述所需技能

运行 Amazon ECS 任务。

在 Amazon ECS 控制台上,选择集,选择您之前创建的集群,然后运行独立任务。

有关这方面的更多信息,请参阅 Amazon ECS 文档中的运行独立任务

系统管理员、开发人员

运行 Amazon ECS 任务

任务描述所需技能

运行 Amazon ECS 任务。

在 Amazon ECS 控制台上,选择集,选择您之前创建的集群,然后运行独立任务。

有关这方面的更多信息,请参阅 Amazon ECS 文档中的运行独立任务

系统管理员、开发人员
任务描述所需技能

验证日志。

  1. 打开 CloudWatch 控制台,选择 “日志组”,然后选择/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application

  2. 验证日志,特别是自定义解析器添加的自定义字段。

  3. 用于 CloudWatch 根据自定义字段筛选日志。

系统管理员、开发人员

验证日 CloudWatch 志

任务描述所需技能

验证日志。

  1. 打开 CloudWatch 控制台,选择 “日志组”,然后选择/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application

  2. 验证日志,特别是自定义解析器添加的自定义字段。

  3. 用于 CloudWatch 根据自定义字段筛选日志。

系统管理员、开发人员

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。