CloudWatch でWindows EC2 のメモリ・ディスク使用率を監視する


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

CloudWatchは標準・カスタムでそれぞれ何を監視できる?

AWS環境の様々な項目を監視できる「Amazon CloudWatch」には、標準で監視可能な項目「標準メトリクス」と、利用者自身で、設定することにより監視可能になる項目「カスタムメトリクス」の2種類があります。

標準メトリクスでは、EC2インスタンスのCPU使用率やディスク、ネットワークの利用状況、インスタンスのステータスチェックといった項目が用意されており、閾値を設定するだけですぐに監視をはじめることができます。

これら以外の項目に関しては、利用者がカスタムメトリクスを作成することで監視可能になります。「Amazon CloudWatch」は70以上のAWSサービスに対応しており、ニーズやシステムの用途などにあわせたカスタムメトリクスにより、きめ細かな監視を実現できます。

例えば、EC2インスタンス上で稼働するアプリケーションの状態などです。標準メトリクスの「インスタンスステータスチェック」では、仮想マシン・OSレベルで問題が起きているかまでしかチェックできませんが、アプリケーションの状態を確認するカスタムメトリクスを作成することで監視できるようになります。

やりたいこと

今回は、CloudWatch エージェントを利用して、Windows EC2のカスタムメトリクスを監視する方法を紹介します。

前提

IAMロール作成/アタッチ

IAMロールを下記ポリシーで作成して、対象EC2にアタッチします。
必要なポリシー:
cloudwatch:PutMetricData
ec2:DescribeTags

メトリクス設定ファイル作成

監視内容例:

メトリクス 説明
CPUユーザ使用率 Processor % User Time
CPUシステム使用率 Processor % Privileged Time
メモリ使用率 Memory % Committed Bytes In Use
ページングファイル使用率 Paging File % Usage
ディスク使用率 LogicalDisk % Free Space

下記内容のjsonファイルを作成しておく

amazon-cloudwatch-agent.json

{
    "metrics": {
        "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
            "ImageId": "${aws:ImageId}",
            "InstanceId": "${aws:InstanceId}",
            "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
            "LogicalDisk": {
                "measurement": [
                    "% Free Space"                // ディスク使用率
                ],
                "metrics_collection_interval": 300,
                "resources": [
                    "*"
                ]
            },
            "Memory": {
                "measurement": [
                    "% Committed Bytes In Use"     // メモリ使用率
                ],
                "metrics_collection_interval": 300
            },
            "Paging File": {
                "measurement": [
                    "% Usage"                      // SWAP使用率
                ],
                "metrics_collection_interval": 300,
                "resources": [
                    "*"
                ]
            },
            "PhysicalDisk": {
                "measurement": [
                    "% Disk Time",                 // ディスクW/Rなど
                    "Disk Write Bytes/sec",
                    "Disk Read Bytes/sec",
                    "Disk Writes/sec",
                    "Disk Reads/sec"
                ],
                "metrics_collection_interval": 300,
                "resources":[
                    "*"
                ]
            },
            "Processor": {
                "measurement": [
                    "% User Time",                // CPUユーザ使用率
                    "% Privileged Time"           // CPUシステム使用率
                ],
                "metrics_collection_interval": 300,
                "resources": [
                    "*"
                ]
            }
        }
    }
}

CloudWatchエージェント作成

対象EC2の接続、CloudWatchエージェントのインストール

対象EC2を接続して、CloudWatchエージェントのインストールファイルをダウンロードします。
MSIダウンロードURL:
https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi
ダウンロードしたmsiファイルを起動して、CloudWatchエージェントをインストールします。

メトリクス設定ファイルのコピー

メトリクス設定ファイルをC:\ProgramData\Amazon\AmazonCloudWatchAgent\Configsにコピーします。

CloudWatchエージェントの起動

タスクマネージャーを開く、サービスよりAmazonCloudWatchAgentを起動します。

file

サービスでAmazonCloudWatchAgent自動起動を設定することを確認します
file

ログの確認

CloudWatchエージェントの起動ログのフォルダ:
C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs
amazon-cloudwatch-agent.log

CloudWatchエージェント状態の確認

CloudWatchエージェントより送信されたカスタムメトリクスのイメージを確認します。
file

その他Windows用カスタムメトリクス

メトリクス 説明
Memory % Committed Bytes In Use Memory % Committed Bytes In Use パフォーマンス カウンターは、
Memory\Commit Limit に対する Memory\Committed Bytes の割合を示します。
LogicalDisk % Free Space Logical Disk\% Free Space パフォーマンス カウンタは、
選択した論理ディスク ドライブの利用可能な空き領域の合計をパーセントで表示します。
Paging File % Usage 仮想メモリ(ページングファイル)がどの程度使われているかをパーセンテージで表したもの
Processor % Idle Time サンプリング間隔中に、プロセッサがアイドル状態になっている時間をパーセントで表示します。
Processor % Interrupt Time サンプリング間隔でプロセッサがハードウェア割り込みを
受け取り処理するために費やした時間の割合をパーセントで表示します。
Processor % User Time ユーザー モードで経過した非アイドルのプロセッサ時間の割合をパーセントで表示します。
PhysicalDisk % Disk Time 選択したディスク ドライブが読み取りまたは書き込み要求を処理していてビジー状態にあった
経過時間の割合をパーセントで表示します。
PhysicalDisk Disk Write Bytes/sec 書き込み操作中にディスクにバイトが転送される速度です。
PhysicalDisk Disk Read Bytes/sec 読み取り操作中にディスクからバイトが転送される速度です。
PhysicalDisk Disk Writes/sec ディスク上の書き込操作の速度です。
PhysicalDisk Disk Reads/sec ディスク上の読み取り操作の速度です。
TCPv4 Connections Established 現在の状態が ESTABLISHED または CLOSE-WAIT のいずれかである TCP 接続の数です。
TCPv6 Connections Established 現在の状態が ESTABLISHED または CLOSE-WAIT のいずれかである TCP 接続の数です。

あとがき

以上はWINDOWSの設定ですが、Linuxの方は下記リンクに記載しています。
https://cloud5.jp/metrics-monitoring-linux/

Last modified: 2024-02-02

Author