AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

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

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

适用于 Linux 的 Amazon CloudWatch Monitoring Scripts 可展示如何创建和使用 Amazon CloudWatch 自定义指标。该脚本包括全功能的示例,可以报告有关 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例的内存、切换和磁盘空间利用率指标。有关 Amazon CloudWatch Monitoring Scripts 的详细信息,请转到“Amazon CloudWatch Developer Guide”中的“适用于 Linux 的 Amazon CloudWatch Monitoring Scripts”。

注意

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

.ebextensions 配置文件

此示例使用 .ebextensions 配置文件中的命令和选项设置下载、安装和运行 Amazon CloudWatch 提供的监控脚本。

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

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

.ebextensions/cloudwatch.config

packages: yum: perl-DateTime: [] perl-Sys-Syslog: [] perl-LWP-Protocol-https: [] perl-Switch: [] perl-URI: [] perl-Bundle-LWP: [] sources: /opt/cloudwatch: http://aws-cloudwatch.s3.amazonaws.com.cn/downloads/CloudWatchMonitoringScripts-1.2.1.zip container_commands: 01-setupcron: command: | echo '*/5 * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-util --disk-space-util --disk-path=/" }}` >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump 02-changeperm: command: chmod 644 /etc/cron.d/cwpump 03-changeperm: command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl option_settings: "aws:autoscaling:launchconfiguration" : IamInstanceProfile : "aws-elasticbeanstalk-ec2-role" "aws:elasticbeanstalk:customoption" : CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling"

在验证配置文件能够正常工作后,可以将命令重定向从日志文件 (>> /var/log/cwpump.log 2>&1') 更改为 /dev/null (> /dev/null),从而节省磁盘用量。

权限

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

授予发布 CloudWatch 指标的权限

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles

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

  4. 选择 Permissions 选项卡。

  5. Permissions 部分的 Inline Policies 下,选择 Create Role Policy

  6. 选择 Custom Policy,然后选择 Select

  7. 填写以下字段,然后选择 Apply Policy

    策略名称

    策略的名称。

    策略文档

    将以下文本复制并粘贴到策略文档中:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData", "ec2:DescribeTags" ], "Effect": "Allow", "Resource": [ "*" ] } ] }

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

在 CloudWatch 控制台中查看指标

将 CloudWatch 配置文件部署到您的环境中后,使用 Amazon CloudWatch 控制台查看您的指标。自定义指标带有 Linux System 前缀。