• 로그인지금 시작하세요

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

ECS 통합 문제 해결: 데이터가 표시되지 않음

문제

온호스트 ECS 통합을 설치하고 몇 분을 기다렸지만 클러스터가 탐색기에 표시되지 않습니다.

중요

클라우드 기반 통합 과 호스트 내 통합이라는 두 가지 ECS 통합이 있습니다. 이 문서는 호스트 통합에 관한 것입니다.

해결책

New Relic 계정이 이전에 인프라 에이전트 또는 인프라 온-호스트 통합을 설치한 경우 데이터가 몇 분 이내에 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 과(와) 일치해야 합니다. 서비스가 처리하는 작업의 수입니다. 데몬 서비스 유형을 사용하기 때문에 클러스터의 컨테이너 인스턴스당 하나의 작업이 있어야 합니다. 모든 작업이 실행 중이어야 하므로 pendingCount 속성은 0이어야 합니다.

  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 을(를) 검사합니다. 한 가지 이유 예: 작업 실행 역할에 라이선스 키가 포함된 비밀을 다운로드할 수 있는 적절한 권한이 없기 때문에 시작할 수 없는 작업의 출력은 다음과 같습니다.

    "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. 작업이 실행 중이지만 여전히 데이터가 표시되지 않는 경우 자세한 로그 를 생성하고 오류가 있는지 검사합니다.

작업이 중지된 이유에 대한 자세한 내용은 중지 된 작업 을 참조하십시오.

UI에서 문제 해결

UI를 사용하여 문제를 해결하려면:

  1. AWS 콘솔에 로그인하고 EC2 Container Service 섹션으로 이동합니다.
  2. New Relic ECS 통합을 설치한 클러스터를 클릭합니다.
  3. 서비스 탭에서 필터를 사용하여 통합 서비스를 검색하십시오. 자동 설치 스크립트를 사용한 경우 서비스 이름은 newrelic-infra 입니다. Fargate를 사용하는 경우 모니터링되는 서비스의 이름이 됩니다. 찾으면 이름을 클릭하십시오.
  4. 서비스 페이지는 서비스의 상태 를 보여줍니다. 서비스에 문제가 없으면 ACTIVE 이라고 표시됩니다.
  5. 같은 페이지에서 Desired count는 Running count와 일치해야 합니다. 서비스가 처리하는 작업의 수입니다. 데몬 서비스 유형을 사용하기 때문에 클러스터의 컨테이너 인스턴스당 하나의 작업이 있어야 합니다. 모든 작업이 실행 중이어야 하므로 보류 횟수는 0이어야 합니다.
  6. 이벤트 탭을 검사하여 작업 예약 또는 시작과 관련된 문제를 확인합니다.
  7. 서비스의 작업 탭에서 작업 상태 선택기를 클릭하여 실행 중인 작업과 중지된 작업을 검사할 수 있습니다. 중지됨 상태를 선택하면 시작에 실패한 컨테이너가 표시됩니다.
  8. 작업을 클릭하면 작업 세부 정보 페이지로 이동합니다. 중지 된 이유 아래에 작업이 중지된 이유를 설명하는 메시지가 표시됩니다.
  9. 작업이 실행 중이지만 여전히 데이터가 표시되지 않는 경우 자세한 로그 를 생성하고 오류가 있는지 검사합니다.

작업이 중지된 이유에 대한 자세한 내용은 중지 된 작업 을 참조하십시오.

작업이 중지된 이유

AWS ECS 문제 해결 설명서 에서 작업 및 서비스 실행과 관련된 오류의 일반적인 원인에 대한 정보를 찾을 수 있습니다. 작업이 중지된 몇 가지 이유에 대한 자세한 내용은 아래를 참조하십시오.

다음과 같은 이유로 작업이 중지되었습니다.

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개의 정책 AmazonECSTaskExecutionRolePolicy , AmazonEC2ContainerServiceforEC2Role 및 라이선스 키에 대한 읽기 액세스 권한을 부여해야 하는 세 번째 정책을 반환해야 합니다. 다음 예에서 정책의 이름은 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)

    그러면 정책 권한이 검색됩니다. AWS Secrets Manager를 사용하여 라이선스 키를 저장한 경우 작업 secretsmanager:GetSecretValue 에 대한 항목이 있어야 하고 AWS Systems Manager Parameter Store를 사용하는 경우 ssm:GetParameters 에 대한 항목이 있어야 합니다.

Copyright © 2022 New Relic Inc.

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