統合 CloudWatch エージェントがログイベントをプッシュしないのはなぜですか?

所要時間2分
0

統合 CloudWatch エージェントを使用して Amazon CloudWatch Logs にログをプッシュしているのですが、CloudWatch Logs コンソールにログが表示されません。統合 CloudWatch エージェントがログイベントをプッシュしないのはなぜですか?

簡単な説明

次の問題により、統合 CloudWatch エージェントがログイベントをプッシュできない可能性があります。

  • CloudWatch エージェントのインストール後に Amazon マシンイメージ (AMI) を作成したために発生する非同期メタデータ
  • 古いバージョンの CloudWatch エージェントを使用している
  • CloudWatch Logs エンドポイントに接続できない
  • アカウント、リージョン、またはロググループの設定が正しくない
  • AWS Identity and Access Management (IAM) のアクセス許可が不十分
  • CloudWatch エージェントの実行エラー
  • タイムスタンプの問題

解決方法

注意: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

重要: 次のトラブルシューティング手順は Container Insights には適用されません。Container Insights のトラブルシューティングの詳細については、Container Insights のトラブルシューティングAmazon EKS でポッドのステータスをトラブルシューティングする方法を教えてくださいを参照してください。

CloudWatch エージェントのインストール方法を確認する

AWS CloudFormation、AWS Systems Manager Agent (SSM Agent)、ユーザーデータスクリプト、または AWS CLI を使用して、起動時に CloudWatch エージェントをインストールすることがベストプラクティスです。CloudWatch エージェントをインストールする前に AMI を作成することもベストプラクティスです。AMI は通常、元のインスタンスから一意の情報を取得します。メタデータが同期しなくなり、この状態により CloudWatch エージェントが意図したとおりに動作しなくなる可能性があります。非同期メタデータは、AMI で作業するときに多くの Windows インスタンスが Sysprep を必要とする理由です。詳細については、「Amazon EC2 で再利用可能なカスタム Windows AMI を作成してインストールするために Sysprep を使用するにはどうすればよいですか?」を参照してください。

最新バージョンの CloudWatch エージェントを使用していることを確認する

CloudWatch エージェントのリリースノートと最新バージョン番号の README ファイルをダウンロードして確認します。古いバージョンの CloudWatch エージェントを使用している場合は、必ずアップグレードしてください。最新バージョンには、発生している問題を解決するアップデートが含まれている場合があります。

CloudWatch Logs エンドポイントへの接続をテストする

次のいずれかのコマンドを使用して、CloudWatch Logs エンドポイントへの接続をテストします。

telnet logs.<region>.amazonaws.com 443
nc -zv logs.<region>.amazonaws.com 443

接続障害が発生した場合は、以下を確認してください。

  • セキュリティグループとネットワークアクセスコントロールリスト (ACL) ルールで接続を許可する
  • インスタンスは、インターネットゲートウェイまたはネットワークアドレス変換 (NAT) ゲートウェイを使用して、パブリックエンドポイントに到達できる
  • VPC エンドポイントを使用している場合、エンドポイントは VPC IP に解決され、エンドポイントセキュリティグループはソースインスタンスからのアクセスを許可している

アカウント、リージョン、およびロググループの設定を確認する

CloudWatch エージェント設定ファイルで、以下の操作を行います。

  • 指定されたリージョンがコンソールのリージョンと一致することを確認する
  • ログが正しいアカウントでチェックされていることを確認する

オプションで、common-config.toml ファイルを使用して、CloudWatch エージェントのシステムデフォルトを上書きできます。これらのシステムデフォルトには、エージェントのプロキシ、リージョン、および認証情報が含まれます。ファイルは次の場所にあります。

Linux の場合:

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

Windows の場合:

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

IAM アクセス許可を確認する

CloudWatch エージェントは、IAM ユーザーまたは IAM ロールポリシーからの認証情報を使用して、ログイベントを CloudWatch サービスにプッシュします。ログイベントを発行する前に、ロググループとログストリームを作成する必要があります。ロググループまたはログストリームがない場合、CloudWatch エージェントがそれらを作成します。

ポリシーに以下の IAM アクセス許可が含まれていることを確認します。

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

欠落している IAM アクセス許可をユーザーポリシーまたはロールポリシーに追加します。

注: IAM ロールとユーザーを作成する場合、カスタムポリシーではなく、Amazon が作成した CloudWatchAgentServerPolicyCloudWatchAgentAdminPolicy ポリシーを使用することがベストプラクティスです。

CloudWatch エージェントの実行エラーを解決する

CloudWatch エージェントが実行されていることを確認します。エージェントが実行されていない場合は、ログファイルでエラーを確認し、解決します。ログファイルは次の場所にあります。

Linux の場合:

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows の場合:

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

注: ログは、カスタムログファイルの場所で指定される場合があります。エージェント設定ファイルを確認して、カスタムログの場所を特定します。

エージェント設定ファイルで、debug パラメータを使用して詳細なデバッグログ記録を有効にします。run_as_user パラメータを使用している場合は、ユーザーがログの場所のパスに対するアクセス許可を持っていることを確認します。必要なアクセス許可がないと、CloudWatch エージェントはその場所にログを書き込むことができません。

タイムスタンプの問題を解決する

ログイベントのタイムスタンプが 14 日を経過しているか、または今後 2 時間を超える時間が経過した後の時点になっているかを確認します。PutLogEvents コマンドは、どちらの時間枠でもログバッチを許可しません。

また、インスタンスのシステムタイムサービスが正しく設定されていることを確認します。詳細については、「Linux インスタンスの時間を設定する」 または「Windows インスタンスの時間を設定する」を参照してください。


関連情報

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

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ