CloudWatch エージェントのトラブルシューティング
このセクションの情報を使用すると、CloudWatch エージェントで発生しうる問題をトラブルシューティングできます。
トピック
- CloudWatch エージェントのコマンドラインパラメータ
- Run Command を使用した CloudWatch エージェントのインストールが失敗する
- CloudWatch エージェントが開始されない
- CloudWatch エージェントが実行されていることを確認する
- CloudWatch エージェントが起動ぜず、Amazon EC2 リージョンに関するエラーが発生する
- CloudWatch エージェントが Windows Server で開始されない
- メトリクスの場所
- CloudWatch エージェントが、コンテナで実行に長い時間がかかる、またはホップ制限のエラーをログに記録する
- エージェントの設定を更新しましたが、CloudWatch コンソールに新しいメトリクスやログが表示されません
- CloudWatch エージェントファイルとロケーション
- 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 エージェントである必要があります。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 エージェントのステータスをクエリするには
Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
) を開きます。 ナビゲーションペインで、[Run Command] を選択します。
-または-
AWS Systems Manager のホームページが表示された場合は、スクロールダウンして [Explore Run Command] (Run Command の詳細) を選択します。
-
[Run command (コマンドの実行)] を選択します。
-
[コマンドドキュメント] リストで、[AmazonCloudWatch-ManageAgent] の横のボタンをクリックします。
-
[Action] リストで、[status] を選択します。
-
[オプションの設定ソース] で [デフォルト] を選択し、[オプションの設定場所] を空白のままにします。
-
[Target] 領域で、確認するインスタンスを選択します。
-
[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 Web Services 全般のリファレンス」の「Amazon Elastic Compute Cloud (Amazon EC2)」を参照してください。
CloudWatch エージェントが Windows Server で開始されない
Windows Server では、次のエラーが表示されることがあります。
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
これを修正するには、まずサーバーサービスが実行中であることを確認します。このエラーは、サーバーサービスが実行されていないときにエージェントが起動しようとした場合に表示されます。
サーバーサービスがすでに実行されている場合は、以下の点が問題である可能性があります。一部の Windows Server インストールでは、CloudWatch エージェントの起動に 30 秒以上かかります。Windows Server では、サービスの起動に許容されるデフォルトの時間が 30 秒のみであるため、エージェントが失敗して次のようなエラーが表示される場合があります。
この問題を修正するには、サービスのタイムアウト値を増やします。詳細については、「サービスが開始されず、イベント 7000 および 7011 が Windows イベントログに記録される
メトリクスの場所
CloudWatch エージェントが実行されているが、そのエージェントによって収集されたメトリクスが AWS Management Console または AWS CLI で見つからない場合、適切な名前空間を使用していることを確認します。エージェントによって収集されるメトリクスの名前空間は、デフォルトでは CWAgent
です。この名前空間は、エージェント設定ファイルの [namespace
] セクションの [metrics
] フィールドを使用してカスタマイズできます。予想されるメトリクスが表示されない場合、設定ファイルで、使用している名前空間を確認してください。
CloudWatch エージェントパッケージを初めてダウンロードした場合、エージェント設定ファイルは amazon-cloudwatch-agent.json
です。このファイルは、設定ウィザードを実行したディレクトリにあります。または、別のディレクトリに自分で移動した可能性があります。設定ウィザードを使用した場合は、ウィザードからのエージェント設定ファイル出力の名前は config.json
です。namespace
フィールドなど、設定ファイルの詳細については、「 CloudWatch エージェント設定ファイル: Metrics セクション」を参照してください。
CloudWatch エージェントが、コンテナで実行に長い時間がかかる、またはホップ制限のエラーをログに記録する
CloudWatch エージェントをコンテナサービスとして実行し、エージェントによって収集されたすべてのメトリクスに Amazon EC2 メトリクスのディメンションを追加する場合、エージェントのバージョン v1.247354.0 で次のエラーが表示されることがあります。
2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Unable to retrieve Instance Metadata Tags. This plugin must only be used on an EC2 instance. 2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Please increase hop limit to 2 by following this document https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#configuring-IMDS-existing-instances. 2022-06-07T03:36:11Z E! [telegraf] Error running agent: could not initialize processor ec2tagger: EC2MetadataRequestError: failed to get EC2 instance identity document caused by: EC2MetadataError: failed to make EC2Metadata request status code: 401, request id: caused by:
このエラーは、エージェントが適切なホップ制限なしでコンテナ内の IMDSv2 からメタデータを取得しようとした場合に表示されることがあります。v1.247354.0 より前のバージョンのエージェントでは、ログメッセージが表示されることなくこの問題が発生する可能性があります。
これを解決するには、「インスタンスメタデータオプションの設定」の指示に従い、ホップ制限を 2 に増やします。
エージェントの設定を更新しましたが、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 のロケーション |
---|---|---|
エージェントの起動、停止、再起動を制御する制御スクリプト。 |
|
|
エージェントが書き込むログファイル。AWS Support に問い合わせる際は、このファイルを添付する必要があります。 |
|
|
エージェント妥当性確認検証ファイル。 |
|
|
ウィザードが作成した直後に、エージェントの設定に使用される JSON ファイル。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。 |
|
|
この設定ファイルが Parameter Store からダウンロードした場合に、エージェントの設定に使用される JSON ファイル。 |
|
|
エージェントで使用するリージョン情報と認証情報を指定するための TOML ファイル (システムのデフォルト値を上書きします)。 |
|
|
JSON 設定ファイルの変換された内容を含む TOML ファイル。 |
|
|
JSON 設定ファイルの変換された内容を含む YAML ファイル。 |
|
|
CloudWatch エージェントのバージョンについての情報の検索
Linux サーバー上の CloudWatch エージェントのバージョン番号を検索するには、次のコマンドを入力します。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
Windows Server 上の CloudWatch エージェントのバージョン番号を検索するには、次のコマンドを入力します。
& $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a status
注記
このコマンドを使用することは、CloudWatch エージェントのバージョンを検索する正しい方法です。コントロールパネルの [Programs and Features (プログラムと機能)] を使用すると、誤ったバージョン番号が表示されます。
エージェントに対する最新の変更に関する README ファイル、およびダウンロード可能なバージョン番号を示すファイルをダウンロードすることもできます。これらのファイルは次の場所にあります。
-
https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/RELEASE_NOTES
、、またはhttps://amazoncloudwatch-agent-
region
.s3.region
.amazonaws.com/info/latest/RELEASE_NOTES -
https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSION
、、またはhttps://amazoncloudwatch-agent-
region
.s3.region
.amazonaws.com/info/latest/CWAGENT_VERSION
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 エージェント設定ファイルを手動で作成または編集する を参照してください)。
バージョン 1.247350.0 以降の CloudWatch エージェントでは、必要に応じて、エージェント設定ファイルの agent
セクションの aws_sdk_log_level
フィールドに、次のオプションの 1 つまたは複数を指定できます。複数のオプションは、|
文字で区切ります。
LogDebug
LogDebugWithSigning
LogDebugWithHTTPBody
LogDebugRequestRetries
LogDebugWithEventStreamBody
これらのオプションの詳細については、「LogLevelType」を参照してください。
CloudWatch エージェントの停止と再起動
AWS Systems Manager またはコマンドラインを使用して CloudWatch エージェントを手動で停止できます。
Run Command を使用して CloudWatch エージェントを停止するには
Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
) を開きます。 ナビゲーションペインで、[Run Command] を選択します。
-または-
AWS Systems Manager のホームページが表示された場合は、スクロールダウンして [Explore Run Command] (Run Command の詳細) を選択します。
-
[Run command (コマンドの実行)] を選択します。
-
[Command document] リストで、[AmazonCloudWatch-ManageAgent] を選択します。
-
[Targets] 領域で、CloudWatch エージェントをインストールしたインスタンスを選択します。
-
[Action] リストで、[stop] を選択します。
-
[Optional Configuration Source] と [Optional Configuration Location] は空白のままにします。
-
[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 エージェントの一般的な設定と名前付きプロファイルを変更する」の手順に従います。