EC2监控内存

使用 CloudWatch 代理收集指标

您可以使用 CloudWatch 代理收集来自 Amazon EC2 实例和本地服务器的系统指标与日志文件。代理支持 Windows Server 和 Linux,并使您能够选择要收集的指标,包括子资源指标(如每 CPU 内核)。建议您使用代理(而不是监控脚本)收集指标和日志。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器中收集指标

已弃用:使用 CloudWatch 监控脚本收集指标

监控脚本演示如何为 Amazon CloudWatch 生成和使用自定义指标。这些示例 Perl 脚本包含一个功能完备的示例,用于报告 Linux 实例的内存、交换文件和磁盘空间使用率指标。

在使用这些脚本时,将对自定义指标收取相应的标准 Amazon CloudWatch 使用费。有关更多信息,请参阅 Amazon CloudWatch 定价页。

目录

支持的系统

已使用以下系统在实例上测试监控脚本。不支持在任何其他操作系统上使用监控脚本。

  • Amazon Linux 2
  • Amazon Linux AMI 2014.09.2 和更高版本
  • Red Hat Enterprise Linux 6.9 和 7.4
  • SUSE Linux Enterprise Server 12
  • Ubuntu Server 14.04 和 16.04

所需权限

确保脚本具有通过将 IAM 角色与您的实例关联来调用以下操作的权限:

  • cloudwatch:PutMetricData
  • cloudwatch:GetMetricStatistics
  • cloudwatch:ListMetrics
  • ec2:DescribeTags

有关更多信息,请参阅 使用 IAM 角色

安装所需的程序包

对于 Linux 的某些版本,您必须先安装额外的 Perl 模块,然后才能使用监控脚本。

在 Amazon Linux 2 和 Amazon Linux AMI 上安装所需的程序包

  1. 登录您的实例。有关更多信息,请参阅 连接到您的 Linux 实例
  2. 在命令提示符下,按如下方式安装程序包:

sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64

在 Ubuntu 上安装所需的程序包

  1. 登录您的实例。有关更多信息,请参阅 连接到您的 Linux 实例
  2. 在命令提示符下,按如下方式安装程序包:

sudo apt-get update sudo apt-get install unzip sudo apt-get install libwww-perl libdatetime-perl

在 Red Hat Enterprise Linux 7 上安装所需的程序包

  1. 登录您的实例。有关更多信息,请参阅 连接到您的 Linux 实例
  2. 在命令提示符下,按如下方式安装程序包:

sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA --enablerepo="rhui-REGION-rhel-server-optional" -y sudo yum install zip unzip

在 Red Hat Enterprise Linux 6.9 上安装所需的程序包

  1. 登录您的实例。有关更多信息,请参阅 连接到您的 Linux 实例
  2. 在命令提示符下,按如下方式安装程序包:

sudo yum install perl-DateTime perl-CPAN perl-Net-SSLeay perl-IO-Socket-SSL perl-Digest-SHA gcc -y sudo yum install zip unzip

  1. 以权限经过提升的用户身份运行 CPAN:

sudo cpan

出现提示时始终按 Enter,直到您看到以下提示:

cpan[1]>

  1. 在 CPAN 提示下,运行以下的每个命令:运行一个命令,该命令将进行安装,然后在您返回到 CPAN 提示时运行下一个命令。在系统提示继续完成该过程时像之前一样按 Enter:

cpan[1]> install YAML cpan[2]> install LWP::Protocol::https cpan[3]> install Sys::Syslog cpan[4]> install Switch

在 SUSE 上安装所需的程序包

  1. 登录您的实例。有关更多信息,请参阅 连接到您的 Linux 实例
  2. 在运行 SUSE Linux Enterprise Server 12 的服务器上,您可能需要下载 perl-Switch 程序包。您可以使用以下命令来下载并安装此程序包:

wget http://download.opensuse.org/repositories/devel:/languages:/perl/SLE_12_SP3/noarch/perl-Switch-2.17-32.1.noarch.rpm sudo rpm -i perl-Switch-2.17-32.1.noarch.rpm

  1. 安装所需的程序包,如下所示:

sudo zypper install perl-Switch perl-DateTime sudo zypper install –y "perl(LWP::Protocol::https)"

安装监控脚本

下列步骤介绍如何在 EC2 Linux 实例上下载、解压缩和配置 CloudWatch 监控脚本。

要下载、安装和配置监控脚本

  1. 在命令提示符下,移至希望存储监控脚本的文件夹,并运行以下命令下载监控脚本:

curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O

  1. 运行以下命令安装您下载的监控脚本:

unzip CloudWatchMonitoringScripts-1.2.2.zip && \ rm CloudWatchMonitoringScripts-1.2.2.zip && \ cd aws-scripts-mon

监控脚本的程序包中包含以下文件:

  • CloudWatchClient.pm – 共享 Perl 模块,以简化从其他脚本调用 Amazon CloudWatch 的过程。
  • mon-put-instance-data.pl – 收集 Amazon EC2 实例中的系统指标(内存、交换、磁盘空间利用率)并将其发送到 Amazon CloudWatch。
  • mon-get-instance-stats.pl – 查询 Amazon CloudWatch 并显示在其上执行此脚本的 EC2 实例的最近利用率统计数据。
  • awscreds.template – AWS 凭据的文件模板,储存您的访问密钥 ID 和私有访问密钥。
  • LICENSE.txt – 包含 Apache 2.0 许可证的文本文件。
  • NOTICE.txt – 版权声明。

mon-put-instance-data.pl

此脚本会收集当前系统的内存、交换和磁盘空间使用率数据。然后远程调用 Amazon CloudWatch,以自定义指标的形式报告收集到的数据。

参数详见另一篇

示例

以下示例假设您提供了一个 IAM 角色或 awscreds.conf 文件。否则,您必须使用 --aws-access-key-id 和 --aws-secret-key 参数为这些命令提供凭证。

以下示例执行简单的测试运行而不将数据发布到 CloudWatch。

./mon-put-instance-data.pl --mem-util --verify --verbose

以下示例收集所有可用内存指标并将其发送到 CloudWatch,将缓存和缓冲区内存计为“已用”

./mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --mem-used --mem-avail

以下示例收集 Auto Scaling 组的聚合指标并将其发送到 Amazon CloudWatch,但不报告单独的实例指标。

./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --auto-scaling=only

以下示例收集实例类型、AMI ID 和区域的聚合指标并将其发送到 Amazon CloudWatch,但不报告单独的实例指标

./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --aggregated=only

要为向 CloudWatch 报告的指标制定 cron 计划,请使用 crontab -e 命令开始编辑 crontab。添加下列命令,每五分钟将内存和磁盘空间使用率报告到 CloudWatch:

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ --from-cron

如果脚本遇到错误,它会在系统日志中写下错误消息。

mon-get-instance-stats.pl

此脚本可在使用最近小时数提供的时间间隔内查询 CloudWatch 中有关内存、交换和磁盘空间指标的统计数据。将为对其执行此脚本的 Amazon EC2 实例提供该数据。

要获得最近 12 小时的使用率统计数据,请运行以下命令:

./mon-get-instance-stats.pl --recent-hours=12

以下为响应示例:

Instance metric statistics for the last 12 hours. CPU Utilization Average: 1.06%, Minimum: 0.00%, Maximum: 15.22% Memory Utilization Average: 6.84%, Minimum: 6.82%, Maximum: 6.89% Swap Utilization Average: N/A, Minimum: N/A, Maximum: N/A Disk Space Utilization on /dev/xvda1 mounted as / Average: 9.69%, Minimum: 9.69%, Maximum: 9.69%

在控制台中查看自定义指标

在成功运行 mon-put-instance-data.pl 脚本后,您可以在 Amazon CloudWatch 控制台中查看自定义指标。

要查看自定义指标

  1. 如前所述运行 mon-put-instance-data.pl。
  2. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
  3. 选择 View Metrics。
  4. 对于 Viewing,由脚本发布的自定义指标带有前缀 System/Linux。

故障排除

CloudWatchClient.pm 模块在本地缓存实例元数据。如果您从运行监控脚本的实例中创建 AMI,在缓存 TTL (默认值:6 小时;对于 Auto Scaling 组为 24 小时) 内从此 AMI 启动的任何实例都将使用原始实例的实例 ID 发送指标。缓存 TTL 时间段过后,脚本会检索新数据,监控脚本将使用当前实例的实例 ID。要立即更正此问题,请使用以下命令删除缓存数据:

rm /var/tmp/aws-mon/instance-id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值