• 로그인지금 시작하기

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

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

문제 신고

ECS 통합 문제 해결: 자세한 로그 생성

문제

온호스트 ECS 통합 문제를 해결할 때 오류를 찾고 조사하기 위해 몇 분 동안 자세한 로그를 생성할 수 있습니다. 이것은 자체 문제 해결을 수행하거나 New Relic 지원 에 정보를 제공할 때 유용할 수 있습니다.

자세한 로깅은 많은 데이터를 매우 빠르게 생성합니다. 로그 생성이 완료되면 디스크 공간 소비를 줄이기 위해 verbose: 0 을 설정해야 합니다.

newrelic-infra-ctl 명령을 사용하여 이 프로세스를 자동화할 수 있습니다. 자세한 내용 은 실행 중인 에이전트 문제 해결 을 참조하십시오.

해결책

자세한 로그 파일을 생성하려면 작업 정의 파일을 편집해야 합니다. 적용 가능한 모든 설정이 포함된 샘플 구성 파일은 인프라 구성 설정 을 참조하십시오.

자세한 로그를 구현하기 위한 몇 가지 옵션이 있습니다.

작업 정의 환경 변수 사용

환경 변수를 변경하고 작업을 다시 시작하여 자세한 로그를 활성화하려면:

  1. 작업 정의를 편집합니다. NRIA_VERBOSE 값을 0 에서 다음으로 변경합니다.

    • 1 상시 작동 상세 로그의 경우
    • 2 스마트 로깅을 위해
    • 3 New Relic으로 보내기 위해

    이러한 옵션에 대해 자세히 알아보십시오.

  2. 작업 정의를 저장합니다.

  3. 새로 등록된 작업 정의를 사용하도록 서비스를 업데이트하십시오.

  4. NRIA_VERBOSE=3 을 선택하고 New Relic에 직접 로그를 보내지 않는 경우 로그를 보고 다운로드하는 두 가지 옵션이 있습니다.

  5. 설정을 기본값으로 되돌립니다.

    1. 작업 정의를 편집하고 NRIA_VERBOSE0 로 설정하여 자세한 로깅을 비활성화합니다.
    2. 작업 정의를 저장합니다.
    3. 서비스를 작업의 최신 버전으로 업데이트합니다.
  6. 로그 파일에 오류가 있는지 검사하십시오.

  7. 로그 파일을 New Relic 지원팀 에 보내야 하는 경우:

    1. ECS 통합 버전이 포함된 다음 행을 로그 파일에 포함합니다.

      New Relic ECS integration version X.YY.ZZZ
    2. 작업 정의 .yml 파일과 함께 로그 파일을 지원 티켓에 첨부합니다.

SSH를 통해 로그 검색(EC2 시작 유형만 해당)

SSH를 통해 로그를 얻으려면:

  1. 작업 정의를 편집합니다. NRIA_VERBOSE 값을 0 에서 다음으로 변경합니다.

    • 1 상시 작동 상세 로그의 경우
    • 2 스마트 로깅을 위해
    • 3 New Relic으로 보내기 위해

    이러한 옵션에 대해 자세히 알아보십시오.

  2. 컨테이너 인스턴스 중 하나에 SSH로 연결합니다.

  3. docker ps -a 명령을 실행하여 New Relic 통합 컨테이너의 컨테이너 ID를 찾습니다. 컨테이너의 이름은 nri-ecs 이어야 합니다.

  4. docker logs NRI_ECS_CONTAINER_ID > logs.txt 명령을 사용하여 컨테이너의 로그를 저장합니다. 충분한 로깅 데이터를 생성하려면 약 3분 동안 명령을 실행한 상태로 두십시오.

  5. 자세한 로그 활성화 섹션의 지침을 계속 진행합니다.

CloudWatch에 로그를 전달하고 awscli를 사용하여 다운로드

CloudWatch를 통해 로그를 가져오려면:

  1. 작업 정의를 편집합니다. NRIA_VERBOSE 값을 0 에서 다음으로 변경합니다.

    • 1 상시 작동 상세 로그의 경우
    • 2 스마트 로깅을 위해
    • 3 New Relic으로 보내기 위해

    이러한 옵션에 대해 자세히 알아보십시오.

  2. /newrelic-infra/ecs 이라는 CloudWatch 로그 그룹을 사용하여 로그를 전달합니다. 이미 존재하는지 확인하려면 다음을 실행하십시오.

    aws logs describe-log-groups --log-group-name-prefix /newrelic-infra/ecs

    해당 접두사가 있는 로그 그룹이 있으면 다음과 같은 결과가 표시됩니다.

    {
      "logGroups": [
        {
          "logGroupName": "/newrelic-infra/ecs",
          "creationTime": 1585828615225,
          "metricFilterCount": 0,
          "arn": "arn:aws:logs:YOUR_REGION:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:*",
          "storedBytes": 122539356
        }
      ]
    }

    이 명령은 접두사가 있는 로그 그룹과 일치하므로 반환된 로그 그룹 이름이 정확히 /newrelic-infra/ecs 인지 확인하십시오. 로그 그룹이 없으면 출력은 다음과 같습니다.

    {
    "logGroups": []
    }
  3. 로그 그룹이 없으면 다음을 실행하여 만듭니다.

    aws logs create-log-group --log-group-name /newrelic-infra/ecs
  4. 작업 정의를 편집합니다. newrelic-infra 컨테이너에 대한 컨테이너 정의에서 다음 logConfiguration 을 추가합니다.

    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-group": "/newrelic-infra/ecs",
        "awslogs-region": "AWS_REGION_OF_YOUR_CLUSTER",
        "awslogs-stream-prefix": "verbose"
      }
    }
  5. 새 작업 버전을 등록하고 서비스를 업데이트하십시오.

  6. 다음으로 관련 로그 스트림을 찾습니다. 실행 중인 작업의 인스턴스가 여러 개 있는 경우 모두 동일한 로그 그룹에 로그를 보내지만 각각 고유한 로그 스트림이 있습니다. 로그 스트림 이름은 AWSLOGS_STREAM_PREFIX/TASK_FAMILY_NAME/TASK_ID 구조를 따릅니다. 이 경우 verbose/newrelic-infra/TASK_ID 입니다.

    지정된 로그 그룹에 대한 모든 로그 스트림을 가져오려면 다음 명령을 실행합니다.

    aws logs describe-log-streams --log-group-name /newrelic-infra/ecs

    다음은 두 개의 스트림이 있는 로그 그룹의 출력 예입니다.

    {
        "logStreams": [
            {
                "logStreamName": "verbose/newrelic-infra/9dfb28114e40415ebc399ec1e53a21b7",
                "creationTime": 1586166741197,
                "firstEventTimestamp": 1586166742030,
                "lastEventTimestamp": 1586173933472,
                "lastIngestionTime": 1586175101220,
                "uploadSequenceToken": "49599989655680038369205623273330095416487086853777112338",
                "arn": "arn:aws:logs:AWS_REGION_OF_YOUR_CLUSTER:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:log-stream:verbose/newrelic-infra/9dfb28114e40415ebc399ec1e53a21b7",
                "storedBytes": 0
            },
            {
                "logStreamName": "verbose/newrelic-infra/f6ce0be416804bc4bfa658da5514eb00",
                "creationTime": 1586166745643,
                "firstEventTimestamp": 1586166746491,
                "lastEventTimestamp": 1586173037927,
                "lastIngestionTime": 1586175100660,
                "uploadSequenceToken": "49605664273821671319096446647846424799651902350804230514",
                "arn": "arn:aws:logs:AWS_REGION_OF_YOUR_CLUSTER:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:log-stream:verbose/newrelic-infra/f6ce0be416804bc4bfa658da5514eb00",
                "storedBytes": 0
            }
        ]
    }
  7. 이전 로그 스트림 목록에서 로그를 검색할 작업 ID가 있는 스트림을 식별하고 이 명령에서 logStreamName 을 사용합니다.

    aws logs get-log-events --log-group-name /newrelic-infra/ecs --log-stream-name "LOG_STREAM_NAME" --output text > logs.txt
  8. 자세한 로그 활성화 지침을 계속 진행합니다.

실행 중인 컨테이너에서

실행 중인 컨테이너에서 명령을 실행하여 자세한 로그를 활성화하려면:

  1. 컨테이너 인스턴스 중 하나에 SSH로 연결합니다.

  2. docker ps -a 명령을 실행하여 New Relic 통합 컨테이너의 컨테이너 ID를 찾습니다. 컨테이너의 이름은 nri-ecs 이어야 합니다.

  3. newrelic-infra-ctl 을 사용하여 제한된 기간 동안 자세한 로그를 활성화합니다. 다음 명령을 실행합니다.

    docker exec INTEGRATION_CONTAINER_ID /usr/bin/newrelic-infra-ctl

    자세한 내용 은 에이전트 문제 해결 을 참조하십시오.

  4. 명령을 사용하여 컨테이너의 로그를 저장합니다.

    docker logs INTEGRATION_CONTAINER_ID > logs.txt

    충분한 로깅 데이터를 생성하려면 약 3분 동안 명령을 실행한 상태로 두십시오.

  5. 로그 파일에 오류가 있는지 검사하십시오.

로그 파일을 New Relic 지원팀 에 보내야 하는 경우:

  1. ECS 통합 버전이 포함된 다음 행을 로그 파일에 포함합니다.

    New Relic ECS integration version X.YY.ZZZ
  2. 작업 정의 .yml 파일과 함께 로그 파일을 지원 티켓에 첨부합니다.

Copyright © 2022 New Relic Inc.

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