一:先决条件
某些版本的 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。