示例:使用自定义 Amazon CloudWatch 指标 - AWS Elastic Beanstalk

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

示例:使用自定义 Amazon CloudWatch 指标

本主题提供了一个配置示例,该示例将 Elastic Beanstalk 指标与基于 Amazon Linux 2 及更高版本的平台的 Amazon CloudWatch 代理集成。配置示例使用 .ebextensions 配置文件中的文件和命令。

Amazon CloudWatch 是一种 Web 服务,可让您监控、管理和发布不同的指标,以及根据指标中的数据配置警报操作。您可以定义各种自定义的指标,供自己使用,而 Elastic Beanstalk 会将这些指标推送给 Amazon CloudWatch。一旦 Amazon CloudWatch 包含有自定义指标,您就可以在 Amazon CloudWatch 控制台中进行查看。

重要

Amazon CloudWatch 监控脚本已弃用。CloudWatch 代理现已替换 CloudWatch 监控脚本以收集指标和日志。

如果您仍在从已弃用的监控脚本迁移到代理,并且需要有关监控脚本的信息,请参阅《Amazon EC2 用户指南》中的已弃用:使用 CloudWatch 监控脚本收集指标

Amazon CloudWatch 代理

Amazon CloudWatch 代理支持跨操作系统从 Amazon EC2 实例和本地部署服务器中收集 CloudWatch 指标和日志。代理支持在系统级别收集的指标。此外,它还支持从应用程序或服务中收集自定义日志和指标。有关 Amazon CloudWatch 代理的更多信息,请参阅 Amazon CloudWatch 用户指南中的使用 CloudWatch 代理收集指标和日志

注意

Elastic Beanstalk 增强型运行状况报告原生支持将各种实例和环境指标发布到 CloudWatch。有关详细信息,请参阅 发布环境的 Amazon CloudWatch 自定义指标

.Ebextensions 配置文件

此示例使用 .ebextensions 配置文件中的文件和命令在 Amazon Linux 2 平台上配置和运行 Amazon CloudWatch 代理。此代理预先包装在 Amazon Linux 2 中。如果您使用的是其他操作系统,则可能需要执行其他安装代理的步骤。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的安装 CloudWatch 代理

要使用该示例,请将其保存到名为 cloudwatch.config 的文件中,并将该文件放到项目目录顶层的 .ebextensions 目录中,然后使用 Elastic Beanstalk 控制台(在源包中包括 .ebextensions 目录)或 EB CLI 部署您的应用程序。

有关配置文件的详细信息,请参阅 使用配置文件 (.ebextensions) 进行高级环境自定义

.ebextensions/cloudwatch.config

files: "/opt/aws/amazon-cloudwatch-agent/bin/config.json": mode: "000600" owner: root group: root content: | { "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "metrics": { "namespace": "System/Linux", "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ] } } } } container_commands: start_cloudwatch_agent: command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json

此文件有以下两个部分:

  • files — 此部分添加代理配置文件。它指示代理应向 Amazon CloudWatch 发送哪些指标和日志。在此示例中,我们只发送 mem_used_percent 指标。有关 Amazon CloudWatch 代理支持的系统级指标的完整列表,请参阅 Amazon CloudWatch 用户指南中的 CloudWatch 代理收集的指标

  • container_commands — 本部分包含启动代理的命令,并将配置文件作为参数传递。有关 container_commands 的更多详细信息,请参阅 容器命令

权限

要使用 Amazon CloudWatch 代理发布自定义 Amazon CloudWatch 指标,您的环境中的实例需要合适的 IAM 权限。您可以将您的环境中的实例添加到此环境的实例配置文件中,从而向它们授予权限。您可以在部署应用程序前/后为此实例配置文件添加权限。

授予发布 CloudWatch 指标的权限
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 选择您的环境的实例配置文件角色。在使用 Elastic Beanstalk 控制台或 EB CLI 创建环境时,该角色默认为 aws-elasticbeanstalk-ec2-role

  4. 选择权限选项卡。

  5. Permissions Policies(权限策略)下,Permissions(权限)部分中,选择 Attach policies(附加策略)。

  6. Attach Permissions(附加权限)下,选择 AWS 托管策略 CloudWatchAgentServerPolicy。然后单击 Attach policy(附加策略)。

有关如何管理策略的更多信息,请参阅《IAM 用户指南》中的使用策略

在 CloudWatch 控制台中查看指标

将 CloudWatch 配置文件部署到您的环境中后,使用 Amazon CloudWatch 控制台查看您的指标。自定义指标将位于 CWAgent 命名空间。

有关更多信息,请参阅 Amazon CloudWatch 用户指南中的查看可用指标