AWS Fargate 模块

编辑

此功能处于 Beta 阶段,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。Beta 功能不受正式 GA 功能的支持 SLA 约束。

Amazon ECS on Fargate 提供了一种检索关于任务和容器的各种元数据、网络指标和 Docker 统计信息的方法。这被称为任务元数据端点,此端点可用于每个容器。

默认情况下,环境变量会注入到使用平台版本 1.4.0 或更高版本的 Fargate 上 Amazon ECS 任务的容器中,以及至少运行 Amazon ECS 容器代理 1.39.0 版本的 Amazon EC2 上的 Amazon ECS 任务中。

awsfargate 模块是一个 Metricbeat 模块,用于从任务元数据端点收集 AWS fargate 指标。

AWS ECS 和 Fargate 简介

编辑

Amazon Elastic Container Service (Amazon ECS) 是一种高度可扩展、快速的容器管理服务,可以轻松运行、停止和管理容器。ECS 有两种启动类型,可以定义如何管理计算资源:ECS EC2 和 ECS Fargate。

  • ECS EC2

ECS EC2 启动在 EC2 实例上运行的容器。用户必须管理 EC2 实例。定价取决于正在运行的 EC2 实例的数量。

可以通过在相应的 EC2 实例上部署启用 Metricbeat Docker 模块的 Metricbeat 来监控这些容器。

为了实现这一点,需要:

  1. 使用与 EC2 实例耦合的 ssh 密钥确保对这些 EC2 实例的访问(使用 密钥对选项在集群创建时附加 ssh 密钥)
  2. 通过适当的入站规则启用对实例的 ssh 访问。
  • ECS Fargate

ECS Fargate 通过允许 AWS 管理 EC2 实例,消除了配置、配置和管理 EC2 实例的责任。用户只需要指定容器和任务。定价基于任务的数量。

任务元数据端点

编辑

任务元数据端点以 JSON 格式返回与任务关联的所有容器的Docker 统计信息。此端点只能从任务定义本身内部访问,这意味着 Metricbeat 需要作为任务定义中的 sidecar 容器运行。由于元数据端点只能从 Fargate 任务内部访问,因此没有进行身份验证。

指标集

编辑

目前,我们在 awsfargate 模块中有 task_stats 指标集。

task_stats

编辑

此指标集从端点 ${ECS_CONTAINER_METADATA_URI_V4}/task/stats${ECS_CONTAINER_METADATA_URI_V4}/task 收集运行时 CPU 指标、磁盘 I/O 指标、内存指标、网络指标和容器元数据。

配置示例

AWS Fargate 模块支持 模块中描述的标准配置选项。这是一个配置示例

metricbeat.modules:
- module: awsfargate
  period: 10s
  metricsets:
    - task_stats

指标集

以下指标集可用: