WindowsServerにCloudWatch エージェントを入れてリソース監視

はじめに

今回はWindows Server 2012 R2にCloudWatch エージェントを入れて、リソース監視をする手順の紹介です。

基本的には下記に従うだけですが、まぁ画像を載せながらポチポチまとめていこうかと思います。

CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する

CloudWatch エージェントはWindowsでは64bitの Windows Server 2016、Windows Server 2012、Windows Server 2008に対応しています。EC2だけでなくオンプレ環境でも使用できますので、監視だけをCloudWatchに移行することも可能です。

リソース監視してみる。

今回はEC2でたてたWindows Server 2012 R2なので、監視までの流れは

・AWSでIAM ロールの作成
・IAM ロールをインスタンスにアタッチ
・サーバーに入ってエージェントパッケージのインストール
・エージェント起動
・動作確認

となります。

AWSでIAM ロールの作成

サーバーからCloudWatchにデータを送るため、権限をサーバーに与えてあげないといけません。そのためのロールを作成します。

IAMからロールの作成、サービスの選択画面で「EC2Allows EC2 instances to call AWS services on your behalf」を選択、次の画面で以下の「CloudWatchAgentServerPolicy」をチェックします。

名前は今回「CloudWatchAgentServerRole」としました。

以下が確認画面問題なければそのまま作成を押してロールを作ります。

IAM ロールをインスタンスにアタッチ

CloudWatchに書き込める権限を持ったロールを作ったので、インスタンスにロールを渡してあげます。

インスタンスを右クリック→インスタンスの設定→IAMロールの割り当てを選択

作ったロール、CloudWatchAgentServerRoleを選択して適用します。

サーバーに入ってエージェントパッケージのインストール

これでCloudWatch エージェントをサーバーが使用できるロールを持ちましたので、インストールに入ります。

Windows Serverなので、リモートデスクトップ接続をします。

今回はS3からインターネット経由でDLしてエージェントをインストールします。

エージェント設定を使用して追加インスタンスに CloudWatch エージェントをインストールする

こちらの「S3 ダウンロードリンクを使用して Amazon EC2 インスタンスに CloudWatch エージェントパッケージをダウンロードする」よりWindowsのリンクをコピーして「amazon-cloudwatch-agent.msi」をDLしてください。

サーバーがインターネットへの接続が出来ない場合にはローカルに一度落として転送してください。

こちらをサーバーで開き、インストールできたら「C:\Program Files\Amazon\AmazonCloudWatchAgent」にファイルが置かれているはずです。

こちらにある、「amazon-cloudwatch-agent-config-wizard」からコンフィグが作れますので、希望の設定をCLIで選択していきます。

コンフィグが完成したら、エージェントを起動します。PowerShellを開き移動

cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"

下記コマンドで起動が可能です。

PS C:\Program Files\Amazon\AmazonCloudWatchAgent> ./amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m ec2 -c file:config.json -s
Successfully fetched the config and saved in C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp
Start configuration validation...
Valid Json input schema.
No csm configuration found.
No log configuration found.
Configuration validation first phase succeeded
Configuration validation second phase succeeded
Configuration validation succeeded

少し待った後、CloudWatchのメトリクスを表示すると、カスタム名前空間の項目が増えていると思います。

こちらにコンフィグに指定した、Windows パフォーマンスモニターで取ってきた値を表示できます。

新しくダッシュボードを作成しウィジェットにいろいろ表示を追加した場合こんな感じで表示出来ます。

自分が確認したいデータをWindows パフォーマンスモニターのカウンター追加から確認し、コンフィグを書き換えればカスタマイズできますので是非活用しましょう。

まとめ

通常、監視を行うためにはノードの監視を拾って状態表示するためのServerが必要ですが、AWSではその役目をCloudWatchが行ってくれます。

ZabbixやPrometheusなどを使うのも手ですが、AWSを使ってるのであれば、CloudWatchも選択肢の一つではないでしょうか。