Linux初心者~AWS EC2のCloudWatchでメモリも監視対象にする~

システムAWS, CloudWatch, EC2, Linux

はじめに

AWS EC2のCloudWatchで監視対象にする項目をカスタマイズした時のメモです。

CloudWatchでメモリを監視対象にする

EC2のカスタムメトリクス

  • IAMロールを追加
  • IAMの画面でロールを開いて「ロールを作成」ボタンを押す

  • 信頼関係

  • 信頼されたエンティティの種類を選択
    • AWSサービス
  • このロールを使用するサービスを選択
    • EC2
  • ユースケースの選択

    • EC2
  • 次のステップ:アクセス権限
    ポリシーの作成ボタンを押す

  • エディタ
    JSONタブを選択

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

Review policyボタンを押す

  • ポリシーの確認

  • 名前:CloudWatchPush

  • 説明:EC2 is Cloud Watch to Push.
  • 概要:

CloudWatch
完全: リスト 制限: 読み込み, 書き込み
すべてのリソース
なし

EC2
制限: 読み込み
すべてのリソース
なし

Create policyボタンを押す

再びロールの作成画面に戻って、先ほど作成したポリシーの「CloudWatchPush」を選択して
次のステップ:確認ボタンを押す

  • ロール名:CloudWatchPushRole

EC2へ移動
インスタンスを選択し、アクションのインスタンスの設定でIAMロールの割り当て/置換を選択
先ほど作成したロールした「CloudWatchPushRole」を指定
適用ボタンを押す

  • IAMへユーザを追加
    IAMのユーザ画面を開いて「ユーザを追加」ボタンを押す
  • ユーザ名:CouldWatchPushUser
  • アクセスの種類:プログラムによるアクセスをチェック
    次のステップ:アクセス権限ボタンを押す

アクセス権限の設定:既存のポリシーを直接アタッチ
「CloudWatchPush」ロールを選択
次のステップ:確認を押す

ユーザの作成ボタンを押す

アクセスIDは後からでもAWSのコンソール画面かえあ確認できるんですが、シークレットアクセスキーに関しては以降見れないのでメモ必須です!

$ ./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --from-cron
  • 必要なパッケージをインストール
$ sudo yum install perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https
  • スクリプト用ディレクトリ作成
$ sudo mkdir /usr/local/cloudwatch
  • モニタリングスクリプトをダウンロードして解凍
$ sudo curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip -O
$ sudo unzip CloudWatchMonitoringScripts-1.2.1.zip
$ sudo rm CloudWatchMonitoringScripts-1.2.1.zip
  • AWS認証情報を認証情報ファイルへ指定(ひな形を複製して)
$ cd /usr/local/cloudwatch/aws-scripts-mon/
$ sudo cp awscreds.template awscreds.conf
$ sudo vi awscreds.conf
  • CloudWatchClient.pm
    – 共有 Perl モジュール。これを使って、他のスクリプトから簡単に Amazon CloudWatch を呼び出すことができます。
  • 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
    – 著作権情報です。

  • 参考ページ

システムAWS, CloudWatch, EC2, Linux

Posted by UT