우리의 PHP로 에이전트를 사용하면 컨텍스트에서 로그를얻을 수 있으므로 다른 New Relic 데이터의 컨텍스트에서 앱 로그를 볼 수 있습니다. 이 기능에 대한 일반 정보는 컨텍스트의 APM 로그를참조하십시오.
컨텍스트 옵션의 자동 로그
지원되는 프레임워크를 사용하는 경우 앱의 로그 및 링크 메타데이터를 New Relic에 자동으로 보내도록 APM 에이전트를 구성할 수 있습니다. 컨텍스트에서 자동 로그에 대해 지원되는 프레임워크는 다음과 같습니다.
- 모노로그(버전 2 또는 3)
이것은 가장 간단한 접근 방식이며, 로그 전달자 설정에 대한 액세스 권한이나 관심이 없는 개발자 또는 앱 컨텍스트에서 로그 및 기타 연결 메타데이터의 힘을 확인하려는 계정에 탁월한 선택입니다. 많은 오버 헤드.
이 옵션을 사용하여 에이전트는 span.id
, trace.id
, hostname
, entity.guid
및 entity.name
를 추가합니다. 로그 전달 제한 사항에 대해 알아보세요 .
중요
에이전트 릴리스 10.3.0부터 로깅 메트릭 및 에이전트 로그 전달 기능이 기본적으로 활성화됩니다.
로그 전달 기능이 있는 에이전트 버전( PHP 에이전트 10.1.0 이상 )을 설치하기만 하면 됩니다. 전달이 비활성화된 경우 다음 구성을 사용할 수 있습니다.
구성 파일( newrelic.ini
):
newrelic.application_logging.enabled = truenewrelic.application_logging.metrics.enabled = truenewrelic.application_logging.forwarding.enabled = true
PHP 에이전트 구성 문서는 에이전트를 구성하는 방법을 자세히 설명하지만 여기에서는 PHP 로그 구성의 가장 중요한 측면 중 일부를 검토하고 링크합니다.
핵심 로깅 기능이 활성 상태인지 여부를 제어하는 단일 옵션이 있습니다.
지원되는 로깅 프레임워크를 사용하는 경우 에이전트는 애플리케이션에서 생성하는 로그 메시지의 심각도 수를 측정하는 메트릭을 보낼 수 있습니다. newrelic.config.application_logging.metrics.enabled
구성을 사용하여 이 기능을 활성화할 수 있습니다.
지원되는 로깅 프레임워크를 사용 중이고 에이전트를 사용하여 애플리케이션 로그를 New Relic으로 보내려는 경우 newrelic.config.application_logging.forwarding
접두사가 붙은 INI 설정 설정을 통해 이를 제어할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.
중요
기존 로그 전달 솔루션이 있고 컨텍스트에서 자동 로그를 사용하도록 에이전트를 업데이트하는 경우 수동 로그 전달기를 비활성화해야 합니다 . 그렇지 않으면 앱에서 두 배의 로그 데이터를 전송합니다. 계정에 따라 이중 청구가 발생할 수 있습니다. 자세한 내용 은 특정 로그 전달자를 비활성화하는 방법을 알아보세요 .
이 문서가 설치하는데 도움이 되셨나요?
데이터 보호
로그에는 HIPAA 또는 기타 규정 준수 프로토콜로 보호되는 민감한 정보가 포함될 수 있습니다. 기본적으로 신용 카드 또는 사회 보장 번호와 같은 항목에 대해 표시되는 번호 패턴을 난독화하지만 추가 정보를 해시하거나 마스킹해야 할 수도 있습니다.
자세한 내용은 난독화 표현식 및 규칙 에 대한 설명서를 참조하세요. New Relic UI를 사용하거나 GraphQL API인 NerdGraph를 사용하여 로그 데이터를 해시하거나 마스킹할 수 있습니다.
데이터 탐색
로깅 데이터를 최대한 활용하려면:
- APM 요약 페이지 에서 웹 트랜잭션 시간 차트를 클릭하여 특정 시점과 관련된 로그를 봅니다.
- 앱의 오류 받은 편지함 을 확인하여 오류와 관련된 로그를 확인하세요.
- 분산 추적 을 사용하여 개별 추적과 연결된 로그를 확인합니다.
- 로그 UI 를 사용하여 플랫폼 전체에서 더 많은 로깅 데이터를 탐색하십시오.
- 로그 출력 및 심각도에 따라 경고 를 설정합니다.
- 로그 데이터용 특수 UI를 사용 하여 데이터를 쿼리 하고 결과가 포함된 대시보드를 만드 십시오.
문제 해결 팁
일반적으로 로그는 활성화한 후 1분 이내에 나타나기 시작합니다. 컨텍스트에 로그인합니다. 앱의 Triage > Logs 섹션을 확인하십시오. 또한 오류와 관련된 로그 패턴이 표시되기 시작합니다.
오류 또는 추적에 대한 로그가 표시되지 않으면 앱에 대한 로그가 없을 수 있습니다. UI 페이지를 새로고침하거나 선택한 기간 을 변경하세요.
자동 로깅 비활성화
컨텍스트의 APM 로그인이 자동으로 전달됨 활성화된 경우 에이전트 로그 데이터. 에이전트 릴리스 10.3.0부터 이 기능은 PHP 에이전트에 대해 기본적으로 활성화됩니다. 이는 보안, 규정 준수, 청구 또는 시스템 성능에 부정적인 영향을 미칠 수 있습니다. 자세한 내용을 보거나 기본 설정을 조정해야 하는 경우 자동 로깅 비활성화절차를 따르십시오.
컨텍스트 옵션의 수동 로그인
언어 에이전트가 로그를 전달하고 장식할 수 있기 전에는 수동 솔루션을 사용하여 연결 메타데이터를 보낼 수 있었습니다.
이 옵션은 계속 지원되지만 더 이상 권장되지 않습니다. 또한 이 방법을 사용하려면 컨텍스트에서 로그를 활성화하기 전에 로그 전달자를 설치해야 합니다. 로그 전달자가 없는 경우 New Relic UI는 인프라 에이전트 를 사용하라는 메시지를 표시합니다.
기존 로그 전달 솔루션을 사용하기로 결정하고 나중에 컨텍스트에서 자동 로그를 사용하도록 에이전트를 업데이트하기로 결정한 경우 수동 로그 전달기를 비활성화해야 합니다 . 그렇지 않으면 앱에서 이중 로그 라인을 전송합니다. 계정에 따라 이중 청구가 발생할 수 있습니다. 자세한 내용은 절차에 따라 특정 로그 전달자 를 비활성화하십시오.
중요
이 옵션은 에이전트 내 전달과 함께 사용하면 안 됩니다. 에이전트 내 전달이 활성화된 상태에서 외부 로그 전달자 를 사용하여 New Relic에 로그를 전송하면 로그가 New Relic에 최대 두 번 전송됩니다. 계정에 따라 이중 청구가 발생할 수 있습니다.
에이전트의 구성을 업데이트하여 로그 전달을 비활성화한 다음 에이전트를 다시 시작하십시오.
구성 파일( newrelic.ini
):
newrelic.application_logging.forwarding.enabled = false
수동 프로세스를 사용하여 PHP 컨텍스트에서 로그를 설정해야 하는 경우 먼저 PHP 앱을 설정하세요.
- New Relic 에서 이미 로그인을 설정 했는지 확인하십시오. 여기에는 애플리케이션 로그를 수집하고 New Relic으로 전달되는 메타데이터를 확장하는 지원되는 로그 전달자 구성이 포함됩니다.
- 최신 PHP 에이전트 버전을 설치 하거나 업데이트 하고 분산 추적을 활성화합니다 . 컨텍스트의 로그에 PHP 에이전트 버전 9.13.0.270 이상 을 사용하십시오.
- Monolog 버전 1 또는 2를 설치하거나 내장된 Monolog Handler for New Relic을 사용하지 않는 경우 호환되는 로그 전달 플러그인 을 사용하십시오.
- Monolog 확장을 사용하는 경우 PHP용 컨텍스트에서 로그를 구성합니다.
- 로그 어펜더를 올바르게 구성했는지 확인하려면 애플리케이션을 실행한 다음 쿼리 연산자
has:span.id has:trace.id
를 사용하여 New Relic에서 로그 데이터 를 확인하십시오.
모든 것이 올바르게 구성되고 데이터가 강화된 메타데이터와 함께 New Relic으로 전달되는 경우 이제 로그가 JSON으로 내보내지고 trace.id
및 span.id
필드가 포함되어야 합니다. UI에 로그 데이터가 표시되지 않으면 문제 해결 절차 를 따르세요.
애플리케이션의 로그에 trace.id
및 span.id
같은 필드가 포함되어 있지 않으면 Monolog 로그 보강 프로그램 구성에 문제가 있을 수 있습니다. 이러한 상황에서:
- 앱용 PHP 에이전트가 설치되었고 분산 추적을 사용하도록 구성되었는지 확인하십시오.
- 애플리케이션이 로그 레코드를 보낼 때
syslog()
이 아니라 Monolog 로거 개체를 사용하고 있는지 확인하십시오. - 다른 Monolog 핸들러가 로그 레코드가 버블링 되는 것을 막고 있지 않은지 확인하십시오.