非推奨: CloudWatch モニタリングスクリプトを使用したメトリクスの収集
重要
CloudWatch モニタリングスクリプトは非推奨です。使用できなくなったが、これらの監視スクリプトをまだ使用しているお客様向けに、これらの監視スクリプトに関する情報をこのページで提供します。
CloudWatch エージェントを使用してメトリクスおよびログを収集することを強くお勧めします。詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する」を参照してください。
モニタリングスクリプトは、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 に必要なパッケージをインストールするには
-
インスタンスにログオンします。詳細については、「Linux インスタンスへの接続」を参照してください。
-
コマンドプロンプトで以下のようにパッケージをインストールします。
sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64
Ubuntu に必要なパッケージをインストールするには
-
インスタンスにログオンします。詳細については、「Linux インスタンスへの接続」を参照してください。
-
コマンドプロンプトで以下のようにパッケージをインストールします。
sudo apt-get update sudo apt-get install unzip sudo apt-get install libwww-perl libdatetime-perl
Red Hat Enterprise Linux 7 に必要なパッケージをインストールするには
-
インスタンスにログオンします。詳細については、「Linux インスタンスへの接続」を参照してください。
-
コマンドプロンプトで以下のようにパッケージをインストールします。
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 に必要なパッケージをインストールするには
-
インスタンスにログオンします。詳細については、「Linux インスタンスへの接続」を参照してください。
-
コマンドプロンプトで以下のようにパッケージをインストールします。
sudo yum install perl-DateTime perl-CPAN perl-Net-SSLeay perl-IO-Socket-SSL perl-Digest-SHA gcc -y sudo yum install zip unzip
昇格されたユーザーとして CPAN を実行します。
sudo cpan
次のプロンプトが表示されるまで、各プロンプトで Enter キーを押します。
cpan[1]>
CPAN プロンプトで、次の各コマンドを実行します。1 つのコマンドを実行してインストールを実行し、CPAN プロンプトに戻ったら次のコマンドを実行します。次の処理に進むことを求めるプロンプトが表示されたら、Enter キーを押します。
cpan[1]> install YAML cpan[2]> install LWP::Protocol::https cpan[3]> install Sys::Syslog cpan[4]> install Switch
SUSE に必要なパッケージをインストールするには
-
インスタンスにログオンします。詳細については、「Linux インスタンスへの接続」を参照してください。
-
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
-
次のように、必要なパッケージをインストールします。
sudo zypper install perl-Switch perl-DateTime sudo zypper install –y "perl(LWP::Protocol::https)"
モニタリングスクリプトをインストールする
以下の手順では、EC2 Linux インスタンスで CloudWatch モニタリングスクリプトのダウンロード、解凍、構成を行う方法について示します。
モニタリングスクリプトのダウンロード、インストール、設定を行うには
-
コマンドプロンプトで、モニタリングスクリプトを保存するフォルダに移動し、次のコマンドを実行してモニタリングスクリプトをダウンロードします。
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
モニタリングスクリプトのパッケージに、以下のファイルが含まれます。
-
CloudWatchClient.pm - 他のスクリプトから Amazon CloudWatch を簡単に呼び出せる共通 Perl モジュールです。
-
mon-put-instance-data.pl - Amazon EC2 インスタンス (メモリ、スワップ、ディスクスペースの使用状況) のシステムメトリクスを収集し、Amazon CloudWatch に送信します。
-
mon-get-instance-stats.pl - Amazon CloudWatch にクエリを実行して、このスクリプトが実行される EC2 インスタンスの最新の使用状況統計を表示します。
-
awscreds.template - アクセスキー ID とシークレットアクセスキーを保存する AWS 認証情報のファイルテンプレートです。
-
LICENSE.txt - Apache 2.0 のライセンスを含むテキストファイルです。
-
NOTICE.txt 著作権情報です。
mon-put-instance-data.pl
このスクリプトは、現行システムにあるメモリ、スワップ、ディスクスペースの使用状況のデータを収集します。その後、Amazon CloudWatch へのリモート呼び出しを行って、収集したデータをカスタムメトリクスとしてレポートします。
オプション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MemoryUtilization メトリクスをパーセント (%) 単位で収集し、送信します。このメトリクスには、使用されているアプリケーションとオペレーティングシステムによって割り当てられたメモリがカウントされるほか、 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
メガバイト (MB) 単位でレポートされる MemoryUsed メトリクスを収集し、送信します。このメトリクスには、使用されているアプリケーションとオペレーティングシステムによって割り当てられたメモリがカウントされるほか、 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
このオプションを含めると、キャッシュおよびバッファに現在使用されているメモリは、 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
メガバイト (MB) 単位でレポートされる MemoryAvailable メトリクスを収集し、送信します。このメトリクスには、使用されているアプリケーションとオペレーティングシステムによって割り当てられたメモリがカウントされるほか、 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
パーセント (%) 単位でレポートされる SwapUtilization メトリクスを収集し、送信します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
メガバイト (MB) 単位でレポートされる SwapUsed メトリクスを収集し、送信します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
レポートするディスクを選択します。 PATH では、マウントポイント、またはレポートが必要なファイルシステムのマウントポイントにあるファイルを指定できます。複数のディスクを選択するには、それぞれに対して
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
選択したディスクについて、DiskSpaceUtilization メトリクスを収集し送信します。メトリクスはパーセンテージでレポートされます。 このスクリプトによって計算されたディスクの使用状況メトリクスは、df -k -l コマンドによって計算された値とは異なることに注意してください。df -k -l の値のほうが有用であると判断した場合は、スクリプトのほうの計算値を変更できます。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
選択したディスクについて、DiskSpaceUsed メトリクスを収集し送信します。メトリクスは、デフォルトにより、ギガバイトでレポートされます。 Linux オペレーティングシステムには予約ディスクスペースがあるため、使用済みディスクスペースと使用可能なディスクスペースを合計しても正確なディスクスペースの合計にならないことがあります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
選択したディスクについて、DiskSpaceAvailable メトリクスを収集し送信します。メトリクスはギガバイトでレポートされます。 Linux オペレーティングシステムには予約ディスクスペースがあるため、使用済みディスクスペースと使用可能なディスクスペースを合計しても正確なディスクスペースの合計にならないことがあります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
メモリ使用量をレポートする単位を指定します。指定がない場合、メモリはメガバイト (MB) でレポートされます。UNITS は、バイト (B)、キロバイト (KB)、メガバイト (MB)、ギガバイト (GB) のいずれかになります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ディスクスペース使用量をレポートする単位を指定します。指定がない場合、ディスクスペースはギガバイト (GB) でレポートされます。UNITS は、バイト (B)、キロバイト (KB)、メガバイト (MB)、ギガバイト (GB) のいずれかになります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AWS 認証情報を持っているファイルの場所を提供します。 このパラメータは、 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
発信者を識別するために使用する AWS アクセスキー ID を指定します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CloudWatch へのリクエストの署名に使用する AWS シークレットアクセスキーを指定します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AWS 認証情報を提供するために使用する IAM ロールを指定します。値 このオプションを |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
インスタンスタイプ、AMI ID、リージョン全体の集約されたメトリクスを追加します。値 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Auto Scaling グループの集約されたメトリクスを追加します。値 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
メトリクスを収集するスクリプトのテストランを実行したり、完全な HTTP リクエストを用意したりしますが、実際に CloudWatch を呼び出してデータをレポートすることはありません。このオプションで、認証情報が提供されていることも確認できます。冗長モードで実行すると、このオプションは CloudWatch に送信するメトリクスを出力します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
cron からスクリプトを呼び出す際はこのオプションを使用します。このオプションを使用すると、すべての診断出力が抑えられますが、エラーメッセージがユーザーのローカルシステムログに送信されます。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スクリプトの実行内容の詳細を表示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
使用状況の情報を表示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スクリプトのバージョン番号を表示します。 |
例
次の例では、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 の編集を開始します。5 分ごとにメモリとディスクスペースの使用状況を 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 インスタンスに関するものです。
オプション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
レポートする直近の時間数を |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AWS 認証情報を持っているファイルの場所を提供します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
発信者を識別するために使用する AWS アクセスキー ID を指定します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CloudWatch へのリクエストの署名に使用する AWS シークレットアクセスキーを指定します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AWS 認証情報を提供するために使用する IAM ロールを指定します。値 このオプションを |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スクリプトのテストを実行します。このオプションで、認証情報が提供されていることも確認できます。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スクリプトの実行内容の詳細を表示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
使用状況の情報を表示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スクリプトのバージョン番号を表示します。 |
例
過去 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 コンソールでカスタムメトリックスを確認できます。
カスタムメトリクスを表示するには
-
前述のとおりに
mon-put-instance-data.pl
を実行します。 CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
[View Metrics] を選択します。
-
[Viewing] (表示中) では、スクリプトによって投入されたカスタムメトリクスが
System/Linux
というプレフィックス付きで表示されます。
トラブルシューティング
CloudWatchClient.pm モジュールは、インスタンスのメタデータをローカルでキャッシュします。モニタリングスクリプトを実行しているインスタンスから AMI を作成すると、キャッシュ TTL (デフォルト: 6 時間、Auto Scaling グループでは 24 時間) 以内にこの AMI から起動したすべてのインスタンスは、元のインスタンスのインスタンス ID を使用してメトリクスを出力します。キャッシュ TTL 期間が経過した後は、スクリプトは新しいデータを取得し、モニタリングスクリプトは現在のインスタンスのインスタンス ID を使用します。これをすぐに修正するには、次のコマンドを使用してキャッシュされたデータを削除します。
rm /var/tmp/aws-mon/
instance-id