보안 감사를 위해 Ruby 에이전트는 New Relic 수집기로 전송된 모든 데이터를 사람이 읽을 수 있는 형식으로 로그 파일에 기록합니다. 이 기능은 Ruby 에이전트 버전 3.5.5 이상에서 사용할 수 있습니다.
감사 로그 구성
주의
디버깅 또는 감사 목적으로 전송되는 내용에 대한 자세한 정보가 필요한 경우에만 이 기능을 활성화하십시오. 이 기능을 장기간 활성화하면 감사 로그 파일에 과부하가 걸릴 수 있습니다.
감사 로그는 기본적으로 비활성화되어 있으며 수동으로 활성화해야 합니다. 활성화하려면 newrelic.yml 파일에 다음을 추가하세요: audit_log.enabled: true
.
기본적으로 뉴렐릭 루비 에이전트는 log/newrelic_audit.log 의 기본 뉴렐릭 에이전트 로그 옆에 있는 파일에 감사 로그를 작성합니다. 감사 로그 파일의 위치를 제어하려면 audit_log.path
설정 초기화를 감사 로그를 원하는 전체 경로로 설정하세요.
감사 로그 내용
감사 로그 파일은 읽기 위해 특별한 도구가 필요하지 않습니다. 여기에는 New Relic 에이전트가 New Relic 수집기에 대해 수행하는 각 요청에 대해 두 줄이 포함됩니다.
- 첫 번째 줄은 요청이 이루어진 호스트 및 URI 경로를 나열합니다.
- 두 번째 줄에는 사람이 읽을 수 있는 형식의 전체 요청 본문 내용이 포함됩니다.
감사 로그의 요청 본문은 New Relic 수집기로 전송되기 전에 여러 계층의 인코딩이 적용될 수 있으므로 New Relic 수집기로 전송된 정확한 바이트 시퀀스를 나타내지 않습니다. 그러나 감사 로그에 덤프되면 나가는 요청에 다른 정보가 추가되지 않습니다.
팁
원시 요청 본문을 인코딩된 형식으로 캡처하려면 tcpdump 과 같은 패킷 캡처 도구를 사용하세요.
요청 본문 형식
요청 본문의 형식은 에이전트가 사용하는 통신 형식에 따라 다릅니다.
- 최신 Ruby 버전은 데이터 직렬화에 JSON을 사용하므로 감사 로그에는 요청 본문의 JSON 표현이 포함됩니다.
- 이전 Ruby 버전은 Ruby의 기본 Marshal 형식을 사용하여 요청 본문을 직렬화합니다. 이것은 불투명한 형식이기 때문에 감사 로그에는
Object#inspect
호출 결과가 포함됩니다. 이렇게 하면 직렬화 직전에 사람이 읽을 수 있는 요청 개체 그래프가 생성됩니다.