AWS Fargate 模块

编辑

此功能处于测试阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,按“原样”提供,不提供任何担保。测试版功能不受正式 GA 功能的支持服务等级协议的约束。

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

环境变量默认注入到使用平台版本 1.4.0 或更高版本的 Amazon ECS Fargate 上的任务容器中,以及在 Amazon EC2 上运行至少 1.39.0 版本的 Amazon ECS 容器代理的 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 并启用 Metricbeat Docker 模块来监控这些容器。

为了实现这一点,需要

  1. 使用 ssh 密钥以及 EC2 实例确保对这些 EC2 实例的访问权限(使用密钥对选项在集群创建时附加 ssh 密钥)
  2. 为实例启用 shh 访问权限,并具有正确的入站规则
  • 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

度量集

提供以下度量集