内存使用率指标、磁盘剩余空间指标是AWS的自定义指标,需要在您的EC2实例上安装监控脚本。

1.先决条件

2.下载、安装和配置脚本

3.使用脚本

4.在AWS管理控制台中查看自定义指标

一:先决条件

某些版本的 Linux 必须执行额外步骤。

♦ Amazon Linux AMI

如果您运行的是 Amazon Linux AMI 2014.03 或更高版本,则需要另外添加一些 Perl 模块才能使监控脚本正常运行。请使用以下步骤配置您的服务器。

  • 1、登录您的 Amazon Linux AMI 实例。

  • 2、在命令提示符下,安装以下程序包:

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

  • ♦ Red Hat Enterprise Linux

    如果您运行的是 Red Hat Enterprise Linux,则需要另外添加一些 Perl 模块才能使监控脚本正常运行。请使用以下步骤配置您的服务器。

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

  • 1、登录到您的 Red Hat Enterprise 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

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

          sudo cpan

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

          cpan[1]>

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

          cpan[1]> install YAML

          cpan[1]> install LWP::Protocol::https

          cpan[1]> install Sys::Syslog

          cpan[1]> install Switch

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

  • 1、登录到您的 Red Hat Enterprise 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

  • ♦ SUSE Linux Enterprise Server

    如果您运行的是 SUSE Linux Enterprise Server,则需要另外添加一些 Perl 模块才能使监控脚本正常运行。请使用以下步骤配置您的服务器。

  • 1、登录到您的 SUSE Linux Enterprise Server 实例。

  • 2、在命令提示符下,安装以下程序包:

          sudo zypper install perl-DateTime

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

  • ♦ Ubuntu Server

    如果您运行的是 Ubuntu Server,请使用以下步骤配置您的服务器。

  • 1、登录到您的 Ubuntu Server 实例。

  • 2、在命令提示符下,安装以下程序包:

          sudo apt-get update

          sudo apt-get install unzip

          sudo apt-get install libwww-perl libdatetime-perl

  • 二:下载、安装和配置脚本

    1、打开命令提示符,移至要储存脚本的文件夹,然后键入以下内容:

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

          unzip CloudWatchMonitoringScripts-1.2.2.zip

          rm CloudWatchMonitoringScripts-1.2.2.zip

          cd aws-scripts-mon

  • 2、如果您已经有一个与实例关联的 AWS Identity and Access Management (IAM) 角色,应确保该角色有权执行以下操作:

  •       • cloudwatch:PutMetricData

          • cloudwatch:GetMetricStatistics

          • cloudwatch:ListMetrics

          • ec2:DescribeTags

  • 否则,您可以创建一个有权执行 CloudWatch 操作的新 IAM 角色,并在创建新实例时关联该角色。

    3、如果不使用 IAM 角色,则更新之前下载的 awscreds.template 文件。此文件的内容应该使用以下格式:

  •       AWSAccessKeyId=YourAccessKeyID

          AWSSecretKey=YourSecretAccessKey

  • 执行以下命令:

          cp awscreds.template awscreds.conf

    更改awscreds.conf中的AWSAccessKeyId和AWSSecretKey

    三:使用脚本 mon-put-instance-data.pl

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

    下列示例假定您已经使用有效的 AWS 凭据更新了 awscreds.conf 文件。如果不使用 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

    • 为报告到 CloudWatch 的指标制定 cron 计划

    1、使用下列命令开始编辑 crontab:

          crontab -e

    2、添加下列命令,每五分钟将内存和磁盘空间利用率报告到 CloudWatch:

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

    其中:--disk-path=PATH可以指定您要报告的磁盘路径,您定义好该路径后,请告知我们,我们需要在OptimizeNow产品侧进行相应的配置。

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

    四:在AWS管理控制台中查看自定义指标

    如果成功调用 mon-put-instance-data.pl 脚本,则可以使用 AWS 管理控制台查看 Amazon CloudWatch 控制台中已经发布的自定义指标。

    1、执行 mon-put-instance-data.pl,如前所述。

    2、登录 AWS 管理控制台 并通过以下网址打开 CloudWatch 控制台 https://console.amazonaws.cn/cloudwatch/。

    3、单击“View Metrics”。

    4、在 Viewing 列表中,由脚本发布的自定义指标会显示有前缀 System/Linux。