batchiです。
EC2Configの機能を利用したカスタムメトリクスを試してみたので、
2回に分けて紹介したいと思います。
プロローグ
メモリの使用率やディスクの空き容量をCloudwatchでモニタリングしたい。WindowsServerで。
標準メトリクスには含まれていないので、カスタムメトリクスとして設定する必要がある。
どうやらそれを実現するためのサンプルスクリプトが提供されているようだ。
ということで探してみたところ該当ページを見つけたのでアクセスしてみると、
http://aws.amazon.com/code/7932034889155460
Errorが。
何ということでしょう。
調べていくうちに、どうやらもうサンプルスクリプトの
提供はされていないようだとじわじわ理解していきますが、
念のためサポートに問い合わせてみます。
回答の要旨は以下のとおり。
・現時点では提供していないですよ
・代替案としてEC2Configによる送信機能をお勧めしていますよ
・サンプルスクリプトの機能は包含されていますよ
・詳しくは下記ドキュメントを参照してくださいよ
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html#send_logs_to_cwl
ということで改めて上記のドキュメントに沿って設定していきます。
設定
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html#send_logs_to_cwl
-CloudWatch へのパフォーマンスカウンタの送信と CloudWatch Logs へのログの送信
上記のドキュメントには情報が盛り沢山なので、
今回試したいことに必要な部分だけかいつまんでいきます。
(Coudwatch Logsに関する部分はすべてスキップします)
ステップ 1: IAM のアクセス許可を設定する
IAMユーザーないしIAMロールで設定。
今回はcloudwatchに対するアクションだけの権限を持った
IAMユーザーを作成してみました。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] } ] }
ステップ 2: CloudWatch Logs 統合を有効にする
プログラムからEC2ConfigService Settingsを開き、
Enable Cloudwatch Logs integrationのチェックボックスをポチッとします。
ドキュメントには下記のような記述がありますが、
4.AWS.EC2.Windows.CloudWatch.json という名前の構成ファイルを作成します。
私が試した環境ではすでに該当の構成ファイルがサーバ内に存在していたので、
「作成」というよりは「編集」というほうがしっくり来ます。
ステップ3以降は上記Jsonファイルに関わる工程となりますが、
予め作成しておいて格納するもよし、
直にメモ帳などで開いて編集するもよしです。
ステップ 3: CloudWatch と CloudWatch Logs の認証情報を設定する
JsonファイルのCloudwatchセクションを探し、
パラメータを入力します。
AccessKey | ステップ1で作成したIAMユーザーのアクセスキー。 ※IAMロールの場合は不要 |
SecretKey | 同上。シークレットキー。 |
Region | Cloudwatchのリージョン。 |
NameSpace | 名前空間。 Cloudwatchの画面上の表示にも影響してくる※下画像参照 |
「カスタムメトリックス」の下の、
青く塗りつぶしている部分にNamespaceの値が表示されます。
通常のメトリクスでは「AWS/EC2」「AWS/S3」のような値が入っている部分です。
ステップ 4: CloudWatch と CloudWatch Logs に送信するパフォーマンスカウンタとログを設定する
ここがなかなか個人的に苦労した部分なので、
以降の手順を次回の更新に回して説明していこうと思います。
それではまた。