CloudWatch エージェントのトラブルシューティング - Amazon CloudWatch

CloudWatch エージェントのトラブルシューティング

以下の情報を参考にして、CloudWatch エージェントに関する問題のトラブルシューティングを行います。

CloudWatch エージェントのコマンドラインパラメータ

CloudWatch エージェントでサポートされているパラメータの完全なリストを表示するには、エージェントがインストールされているコンピュータで、コマンドラインに以下のコマンドを入力します。

amazon-cloudwatch-agent-ctl -help

Run Command を使用した CloudWatch エージェントのインストールが失敗する

Systems Manager Run Commandを使用して CloudWatch エージェントをインストールするには、ターゲットサーバーの SSM Agent がバージョン 2.2.93.0 以降でなければなりません。SSM Agent のバージョンが適切でない場合は、次のエラーメッセージが表示されることがあります。

no latest version found for package AmazonCloudWatchAgent on platform linux
failed to download installation package reliably

SSM Agent バージョンの更新に関する詳細は、『AWS Systems Manager ユーザーガイド』の「SSM Agent のインストールと設定」を参照してください。

CloudWatch エージェントが開始されない

CloudWatch エージェントが開始されない場合、設定に問題がある可能性があります。設定情報は、configuration-validation.log ファイルにログ記録されます。このファイルは、Linux サーバーでは /opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log に、Windows Server を実行しているサーバーでは $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log にあります。

CloudWatch エージェントが実行されていることを確認する

CloudWatch エージェントのクエリを実行して、実行中か停止中かを調べることができます。これをリモートに行うには、AWS Systems Manager を使用できます。コマンドラインを使用することもできますが、チェックできるのはローカルサーバーだけです。

Run Command を使用して CloudWatch エージェントのステータスのクエリを実行するには

  1. Open the Systems Manager console at https://console.aws.amazon.com/systems-manager/.

  2. In the navigation pane, choose Run Command.

    -or-

    If the AWS Systems Manager home page opens, scroll down and choose Explore Run Command.

  3. [Run command (コマンドの実行)] を選択します。

  4. [コマンドドキュメント] リストで、[AmazonCloudWatch-ManageAgent] の横のボタンをクリックします。

  5. [Action] リストで、[status] を選択します。

  6. [オプションの設定ソース] で [デフォルト] を選択し、[オプションの設定場所] を空白のままにします。

  7. [Target] 領域で、確認するインスタンスを選択します。

  8. [Run] を選択します。

エージェントが実行されている場合、出力は次のようになります。

{ "status": "running", "starttime": "2017-12-12T18:41:18", "version": "1.73.4" }

エージェントが停止した場合、"status" フィールドには "stopped" が表示されます。

コマンドラインを使用して CloudWatch エージェントのステータスのクエリをローカルで実行するには

  • Linux サーバーで、次のように入力します。

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

    Windows Server を実行しているサーバーの場合、管理者として PowerShell で次のように入力します。

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a status

CloudWatch エージェントが起動せず、Amazon EC2 リージョンに関するエラーが発生する

エージェントが起動せず、エラーメッセージに Amazon EC2 リージョンのエンドポイントが示されている場合は、Amazon EC2 エンドポイントへのアクセス権を必要とするエージェントを設定しただけで、そのアクセス権を付与していない可能性があります。

たとえば、エージェントの設定ファイルで Amazon EC2 メタデータに依存する値を append_dimensions パラメータに指定し、プロキシを使用する場合は、そのサーバーが Amazon EC2 のエンドポイントにアクセスできることを確認する必要があります。これらのエンドポイントの詳細については、アマゾン ウェブ サービス全般のリファレンス の「Amazon Elastic Compute Cloud (Amazon EC2)」を参照してください。

CloudWatch エージェントが Windows Server で開始されない

一部の Windows Server インストールでは、CloudWatch エージェントの起動に 30 秒以上かかります。Windows Server では、サービスの起動に許容されるデフォルトの時間が 30 秒のみであるため、エージェントが失敗して次のようなエラーが表示される場合があります。

Start-Service : Service 'Amazon CloudWatch Agent (AmazonCloudWatchAgent)' cannot be started due to the following error: Cannot start service AmazonCloudWatchAgent on computer '.'. At C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1:113 char:12 + $svc | Start-Service + ~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

これを修正するには、サービスのタイムアウト値を増やします。詳細については、「サービスが開始されず、イベント 7000 および 7011 が Windows イベントログに記録される」を参照してください。

Windows Server で認証情報が見つかりません

Windows Server で $SystemDrive\\Users\\Administrator\\.aws (Windows Server 2008 R2 または Windows Server 2012) または “$SystemDrive\\Documents and Settings\\Administrator\\.aws (Windows Server 2003) 以外の場所に認証情報がある場合、common.tomlshared_credential_file オプションを使用して独自の認証情報のパスを指定できます。

認証情報ファイルがない場合は、作成する必要があります。詳細については、「(オプション) プロキシ情報またはリージョン情報の一般的な設定を変更する」を参照してください。

メトリクスの場所

CloudWatch エージェントが実行されているが、そのエージェントによって収集されたメトリクスが AWS マネジメントコンソール または AWS CLI で見つからない場合、適切な名前空間を使用していることを確認します。エージェントによって収集されるメトリクスの名前空間は、デフォルトでは CWAgent です。この名前空間は、エージェント設定ファイルの [metrics] セクションの [namespace] フィールドを使用してカスタマイズできます。予想されるメトリクスが表示されない場合、設定ファイルで、使用している名前空間を確認してください。

CloudWatch エージェントパッケージを初めてダウンロードした場合、エージェント設定ファイルは amazon-cloudwatch-agent.json です。このファイルは、設定ウィザードを実行したディレクトリにあります。または、別のディレクトリに自分で移動した可能性があります。設定ウィザードを使用した場合は、ウィザードからのエージェント設定ファイル出力の名前は config.json です。namespace フィールドなど、設定ファイルの詳細については、「 CloudWatch エージェント設定ファイル: metrics セクション」を参照してください。

エージェントの設定を更新しましたが、CloudWatch コンソールに新しいメトリクスやログが表示されません

CloudWatch エージェント設定ファイルを更新した場合、次回にエージェントを起動したときに、fetch-config オプションを使用する必要があります。例えば、更新したファイルをローカルコンピュータに保存した場合は、次のコマンドを入力します。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:configuration-file-path

CloudWatch エージェントファイルとロケーション

次の表は、Linux や Windows Server を実行しているサーバー上に CloudWatch エージェントによってインストールされて使用されるファイルおよびインストール先の一覧です。

ファイル Linux のロケーション Windows Server のロケーション

エージェントの起動、停止、再起動を制御する制御スクリプト。

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl または /usr/bin/amazon-cloudwatch-agent-ctl

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1

エージェントが書き込むログファイル。AWS サポート に接続する場合は、このファイルをアタッチする必要があります。

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log または /var/log/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

エージェント妥当性確認検証ファイル。

/opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log または /var/log/amazon/amazon-cloudwatch-agent/configuration-validation.log

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log

ウィザードが作成した直後に、エージェントの設定に使用される JSON ファイル。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。

/opt/aws/amazon-cloudwatch-agent/bin/config.json

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\config.json

この設定ファイルが Parameter Store からダウンロードした場合に、エージェントの設定に使用される JSON ファイル。

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json または /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.json

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json

エージェントで使用するリージョン情報と認証情報を指定するための TOML ファイル (システムのデフォルト値を上書きします)。

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml または /etc/amazon/amazon-cloudwatch-agent/common-config.toml

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

CloudWatch エージェントによって生成されるログ

エージェントは、実行されている間ログを生成します。このログには、トラブルシューティング情報が含まれています。このログは、amazon-cloudwatch-agent.log ファイルで確認できます。このファイルは、Linux サーバーでは /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log に、Windows Server を実行しているサーバーでは $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log にあります。

amazon-cloudwatch-agent.log ファイルに追加の詳細を記録するようにエージェントを設定できます。エージェント設定ファイルの agent セクションで、debug フィールドを true に設定した後、CloudWatch エージェントを再設定して再起動します。この追加情報をログ記録を無効にするには、debug フィールドを false に設定し、エージェントを再設定して再起動します。詳細については、「 CloudWatch エージェント設定ファイルを手動で作成または編集する」を参照してください。

CloudWatch エージェントを停止して再起動する

AWS Systems Manager またはコマンドラインを使用して CloudWatch エージェントを手動で停止できます。

Run Command を使用して CloudWatch エージェントを停止するには

  1. Open the Systems Manager console at https://console.aws.amazon.com/systems-manager/.

  2. In the navigation pane, choose Run Command.

    -or-

    If the AWS Systems Manager home page opens, scroll down and choose Explore Run Command.

  3. [Run command (コマンドの実行)] を選択します。

  4. [Command document] リストで、[AmazonCloudWatch-ManageAgent] を選択します。

  5. [ターゲット] 領域で、CloudWatch エージェントをインストールしたインスタンスを選択します。

  6. [Action] リストで、[stop] を選択します。

  7. [Optional Configuration Source] と [Optional Configuration Location] は空白のままにします。

  8. [Run] を選択します。

コマンドラインを使用して CloudWatch エージェントをローカルで停止するには

  • Linux サーバーで、次のように入力します。

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

    Windows Server を実行しているサーバーの場合、管理者として PowerShell で次のように入力します。

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a stop

エージェントを再起動するには、「CloudWatch エージェントの開始」の手順に従います。