Windows ServerのプロセスをCloudWatchAgentを使って監視する方法

こんにちは。hacknoteのr.katoです。

今回はEC2インスタンスに建てたWindows Server 2016のプロセスをCloudWatch Agentを利用して
CloudWatchメトリクスに送り監視できるようにしたのでその方法を紹介していきます。

手順

  1. CloudWatch Agentのインストール
  2. AWS Systems Manager(SSM)のパラメータストアに実行したいパラメータの登録
  3. SSMのランコマンドを使ってAmazonCloudWatch-ManageAgentの実行

以上が手順となります。

1. CloudWatch Agentのインストール

SSMを使ったCloudWatchAgentのインストール方法で詳しく紹介しているので参照してください。

2. AWS Systems Manager(SSM)のパラメータストアに実行したいパラメータの登録

SSMのパラメータストアにアクセスし、パラメータの作成をクリックします。
そして、名前と値に任意の文字(AmazonCloudWatchで始まる)を入力し、パラメータの作成をクリックします。

この時、値は以下のようにします。

  1. Pid_fileを使う場合
{
"metrics": { 
    "metrics_collected": { 
        "procstat": [ { 
            "pid_file": "C:\\hoge\\pid_file.pid", 
            "measurement": [ 
                "pid_count" 
                           ], 
            "metrics_collection_interval": 60 
                       } ] 
                          } 
            } 
}

※監視対象のwindows server上(C:\hoge\pid_file.pid)にpidファイルをタスクマネージャーのPIDを参照して作成しておく必要があります。

  1. exeファイルを指定する場合
{
"metrics": { 
    "metrics_collected": { 
        "procstat": [ { 
            "exe": "iexplore.exe", 
            "measurement": [ 
                "pid_count" 
                           ], 
            "metrics_collection_interval": 60 
                       } ] 
                          } 
            } 
}

3. SSMのランコマンドを使ってAmazonCloudWatch-ManageAgentの実行

SSMのランコマンドで「AmazonCloudWatch-ManageAgent」を実行させます。
この時、コマンドのパラメータは2で作成したパラメータストアの名前を「Optional Configuration Location」に入力し、インスタンスを指定して実行します。

これで、指定したプロセスがCloudWatchのメトリクスに次の様に、「CWAgent」と言った形で保存されると思います。