CloudWatch エージェントのトラブルシューティング
以下の情報を参考にして、CloudWatch エージェントに関する問題のトラブルシューティングを行います。
トピック
- CloudWatch エージェントのコマンドラインパラメータ
- Run Command を使用した CloudWatch エージェントのインストールが失敗する
- CloudWatch エージェントが開始されない
- CloudWatch エージェントが実行されていることを確認する
- CloudWatch エージェントが起動せず、Amazon EC2 リージョンに関するエラーが発生する
- CloudWatch エージェントが Windows Server で開始されない
- Windows Server で認証情報が見つかりません
- メトリクスの場所
- エージェントの設定を更新しましたが、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 のバージョンが適切でない場合は、次のエラーメッセージが表示されることがあります。
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 エージェントのステータスのクエリを実行するには
-
Open the Systems Manager console at https://console.aws.amazon.com/systems-manager/
. -
In the navigation pane, choose Run Command.
-or-
If the AWS Systems Manager home page opens, scroll down and choose Explore 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 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 イベントログに記録される
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.toml
で shared_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 のロケーション |
---|---|---|
エージェントの起動、停止、再起動を制御する制御スクリプト。 |
|
|
エージェントが書き込むログファイル。AWS サポート に接続する場合は、このファイルをアタッチする必要があります。 |
|
|
エージェント妥当性確認検証ファイル。 |
|
|
ウィザードが作成した直後に、エージェントの設定に使用される JSON ファイル。詳細については、「CloudWatch エージェント設定ファイルを作成する」をご参照ください。 |
|
|
この設定ファイルが Parameter Store からダウンロードした場合に、エージェントの設定に使用される JSON ファイル。 |
|
|
エージェントで使用するリージョン情報と認証情報を指定するための TOML ファイル (システムのデフォルト値を上書きします)。 |
|
|
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://s3.amazonaws.com/amazoncloudwatch-agent/info/latest/RELEASE_NOTES
またはhttps://s3.
region
.amazonaws.com/amazoncloudwatch-agent-Region
/info/latest/RELEASE_NOTES -
https://s3.amazonaws.com/amazoncloudwatch-agent/info/latest/CWAGENT_VERSION
またはhttps://s3.
region
.amazonaws.com/amazoncloudwatch-agent-Region
/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 エージェント設定ファイルを手動で作成または編集する」をご参照ください。
CloudWatch エージェントを停止して再起動する
AWS Systems Manager またはコマンドラインを使用して CloudWatch エージェントを手動で停止できます。
Run Command を使用して CloudWatch エージェントを停止するには
-
Open the Systems Manager console at https://console.aws.amazon.com/systems-manager/
. -
In the navigation pane, choose Run Command.
-or-
If the AWS Systems Manager home page opens, scroll down and choose Explore Run Command.
-
[Run command (コマンドの実行)] を選択します。
-
[Command document] リストで、[AmazonCloudWatch-ManageAgent] を選択します。
-
[ターゲット] 領域で、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 エージェントの開始」の手順に従います。