• English日本語한국어
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、こちらのページをご覧ください。

問題を作成する

ECSインテグレーションのトラブルシューティングデータが表示されない

問題

オンホスト ECS 統合を インストールして数分間待機しましたが、クラスターが エンティティ リストに表示されません。

重要

ECS 統合には、 クラウドベースの統合 とオンホスト統合の 2 つがあります。このドキュメントはオンホスト統合について説明しています。

解決

以前にインフラストラクチャ エージェントまたはインフラストラクチャ オンホスト統合をインストールしていた場合は、数分以内にデータが UI に表示されるはずです。

オンホスト ECS 統合をインストールする前にこれらの作業を行っていない場合は、データが UI に表示されるまでに数十分かかる場合があります。その場合は、最大 1 時間待ってから、次のトラブルシューティング手順を実行するか、サポートに連絡することをお勧めします。

データが表示されない場合のトラブルシューティングにはいくつかの方法があります。

停止したタスクについての情報は、 停止したタスクの理由 を参照してください。

awscliによるトラブルシューティング

New Relic のサポートとやりとりする際には、この方法を使用し、生成されたファイルをサポートリクエストと一緒に送信してください。

  1. newrelic-infraサイドカーを持つタスクを含むnewrelic-infraサービスまたは Fargate サービスに関連する情報を取得します。

    aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service newrelic-infra > newrelic-infra-service.json
    aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service YOUR_FARGATE_SERVICE_WITH_NEW_RELIC_SIDECAR > newrelic-infra-sidecar-service.json
  2. failures属性は、サービスのエラーの詳細を示します。

  3. servicesの下にはstatus属性があります。サービスに問題がない場合はACTIVEと表示されます。

  4. desiredCountrunningCountと一致する必要があります。これは、サービスが処理しているタスクの数です。デーモン サービス タイプを使用するため、クラスター内のコンテナー インスタンスごとに 1 つのタスクが必要です。すべてのタスクが実行されている必要があるため、 pendingCount属性はゼロにする必要があります。

  5. servicesevents属性を調べて、タスクのスケジュールまたは開始に関する問題を確認してください。例: サービスがタスクを正常に開始できない場合、次のようなメッセージが表示されます。

    {
    "id": "5295a13c-34e6-41e1-96dd-8364c42cc7a9",
    "createdAt": "2020-04-06T15:28:18.298000+02:00",
    "message": "(service newrelic-ifnra) is unable to consistently start tasks successfully. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide."
    }
  6. 同じセクションでは、イベントからサービスがどのタスクを開始したかを確認することもできます。

    {
    "id": "1c0a6ce2-de2e-49b2-b0ac-6458a804d0f0",
    "createdAt": "2020-04-06T15:27:49.614000+02:00",
    "message": "(service fargate-fail) has started 1 tasks: (task YOUR_TASK_ID)."
    }
  7. このコマンドで、タスクに関連する情報を取得します。

    aws ecs describe-tasks --tasks YOUR_TASK_ID --cluster YOUR_CLUSTER_NAME > newrelic-infra-task.json
  8. desiredStatuslastStatusRUNNINGである必要があります。タスクが正常に開始できなかった場合、ステータスはSTOPPEDになります。

  9. stopCodestoppedReasonを調べます。1 つの理由の例: タスク実行ロールに、ライセンス キーを含むシークレットをダウンロードするための適切なアクセス許可がないために開始できなかったタスクの出力は、次のようになります。

    "stopCode": "TaskFailedToStart",
    "stoppedAt": "2020-04-06T15:28:54.725000+02:00",
    "stoppedReason": "Fetching secret data from AWS Secrets Manager in region YOUR_AWS_REGION: secret arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:NewRelicLicenseKeySecret-Dh2dLkgV8VyJ-80RAHS-fail: AccessDeniedException: User: arn:aws:sts::YOUR_AWS_ACCOUNT:assumed-role/NewRelicECSIntegration-Ne-NewRelicECSTaskExecution-1C0ODHVT4HDNT/8637b461f0f94d649e9247e2f14c3803 is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:NewRelicLicenseKeySecret-Dh2dLkgV8VyJ-80RAHS-fail-DmLHfs status code: 400, request id: 9cf1881e-14d7-4257-b4a8-be9b56e09e3c",
    "stoppingAt": "2020-04-06T15:28:10.953000+02:00",
  10. タスクが実行されているにもかかわらずデータが表示されない場合は、 verbose log を生成し、エラーがないか調べてください。

停止したタスクの理由の詳細については、 停止したタスク を参照してください。

UIでのトラブルシューティング

UIを使ってトラブルシューティングするには

  1. AWSコンソールにログインし、「EC2 Container Service」セクションに移動します。
  2. New Relic ECS インテグレーションをインストールしたクラスタをクリックします。
  3. [サービス] タブで、フィルターを使用して統合サービスを検索します。自動インストール スクリプトを使用した場合、サービスの名前はnewrelic-infraになります。Fargate を使用している場合は、監視対象サービスの名前になります。見つかったら、名前をクリックします。
  4. サービス ページには、サービスのステータスが表示されます。サービスに問題がない場合はACTIVEと表示されます。
  5. 同じページで、「 Desired 」のカウントは、「 Running 」のカウントと一致している必要があります。これは、サービスが処理しているタスクの数です。ここではデーモンサービスタイプを使用しているため、クラスタ内のコンテナインスタンスごとに1つのタスクが存在するはずです。すべてのタスクが実行されている必要があるため、Pending countは0でなければなりません。
  6. Events タブを検査して、タスクのスケジューリングや開始に問題がないか確認します。
  7. サービスの Tasks タブで、 Task status セレクタをクリックすると、実行中のタスクと停止中のタスクを調べることができます。起動に失敗したコンテナは、 Stopped ステータスを選択すると表示されます。
  8. タスクをクリックすると、タスクの詳細ページが表示されます。 Stopped reason の下に、タスクが停止した理由を説明するメッセージが表示されます。
  9. タスクが実行されているにもかかわらずデータが表示されない場合は、 verbose log を生成し、エラーがないか調べてください。

停止したタスクの理由の詳細については、 停止したタスク を参照してください。

停止したタスクの理由

AWS ECS troubleshooting documentation には、実行中のタスクやサービスに関するエラーの一般的な原因に関する情報が掲載されています。タスクが停止するいくつかの理由については、以下を参照してください。

タスクは理性で止まっている。

Fetching secret data from AWS Secrets Manager
in region YOUR_AWS_REGION:
secret arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:YOUR_SECRET_NAME:
AccessDeniedException: User: arn:aws:sts::YOUR_AWS_ACCOUNT:assumed-role/YOUR_ROLE_NAME
is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:YOUR_SECRET_NAME
status code: 400, request id: 9cf1881e-14d7-4257-b4a8-be9b56e09e3c"

これは、タスク定義でexecutionRoleArnを使用して指定された IAM ロールが、 NRIA_LICENSE_KEYに使用されるシークレットにアクセスできないことを意味します。実行ロールには、シークレットを読み取るためのアクセス権を付与するポリシーがアタッチされている必要があります。

  1. タスクの実行ロールを取得します。

    aws ecs describe-task-definition --task-definition newrelic-infra --output text --query taskDefinition.executionRoleArn

    --task-definition newrelic-infraを、サイドカー コンテナーを含む fargate タスクの名前に置き換えることができます。

    aws ecs describe-task-definition --task-definition YOUR_FARGATE_TASK_NAME --output text --query taskDefinition.executionRoleArn
  2. ロールに付随するポリシーを一覧表示します。

    aws iam list-attached-role-policies --role-name YOUR_EXECUTION_ROLE_NAME

    これにより、3 つのポリシーAmazonECSTaskExecutionRolePolicyAmazonEC2ContainerServiceforEC2Roleと、 . 次の例では、ポリシーの名前はNewRelicLicenseKeySecretReadAccessです。

    {
    "AttachedPolicies": [
    {
    "PolicyName": "AmazonECSTaskExecutionRolePolicy",
    "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
    },
    {
    "PolicyName": "AmazonEC2ContainerServiceforEC2Role",
    "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role"
    },
    {
    "PolicyName": "YOUR_POLICY_NAME",
    "PolicyArn": "arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME"
    }
    ]
    }
  3. デフォルトのポリシーバージョンを取得します。

    aws iam get-policy-version --policy-arn arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME --version-id $(aws iam get-policy --policy-arn arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME --output text --query Policy.DefaultVersionId)

    これにより、ポリシーのアクセス許可が取得されます。secretsmanager:GetSecretValue Secrets Manager を使用して 、または AWS Systems Manager Parameter Store を使用した場合はssm:GetParametersのエントリ:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.