문제
온호스트 ECS 통합을 설치하고 몇 분을 기다렸지만 클러스터가 엔티티 목록 에 표시되지 않습니다.
중요
클라우드 기반 통합 과 호스트 내 통합이라는 두 가지 ECS 통합이 있습니다. 이 문서는 호스트 통합에 관한 것입니다.
해결책
이전에 인프라 에이전트 또는 인프라 온호스트 통합을 설치한 경우 데이터가 몇 분 내에 UI 에 표시되어야 합니다.
온호스트 ECS 통합을 설치하기 전에 이전에 이러한 작업을 수행하지 않은 경우 데이터가 UI에 표시되는 데 수십 분이 걸릴 수 있습니다. 이 경우 다음 문제 해결 단계를 수행하거나 지원팀에 문의하기 전에 최대 1시간을 기다리는 것이 좋습니다.
데이터가 표시되지 않는 문제를 해결하기 위한 몇 가지 옵션이 있습니다.
- awscli 도구를 통한 문제 해결 (New Relic 기술 지원에 문의할 때 권장)
- UI를 통한 문제 해결
중지된 작업에 대한 정보는 중지된 작업 이유 를 참조하십시오.
awscli를 통한 문제 해결
New Relic 지원팀과 상호 작용할 때 이 방법을 사용하고 지원 요청과 함께 생성된 파일을 보냅니다.
newrelic-infra
사이드카가 있는 작업이 포함된newrelic-infra
서비스 또는 Fargate 서비스와 관련된 정보를 검색합니다.bash$aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service newrelic-infra > newrelic-infra-service.jsonbash$aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service YOUR_FARGATE_SERVICE_WITH_NEW_RELIC_SIDECAR > newrelic-infra-sidecar-service.jsonfailures
속성은 서비스에 대한 모든 오류를 자세히 설명합니다.services
아래에는status
속성이 있습니다. 서비스에 문제가 없으면ACTIVE
라고 표시됩니다.desiredCount
은runningCount
과(와) 일치해야 합니다. 서비스가 처리하는 작업의 수입니다. 데몬 서비스 유형을 사용하기 때문에 클러스터의 컨테이너 인스턴스당 하나의 작업이 있어야 합니다. 모든 작업이 실행 중이어야 하므로pendingCount
속성은 0이어야 합니다.services
의events
속성을 검사하여 작업을 예약하거나 시작하는 데 문제가 있는지 확인합니다. 예: 서비스가 작업을 성공적으로 시작할 수 없는 경우 다음과 같은 메시지가 표시됩니다.{"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."}같은 섹션에서 이벤트에서 서비스에 의해 시작된 작업도 확인할 수 있습니다.
{"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)."}다음 명령을 사용하여 작업과 관련된 정보를 검색합니다.
bash$aws ecs describe-tasks --tasks YOUR_TASK_ID --cluster YOUR_CLUSTER_NAME > newrelic-infra-task.jsondesiredStatus
및lastStatus
은RUNNING
}여야 합니다. 작업을 정상적으로 시작할 수 없으면STOPPED
상태가 됩니다.stopCode
및stoppedReason
을(를) 검사합니다. 한 가지 이유 예: 작업 실행 역할에 라이선스 키가 포함된 비밀을 다운로드할 수 있는 적절한 권한이 없기 때문에 시작할 수 없는 작업의 출력은 다음과 같습니다."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",작업이 실행 중이지만 여전히 데이터가 표시되지 않는 경우 자세한 로그 를 생성하고 오류가 있는지 검사합니다.
작업이 중지된 이유에 대한 자세한 내용은 중지 된 작업 을 참조하십시오.
UI에서 문제 해결
UI를 사용하여 문제를 해결하려면:
AWS 콘솔에 로그인하고 EC2 Container Service 섹션으로 이동합니다.
New Relic ECS 통합을 설치한 클러스터를 클릭합니다.
Services
탭에서 필터를 사용하여 통합 서비스를 검색합니다. 자동 설치 스크립트를 사용한 경우 서비스 이름은
newrelic-infra
입니다. Fargate를 사용하는 경우 모니터링되는 서비스의 이름이 됩니다. 찾으면 이름을 클릭하세요.서비스 페이지에는 서비스의
Status
가 표시됩니다. 서비스에 문제가 없으면
ACTIVE
이라고 표시됩니다.같은 페이지에서
Desired
개수는
Running
개수와 일치해야 합니다. 이는 서비스가 처리하는 작업 수입니다. 데몬 서비스 유형을 사용하기 때문에 클러스터의 컨테이너 인스턴스당 하나의 작업이 있어야 합니다. 모든 작업이 실행 중이어야 하므로 보류 중인 개수는 0이어야 합니다.
작업 예약 또는 시작에 문제가 있는지 확인하려면
Events
탭을 검사하세요.
서비스의
Tasks
탭에서
Task status
선택기를 클릭하여 실행 중인 작업과 중지된 작업을 검사할 수 있습니다.
Stopped
상태를 선택하면 시작하지 못한 컨테이너가 표시됩니다.
작업을 클릭하면 작업 세부정보 페이지로 이동합니다.
Stopped reason
아래에는 작업이 중지된 이유를 설명하는 메시지가 표시됩니다.
작업이 실행 중이지만 여전히 데이터가 표시되지 않는 경우 자세한 로그 를 생성하고 오류가 있는지 검사합니다.
작업이 중지된 이유에 대한 자세한 내용은 중지 된 작업 을 참조하십시오.
작업이 중지된 이유
AWS ECS 문제 해결 설명서 에서 작업 및 서비스 실행과 관련된 오류의 일반적인 원인에 대한 정보를 찾을 수 있습니다. 작업이 중지된 몇 가지 이유에 대한 자세한 내용은 아래를 참조하십시오.
Task stopped with reason:
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
에 사용된 보안 비밀에 액세스할 수 없습니다. 실행 역할에는 보안 암호를 읽을 수 있는 액세스 권한을 부여하는 정책이 연결되어 있어야 합니다.
작업의 실행 역할을 가져옵니다.
bash$aws ecs describe-task-definition --task-definition newrelic-infra --output text --query taskDefinition.executionRoleArn--task-definition newrelic-infra
을 사이드카 컨테이너를 포함하는 Fargate 작업의 이름으로 바꿀 수 있습니다.bash$aws ecs describe-task-definition --task-definition YOUR_FARGATE_TASK_NAME --output text --query taskDefinition.executionRoleArn역할에 연결된 정책 나열:
bash$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"}]}기본 정책 버전을 검색합니다.
bash$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를 사용하여 을 저장한 경우 Action
secretsmanager:GetSecretValue
에 대한 항목이 있어야 하고, AWS Systems Manager를 사용하여 저장소를 사용한 경우에는ssm:GetParameters
에 대한 항목이 있어야 합니다.