AWS Lambda 함수 newrelic-log-ingestion
을 사용하여 Amazon CloudWatch 로그를 뉴렐릭으로 보낼 수 있습니다. 이는 AWS Serverless 애플리케이션 리포지토리에서 쉽게 배포할 수 있습니다.
CloudWatch 로그를 뉴렐릭으로 전달하면 로그 데이터에 대한 수집, 처리, 탐색, 쿼리 및 알림을 위한 기능을 향상할 수 있습니다.
CloudWatch 로그 Lambda 함수 설치 및 구성
다음 설정은 환경 변수를 구성하기 위한 한 가지 접근 방식을 보여줍니다. Functions 페이지에서 구성할 수도 있습니다.
다음을 완료하십시오
가 있는지 확인합니다.
브라우저에서 AWS Serverless Application Repository를 엽니다.
newrelic
을 검색하고 Show apps that create custom IAM roles or resource policies를 확인하여newrelic-log-ingestion
을 찾습니다.newrelic-log-ingestion
세부정보를 열고 Deploy를 클릭합니다.함수의 Configure 메뉴에서 Environment Variables로 이동하고 다음 환경 변수를 사용하여 로그 포워딩을 구성합니다.
키
설명
DEBUG_LOGGING_ENABLED
CloudWatch 콘솔에서 디버그 메시지를 출력할지 여부를 결정하는 부울 값입니다. 옵션
디버그 로그를 켜려면 이 항목을
true
으로 설정합니다. 기본값은false
입니다.LICENSE_KEY
뉴렐릭으로 데이터를 보내는 데 사용됩니다. 필수 항목입니다.
LOGGING_ENABLED
로그가 뉴렐릭으로 전달되는지 여부를 결정합니다. 필수 항목입니다. 로깅을 켜려면 이 항목을
true
으로 설정합니다.NR_TAGS
모든 로그 이벤트에 추가할 태그를 지정합니다. 선택 사항입니다.
각 태그는 콜론으로 구분된 키와 값으로 구성됩니다. 여러 키-값 쌍은 세미콜론으로 구분됩니다. (예:
env:prod;team:myTeam
)NR_LAMBDA_LOG_GROUP_PREFIX
/aws/lambda
과 다른 경로를 사용하도록 Lambda 로그 그룹을 구성한 경우 이 변수를 사용하여 지정할 수 있습니다. 선택 사항입니다.NR_VPC_LOG_GROUP_PREFIX
/aws/vpc/flow-log
과 다른 경로를 사용하도록 VPC 로그 그룹을 구성한 경우 이 변수를 사용하여 지정할 수 있습니다. 선택 사항입니다.앱이 커스텀 IAM 역할을 생성한다는 것을 확인한 후, Deploy를 클릭합니다.
프로세스가 완료되면 Lambda 트리거를 생성하여 Lambda 함수를 CloudWatch 로그에 연결합니다.
Lambda 트리거 생성
수집 기능에서 로그 서브스크립션이 아닌 트리거를 설정해야 합니다. Lambda 콘솔에서 서브스크립션을 설정한 경우 이로 인해 일련의 로그가 생성되어 뉴렐릭으로 전달될 수 있습니다.
로그를 뉴렐릭으로 스트리밍하려면 Lambda에 트리거를 연결합니다.
왼쪽 메뉴에서
Functions
를 선택합니다.
이전에 생성된
newrelic-log-ingestion
함수를 찾아 선택합니다.Triggers
아래에서
Add Triggers
를 클릭하고 드롭다운 메뉴에서
CloudWatch Logs
를 선택합니다.
애플리케이션에 적합한
Log group
을 선택합니다.
필터 이름을 입력합니다.
옵션: 필터 패턴을 입력합니다.
Enable trigger
체크박스를 선택한 다음
Add
를 클릭해 트리거를 생성합니다.
이 문서가 설치하는데 도움이 되셨나요?
선택 사항: 다른 로깅 엔드포인트 구성
필요한 경우 커스텀 로깅 엔드포인트를 설정할 수 있습니다. 그러면 일례로 FedRAMP 같은 규정을 준수하는 엔드포인트들을 사용할 수 있습니다.
이를 위해 위에 설명한 애플리케이션을 배포한 후 다음을 수행해야 합니다.
AWS에서 최근 배포된 Lambda 함수 뷰로 이동합니다.
아래로 스크롤하여
Configuration
탭을 클릭합니다.
Configuration
탭 내부의 왼쪽 메뉴에서
Environment Variables
를 클릭합니다.
여기에서 기존 환경 변수 목록을 볼 수 있습니다.
Environment Variables
테이블 오른쪽 상단에 있는
Edit
을 클릭하면 됩니다.
적절한 엔드포인트로
NR_LOGGING_ENDPOINT
를 업데이트합니다.- US 고객의 경우:
https://log-api.newrelic.com/log/v1
- EU 고객의 경우:
https://log-api.eu.newrelic.com/log/v1
- FedRAMP 고객의 경우:
https://gov-log-api.newrelic.com/log/v1
- US 고객의 경우:
Save
을 클릭합니다.
선택 사항: 재시도 구성
통신 문제로 인해 해당 함수가 데이터 전송에 실패한 경우 수행할 재시도 횟수를 설정할 수 있습니다. 권장되는 재시도 횟수는 3회이지만 아래 파라미터를 변경하여 재시도 동작을 변경할 수 있습니다.
팁
재시도 횟수가 많을수록 기능이 더 오래 실행될 수 있습니다. 이렇게 하면 Lambda에 더 높은 비용이 발생할 가능성이 높아집니다. 그러나 재시도 횟수를 줄이면 데이터 손실 가능성이 높아질 수 있습니다.
MAX_RETRIES = 3 # Defines the number of retries after lambda failure to deliver dataINITIAL_BACKOFF = 1 # Defines the initial wait seconds until next retry is executedBACKOFF_MULTIPLIER = 2 # Time multiplier between the retriesAs an example, in default above configuration, first retry will happen after 1 second, second retry after 2 seconds and third retry will happen after 4 seconds.
SAM 템플릿으로 생성된 리소스
리포지토리에서 애플리케이션을 생성하면 다음 리소스도 생성됩니다.
- Lambda 함수 자체
- CloudWatch Logs를 기반으로 하는 Lambda 함수에 실행 권한을 부여하는 데 사용되는 역할입니다.
나열되지 않은 다른 모든 Lambda 설정은 기본값으로 둘 수 있습니다.
로그 데이터 확인
모든 것이 올바르게 구성되고 데이터가 수집되는 경우 다음 두 위치에서 로그가 표시되어야 합니다.
SELECT * FROM Log
로그 관리 기능을 활성화한 후에도 데이터가 나타나지 않으면 표준 로그 문제 해결 절차를 따르십시오.
다음 단계는?
플랫폼 전반에 걸쳐 로깅 데이터를 탐색합니다.
- 문맥적 로그 기능으로 로그를 전달하여 애플리케이션과 플랫폼 성능 데이터에 대한 더 깊은 가시성을 얻을 수 있습니다.
- 알림을 설정합니다.
- 데이터를 쿼리하고 대시보드를 만듭니다.
로그 전달 비활성화
로그 전달 기능을 비활성화하려면 Amazon CloudWatch 문서의 표준 절차를 따릅니다. 뉴렐릭에서는 다른 작업을 수행할 필요가 없습니다.