

# CloudWatch エージェントのトラブルシューティング
<a name="troubleshooting-CloudWatch-Agent"></a>

 このセクションの情報を使用すると、CloudWatch エージェントで発生しうる問題をトラブルシューティングできます。

CloudWatch エージェントで問題が発生したときは、`AWSSupport-TroubleshootCloudWatchAgent` 自動化ランブックを使用できます。AWS トラブルシューティングツールでは、以下のことができます。
+ IAM アクセス許可およびインスタンスプロファイルを検証する
+ エージェントのステータスをチェックし、ログを分析する
+ エンドポイントの接続性をテストする
+ 関連するログを自動的に収集して Amazon S3 にアップロードする

AWS トラブルシューティングツールの詳細については、「[Support Automation Workflow (SAW) Runbook - Troubleshoot CloudWatch agent](https://repost.aws/articles/ARDFhNRgSMRcahrIbGJaIC4g/support-automation-workflow-saw-runbook-troubleshoot-amazon-cloudwatch-agent)」を参照してください。

**Topics**
+ [CloudWatch エージェントのコマンドラインパラメータ](#CloudWatch-Agent-options-help)
+ [Run Command を使用した CloudWatch エージェントのインストールが失敗する](#CloudWatch-Agent-installation-fails)
+ [CloudWatch エージェントが開始されない](#CloudWatch-Agent-troubleshooting-cannot-start)
+ [CloudWatch エージェントが実行されていることを確認する](#CloudWatch-Agent-troubleshooting-verify-running)
+ [CloudWatch エージェントが起動ぜず、Amazon EC2 リージョンに関するエラーが発生する](#CloudWatch-Agent-troubleshooting-EC2-region)
+ [CloudWatch エージェントが Windows Server で開始されない](#CloudWatch-Agent-troubleshooting-Windows-start)
+ [メトリクスの場所](#CloudWatch-Agent-troubleshooting-no-metrics)
+ [CloudWatch エージェントが、コンテナで実行に長い時間がかかる、またはホップ制限のエラーをログに記録する](#CloudWatch-Agent-container-slow)
+ [エージェントの設定を更新しましたが、CloudWatch コンソールに新しいメトリクスやログが表示されません](#CloudWatch-Agent-troubleshooting-update-no-new-metrics)
+ [CloudWatch エージェントファイルとロケーション](#CloudWatch-Agent-files-and-locations)
+ [CloudWatch エージェントのバージョンについての情報の検索](#CloudWatch-Agent-troubleshooting-agent-version)
+ [CloudWatch エージェントによって生成されたログ](#CloudWatch-Agent-troubleshooting-loginfo)
+ [CloudWatch エージェントの停止と再起動](#CloudWatch-Agent-troubleshooting-stopping-restarting)

## CloudWatch エージェントのコマンドラインパラメータ
<a name="CloudWatch-Agent-options-help"></a>

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

```
amazon-cloudwatch-agent-ctl -help
```

## Run Command を使用した CloudWatch エージェントのインストールが失敗する
<a name="CloudWatch-Agent-installation-fails"></a>

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 のインストールと設定](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)を参照してください。

## CloudWatch エージェントが開始されない
<a name="CloudWatch-Agent-troubleshooting-cannot-start"></a>

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 エージェントが実行されていることを確認する
<a name="CloudWatch-Agent-troubleshooting-verify-running"></a>

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

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

1. Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、[**Run Command**] を選択します。

   -または-

   AWS Systems Manager のホームページが表示された場合は、スクロールダウンして [**Explore Run Command**] (Run Command の詳細) を選択します。

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

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

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

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

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

1. [**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 リージョンに関するエラーが発生する
<a name="CloudWatch-Agent-troubleshooting-EC2-region"></a>

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

例えば、エージェントの設定ファイルで Amazon EC2 メタデータに依存する値を `append_dimensions` パラメータに指定し、プロキシー使用する場合は、そのサーバーが Amazon EC2 のエンドポイントにアクセスできることを確認する必要があります。これらのエンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の「[Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)」を参照してください。

## CloudWatch エージェントが Windows Server で開始されない
<a name="CloudWatch-Agent-troubleshooting-Windows-start"></a>

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 イベントログに記録される](https://support.microsoft.com/en-us/help/922918/a-service-does-not-start-and-events-7000-and-7011-are-logged-in-window)」を参照してください。

## メトリクスの場所
<a name="CloudWatch-Agent-troubleshooting-no-metrics"></a>

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

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

## CloudWatch エージェントが、コンテナで実行に長い時間がかかる、またはホップ制限のエラーをログに記録する
<a name="CloudWatch-Agent-container-slow"></a>

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 より前のバージョンのエージェントでは、ログメッセージが表示されることなくこの問題が発生する可能性があります。

これを解決するには、「[インスタンスメタデータオプションの設定](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#configuring-IMDS-existing-instances.)」の指示に従い、ホップ制限を 2 に増やします。

## エージェントの設定を更新しましたが、CloudWatch コンソールに新しいメトリクスやログが表示されません
<a name="CloudWatch-Agent-troubleshooting-update-no-new-metrics"></a>

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 エージェントファイルとロケーション
<a name="CloudWatch-Agent-files-and-locations"></a>

次の表は、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 エージェント設定ファイルを作成する](create-cloudwatch-agent-configuration-file.md)」を参照してください。 | `/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` | 
| JSON 設定ファイルの変換された内容を含む TOML ファイル。`amazon-cloudwatch-agent-ctl` スクリプトは、このファイルを生成します。このファイルは直接変更しないでください。JSON から TOML への変換が正常に完了したことを確認するのに役立ちます。 | `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml`、または `/etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.toml` | `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.toml` | 
| JSON 設定ファイルの変換された内容を含む YAML ファイル。`amazon-cloudwatch-agent-ctl` スクリプトは、このファイルを生成します。このファイルは直接変更しないでください。このファイルは、JSON から YAML への変換が正常に完了したことを確認するのに役立ちます。 | `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.yaml or /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.yaml` | `$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.yaml` | 

## CloudWatch エージェントのバージョンについての情報の検索
<a name="CloudWatch-Agent-troubleshooting-agent-version"></a>

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-{{us-east-1}}.s3.{{us-east-1}}.amazonaws.com/info/latest/RELEASE_NOTES`
+ `https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSION` 、、または `https://amazoncloudwatch-agent-{{us-east-1}}.s3.{{us-east-1}}.amazonaws.com/info/latest/CWAGENT_VERSION`

## CloudWatch エージェントによって生成されたログ
<a name="CloudWatch-Agent-troubleshooting-loginfo"></a>

エージェントは、実行されている間ログを生成します。このログには、トラブルシューティング情報が含まれています。このログは、`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-Agent-Configuration-File-Details.md)」を参照してください。

バージョン 1.247350.0 以降の CloudWatch エージェントでは、必要に応じて、エージェント設定ファイルの `agent` セクションの `aws_sdk_log_level` フィールドに、次のオプションの 1 つまたは複数を指定できます。複数のオプションは、`|` 文字で区切ります。
+ `LogDebug`
+ `LogDebugWithSigning`
+ `LogDebugWithHTTPBody`
+ `LogDebugRequestRetries`
+ `LogDebugWithEventStreamBody`

これらのオプションの詳細については、「[LogLevelType](https://docs.aws.amazon.com/sdk-for-go/api/aws/#LogLevelType)」を参照してください。

## CloudWatch エージェントの停止と再起動
<a name="CloudWatch-Agent-troubleshooting-stopping-restarting"></a>

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

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

1. Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、[**Run Command**] を選択します。

   -または-

   AWS Systems Manager のホームページが表示された場合は、スクロールダウンして [**Explore Run Command**] (Run Command の詳細) を選択します。

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

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

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

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

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

1. [**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 エージェントの一般的な設定と名前付きプロファイルを変更する](installing-cloudwatch-agent-ssm.md#CloudWatch-Agent-profile-instance-fleet)」の手順に従います。