지원되는 프레임워크를 사용하지 않는 경우 대신 에이전트의 로그 전달 API 메서드를 사용하여 자체 계측을 수행할 수 있습니다. 자세한 내용은 Node.js 에이전트 API 문서 를 참조하세요.
중요
에이전트 릴리스 8.16.0 이상에는 기본적으로 에이전트 구성 파일에서 이 기능이 활성화되어 있습니다.
에이전트 로그 전달은 지원되는 프레임워크 가 감지되면 데이터 소비를 증가시킵니다. 양은 애플리케이션과 생성하는 로그의 양에 따라 다릅니다. 이 기능은 비활성화할 수 있습니다. 옵션에 대한 자세한 내용은 자동 로깅 비활성화 를 참조하십시오.
이미 로그 전달 솔루션이 있는 경우 이 기능을 비활성화해야 합니다.
이것은 가장 간단한 접근 방식이며, 로그 전달자 설정에 대한 액세스 권한이나 관심이 없는 개발자 또는 앱 컨텍스트에서 로그 및 기타 연결 메타데이터의 힘을 확인하려는 계정에 탁월한 선택입니다. 많은 오버 헤드.
이 옵션을 사용하여 에이전트는 전체 로그를 보고하고 span.id , trace.id , hostname , entity.guid 및 entity.name 속성을 추가합니다. 이러한 속성은 로그를 범위, 추적 및 기타 원격 분석에 연결하여 문제를 더 쉽게 해결할 수 있도록 합니다.
로그 전달 기능이 있는 에이전트 버전( Node.js 에이전트 8.11.0 이상 )을 설치하기만 하면 됩니다. 전달이 비활성화된 경우 다음 구성을 사용할 수 있습니다.
기존 로그 포워딩 솔루션이 있고 컨텍스트에서 자동 로그인을 사용하도록 에이전트를 업데이트하는 경우 disable your manual log forwarder 를 확인하세요. 그렇지 않으면 앱이 이중 로그 라인을 전송하게 됩니다. 귀하의 계정에 따라 이중 청구가 발생할 수 있습니다. 자세한 내용을 보려면 특정 로그 전달자를 비활성화하는 절차를 따르십시오.
이미 마음에 드는 로그 포워더가 있습니까? 우리는 당신을 덮었습니다! 언어 에이전트는 자동 로그인 컨텍스트 기능에 대한 액세스를 제공하는 데 필요한 연결 메타데이터로 로그를 장식할 수 있습니다.
이 옵션은 에이전트 내 전달과 함께 사용하면 안 됩니다. 에이전트 내 전달이 활성화된 상태에서 외부 로그 전달자 를 사용하여 New Relic에 로그를 전송하면 로그가 New Relic에 최대 두 번 전송됩니다. 계정에 따라 이중 청구가 발생할 수 있습니다.
이 옵션은 수동 로그 데코레이팅 포맷터 와 함께 사용하면 안 됩니다. 코드베이스에 수동 포맷터에 대한 참조가 있는 경우 이 옵션을 활성화하기 전에 제거하십시오.
이 옵션을 사용하려면 에이전트 내 전달 구성 옵션을 비활성화해야 합니다.
newrelic.js:
application_logging:{
forwarding:{
enabled:false
}
}
구성에서 로그 데코레이션을 활성화한 다음 에이전트를 다시 시작하여 로그 데코레이션을 시작합니다.
로그가 트랜잭션 외부에서 발생했거나 애플리케이션 컨텍스트에 적용할 수 없는 경우 일부 속성은 비어 있을 수 있습니다.
로그 농축기 중 하나를 수동으로 사용하는 것보다 이 옵션을 사용하는 것이 좋습니다.
언어 에이전트가 로그를 전달하고 장식할 수 있기 전에는 프레임워크별 로그 보강 프로그램을 사용하도록 애플리케이션을 업데이트하여 컨텍스트에서 로그를 활성화할 수 있었습니다. 이 옵션은 계속 지원되지만 더 이상 권장되지 않습니다. 이 접근 방식을 사용하는 방법에 대한 지침 은 컨텍스트 옵션에서 수동 로그인을 참조하세요.
또한 이 방법을 사용하려면 컨텍스트에서 로그를 활성화하기 전에 로그 전달자를 설치해야 합니다. 로그 전달자가 없는 경우 New Relic UI는 인프라 에이전트 를 사용하라는 메시지를 표시합니다.
기존 로그 포워딩 솔루션을 사용하기로 결정하고 나중에 컨텍스트에서 자동 로그를 사용하도록 에이전트를 업데이트하기로 결정한 경우 disable your manual log forwarder 를 확인하세요. 그렇지 않으면 앱이 이중 로그 라인을 전송하게 됩니다. 귀하의 계정에 따라 이중 청구가 발생할 수 있습니다. 자세한 내용을 보려면 특정 로그 전달자를 비활성화하는 절차를 따르십시오.
이 문서가 설치하는데 도움이 되셨나요?
데이터 보호
로그에는 HIPAA 또는 기타 규정 준수 프로토콜로 보호되는 민감한 정보가 포함될 수 있습니다. 기본적으로 신용 카드 또는 사회 보장 번호와 같은 항목에 대해 표시되는 번호 패턴을 난독화하지만 추가 정보를 해시하거나 마스킹해야 할 수도 있습니다.
자세한 내용은 난독화 표현식 및 규칙 에 대한 설명서를 참조하세요. New Relic UI를 사용하거나 GraphQL API인 NerdGraph를 사용하여 로그 데이터를 해시하거나 마스킹할 수 있습니다.
데이터 탐색
로깅 데이터를 최대한 활용하려면:
APM Summary 페이지 에서 Web transaction time 차트를 클릭하면 특정 시점과 관련된 로그를 볼 수 있습니다.
일반적으로 컨텍스트에서 로그를 활성화한 후 1분 이내에 로그가 표시되기 시작합니다. 앱의 Triage > Logs 섹션을 확인하세요. 또한 오류와 관련된 로그 패턴 도 표시되기 시작합니다.
오류 또는 추적에 대한 로그가 표시되지 않으면 앱에 대한 로그가 없을 수 있습니다. UI 페이지를 새로고침하거나 선택한 기간 을 변경하세요.
자동 로깅 비활성화
컨텍스트의 APM 로그는 APM 에이전트 로그 데이터를 자동으로 전달합니다. 기본적으로 활성화되어 있습니다. 애플리케이션 로깅을 활성화하면 보안, 규정 준수, 청구 또는 시스템 성능에 부정적인 영향을 미칠 수 있습니다. 자세한 내용을 확인하거나 기본 설정을 조정해야 하는 경우 절차에 따라 자동 로깅을 비활성화 합니다.
컨텍스트 옵션의 수동 로그인
Node.js에서 모니터링하는 앱에 대한 컨텍스트에서 로그를 활성화하려면 수동 설치 옵션을 사용할 수 있습니다.
New Relic 에서 이미 로그인을 설정 했는지 확인하십시오. 여기에는 애플리케이션 로그를 수집하고 New Relic으로 전달되는 메타데이터를 확장하는 지원되는 로그 전달자 구성이 포함됩니다.
New Relic 포맷터는 개별적으로 사용하거나 다른 포맷터와 결합하여 최종 포맷으로 사용할 수 있습니다.
format: winston.format.combine(
winston.format.label({label:'test'}),
newrelicFormatter()
)
Pino 로그 농축기를 설치하려면 터미널 또는 명령줄 인터페이스에 다음 명령을 입력하십시오.
bash
$
npminstall @newrelic/pino-enricher
애플리케이션 코드에서 로깅 구성을 업데이트하여 New Relic Pino 플러그인을 추가합니다.
// index.js
require('newrelic')
const nrPino =require('@newrelic/pino-enricher')
const pino =require('pino')
const logger =pino(nrPino())
New Relic 포맷터는 개별적으로 사용하거나 다른 포맷터와 결합하여 최종 포맷으로 사용할 수 있습니다.
로그 어펜더를 올바르게 구성했는지 확인하려면 애플리케이션을 실행한 다음 쿼리 연산자 has:span.id has:trace.id 를 사용하여 New Relic에서 로그 데이터 를 확인하십시오.
모든 것이 올바르게 구성되고 데이터가 강화된 메타데이터와 함께 New Relic으로 전달되는 경우 이제 로그가 JSON으로 내보내지고 trace.id 및 span.id 필드가 포함되어야 합니다. UI에 로그 데이터가 표시되지 않으면 문제 해결 절차 를 따르세요. 컨텍스트에서 작동하는 로그의 예를 보려면 예제 애플리케이션 을 살펴보십시오.