프라이빗 로케이션은 자체 환경에서 실행하는 컨테이너인 신세틱스 작업 관리자(SJM)의 모음입니다. SJM은 뉴렐릭의 수집기("Horde" 엔드포인트)로 아웃바운드 호출만 수행하므로, 네트워크에 대한 인바운드 액세스를 열지 않고도 내부 타겟, 방화벽으로 보호되는 타겟 또는 기타 프라이빗 타겟을 모니터할 수 있습니다. 테스트 스크립트, 시크릿 및 트래픽은 인프라 내부에 유지됩니다. 이는 전 세계의 뉴렐릭 운영 인프라에서 실행되는 뉴렐릭의 관리형 공개 위치와 대조됩니다.
다음 표는 프라이빗 로케이션에서 지원하는 내용을 요약합니다. 각 기능은 아래 섹션에 자세히 설명되어 있습니다.
능력
제공되는 기능
멀티 플랫폼 배포(도커/Podman/Kubernetes/OpenShift)
방화벽 뒤의 자체 인프라 내에서 모니터를 실행하십시오.
커스텀 CA 인증서
내부 또는 프라이빗 PKI HTTPS 엔드포인트를 신뢰하십시오.
mTLS 클라이언트 인증서
내부 mTLS 엔드포인트(cert-map.json)에 클라이언트 인증서를 제시합니다.
비루트 실행
강화된 컨테이너에서 SJM을 비루트 사용자로 실행하십시오.
검증된 스크립트 실행(VSE)
위치에서 스크립트를 실행할 수 있는 사용자를 암호로 제한하십시오.
보안 자격 증명
시크릿을 암호화된 볼트에 저장하고 결과 및 로그에서 삭제하십시오.
FedRAMP 보통
FedRAMP 승인 계정에서 신세틱 모니터링을 사용하십시오.
듀얼 스택(IPv4 + IPv6)
IPv4 및 IPv6 엔드포인트를 모두 모니터링하십시오.
아웃바운드 프록시
HTTP/HTTPS 프록시를 통해 뉴렐릭에 접속합니다.
커스텀 Node 모듈
스크립트에서 자체 npm 패키지를 사용하십시오.
사용자 정의 변수
스크립트에 기밀이 아닌 설정을 주입하십시오.
수평 및 수직 스케일링
처리량을 위해 SJM(동일한 키)을 추가하거나 CPU/RAM을 추가하십시오.
자동화 및 코드형 인프라
NerdGraph 및 ...을(를) 사용하여 로케이션을 관리합니다. Terraform
공유 위치
조직 내 모든 계정에서 하나의 위치를 공유합니다.
상태 및 옵저버빌리티
사전 구축된 작업 관리자 대시보드로 상태 이벤트를 추적합니다.
커스텀 호스트명(RUNTIME_EXTRA_HOSTS)
런타임 DNS 확인을 위해 내부 호스트명을 IP에 매핑하십시오.
파운데이션: 자체 인프라에 모니터링 배포
해결하는 문제: 내부 애플리케이션이 뉴렐릭의 공개 위치에서 도달할 수 없는 방화벽 뒤에 있으며, 모니터링 도구를 위해 인바운드 액세스를 개방하는 것은 허용되지 않습니다. 프라이빗 로케이션은 자체 네트워크 내부에서 아웃바운드 전용으로 해당 시스템을 모니터합니다.
프라이빗 로케이션은 직접 제어하는 인프라에서 전적으로 실행됩니다:
프라이빗 로케이션은 원하는 수의 SJM을 포함할 수 있습니다. UI에서 해당 로케이션에 모니터를 할당하면, SJM이 작업을 가져와 결과를 뉴렐릭으로 다시 보고합니다.
SJM은 단일 이미지(newrelic/synthetics-job-manager)에서 도커, Podman, Kubernetes 및 OpenShift에서 실행됩니다.
검사별 샌드박싱: 스크립트 또는 브라우저 검사마다 SJM은 새로운 런타임 컨테이너 또는 파드를 가동한 다음 해체하여 실행을 서로 격리합니다.
SJM이 관리하는 런타임:
synthetics-ping-runtime ― 핑 모니터(경량)
synthetics-node-api-runtime ― 스크립트 API, 끊어진 링크, 인증서 확인
synthetics-node-browser-runtime — 간단한 브라우저 모니터 및 스크립트 브라우저 모니터(Chrome)
아웃바운드 전용: SJM은 Horde 엔드포인트(US https://synthetics-horde.nr-data.net/, EU https://synthetics-horde.eu01.nr-data.net/, JP https://synthetics-horde.jp.nr-data.net/)에 도달해야 합니다. 다음을 사용하여 연결을 테스트합니다:
bash
$
curl-X GET https://synthetics-horde.nr-data.net/synthetics/api/v1/ping
런타임 버전을 제어할 수 있습니다. 프라이빗 로케이션에서 런타임 버전은 SJM이 배포하는 런타임 이미지에 의해 전적으로 결정됩니다 ― DESIRED_RUNTIMES (도커 및 Podman) 또는 synthetics.desiredRuntimes (Kubernetes)을 사용하여 설정하십시오. Docker Hub에서 현재 지원되는 런타임 이미지를 실행하려면 latest 태그를 사용하십시오 ― 이는 프라이빗 로케이션에 권장되는 설정입니다. 업그레이드를 채택하기 전에 유효성을 검사해야 하는 경우, 대신 게시된 특정 이미지 태그를 고정할 수 있습니다. 어느 쪽이든 SJM이 시작될 때 이미지를 가져오므로, 변경 사항을 적용하려면 다시 시작하거나 다시 배포하십시오.
일반 설정의 브라우저 및 런타임 버전 드롭다운 메뉴는 프라이빗 로케이션에 영향을 미치지 않으며, SyntheticCheck의 runtimeTypeVersion은(는) 프라이빗 작업의 런타임을 식별하는 신뢰할 수 있는 방법이 아닙니다 ― 대신 nr.runtimeVersion을(를) 쿼리하십시오. 현재 런타임은 Chrome 147 이상을 사용하는 Node.js 22입니다. 이전 Node.js 16 및 Chrome 134 런타임은 수명 종료에 도달했습니다. 자세한 내용은 런타임 전환 가이드를 참조하십시오.
보안 및 강화
커스텀 CA 인증서
해결되는 문제: 모니터는 자체 인증 기관에서 서명한 내부 HTTPS 엔드포인트를 확인할 수 없으므로 비즈니스에 중요한 내부 앱이 모니터링되지 않거나 사용자 지정 런타임 이미지를 유지 관리해야 합니다. CA 인증서를 마운트하면 TLS 유효성 검사를 유지한 상태로 해당 엔드포인트를 모니터링할 수 있습니다.
SJM은 마운트된 인증서를 자동 감지하고 생성하는 모든 런타임에(읽기 전용으로) 전파하므로, 사용자 지정 런타임 이미지가 필요하지 않습니다.
형식: PEM, .pem 확장자를 사용하며 UID 2000이(가) 읽을 수 있습니다. SJM은 CA:TRUE 기본 제약 조건이 있는 인증서만 로드하고 리프 인증서는 무시합니다.
Kubernetes:cert-map.json 및 인증서/키 파일이 포함된 Secret(Kubernetes 리소스 유형)을 생성한 다음 global.clientCertificates.volume.secret.secretName을(를) 사용하여 참조합니다.
mTLS는 상호적이므로 모니터도 서버를 신뢰해야 합니다. 엔드포인트의 인증서가 프라이빗 CA에서 발급된 경우, 해당 CA를 사용자 지정 CA 인증서로 마운트합니다(도커: /var/lib/newrelic/synthetics/certs, Kubernetes: global.customCertificates.volume.secret.secretName).
런타임 내에서 DNS를 통해 mTLS 호스트명을 확인할 수 없는 경우 커스텀 호스트명으로 매핑하십시오.
인증서 지원 제한 사항
사용자 지정 CA 및 mTLS 인증서는 스크립트 API 및 스크립트 브라우저 모니터에만 적용됩니다(핑 모니터는 영향을 받지 않습니다). 인증서는 컨테이너 시작 시 로드되므로, 인증서를 추가, 제거 또는 교체한 후에는 작업 관리자(또는 Kubernetes의 런타임 파드)를 다시 시작하십시오. mTLS의 경우 각 클라이언트 인증서에는 고유한 주체 CN이 필요합니다 ― Chrome은(는) 이를 사용하여 호스트명별로 올바른 인증서를 자동 선택합니다.
해결되는 문제: 스크립트 모니터는 임의의 코드이므로 계정에 액세스할 수 있는 사람은 누구나 네트워크 내부의 인프라에서 스크립트를 실행할 수 있습니다. 단독으로 보유한 패스프레이즈를 사용하면 신뢰할 수 있는 스크립트만 작업 관리자에서 실행되도록 보장할 수 있습니다.
다른 사용자가 위치에 스크립트를 할당하거나 SJM을 추가하기 전에 암호를 설정해야 합니다. VSE는 스크립트된 모니터에만 적용된다는 점에 유의하십시오. 스크립트되지 않은 모니터(예: 단순 ping)는 암호 입력에서 제외됩니다.
VSE_PASSPHRASE (도커/Podman) 또는 synthetics.vsePassphrase / synthetics.vsePassphraseSecretName (Kubernetes)로 암호를 설정한 다음, 로케이션의 편집 메뉴에서 VSE를 활성화하고 각 모니터의 암호를 입력하십시오.
주의
뉴렐릭은 VSE 패스프레이즈를 절대 저장하지 않으며, 뉴렐릭 지원팀을 포함한 그 누구도 이를 복구할 수 없습니다. 분실된 경우 SJM에서 이를 재설정하고 해당 로케이션에 할당된 모든 모니터를 다시 인증해야 합니다.
해결되는 문제: 한 계정에서 생성된 프라이빗 로케이션은 기본적으로 다른 계정에서 사용할 수 없으므로 각 계정은 동일한 네트워크에 대해 전용 작업 관리자를 갖게 됩니다 ― 인프라, 비용 및 유지 관리가 중복됩니다. 공유를 사용하면 하나의 로케이션이 여러 계정에 서비스를 제공할 수 있습니다.
공유는 로케이션별로 제어되므로 인프라에 작업을 보낼 수 있는 계정을 결정할 수 있습니다.
shared을(를) true (으)로 설정하면 조직의 모든 계정에서 해당 위치를 사용할 수 있습니다.
상위 계정에서 생성된 로케이션은 하위 계정에서 사용할 수 있습니다. 하위 계정에서 생성된 로케이션은 해당 계정에 비공개로 유지됩니다.
다른 계정의 모니터가 여전히 해당 위치를 사용 중인 경우 위치 공유를 해제할 수 없습니다 ― 먼저 해당 모니터를 마이그레이션하십시오.
해결되는 문제: 인증된 여정을 테스트하려면 실제 크리덴셜이 필요하지만, 이를 스크립트에 넣으면 스크립트나 확인 결과를 읽을 수 있는 모든 사람에게 노출됩니다. 암호화된 볼트는 시크릿을 사용할 수는 있지만 읽을 수는 없게 유지하며, 하나의 값을 교체하면 모든 모니터가 한 번에 업데이트됩니다.
$secure.MY_KEY을(를) 사용하여 스크립트에 저장된 시크릿을 참조하십시오.
미사용 시 AES-GCM 256비트 암호화를 사용하며, AWS Key Management Service (KMS)이(가) 키를 관리합니다. 값을 다시 읽을 수는 없으며 ― 참조만 할 수 있습니다.
뉴렐릭은 모든 결과 및 알림에서 값을 스크러빙하고 ― 퍼센트 인코딩된 형식을 포함하여 ― _SECURECREDENTIAL_(으)로 대체합니다.
스크립팅된 브라우저, API 및 단계 모니터에서 사용할 수 있습니다. 계정당 1,000개의 자격 증명으로 제한됩니다. 관리자는 생성, 보기, 삭제 및 사용 권한을 제어합니다.
중요
프라이빗 로케이션에서 실행 중인 모니터가 침해된 경우, 보안 자격 증명을 교체하고 프라이빗 로케이션 키를 교체하십시오.
해결되는 문제: 공공 부문 및 규제 대상 워크로드는 FedRAMP 요구 사항을 충족하는 서비스에서만 실행할 수 있으며, 그렇지 않으면 평가가 시작되기도 전에 모니터링 도구가 제외됩니다.
신세틱 모니터링이 FedRAMP 프로그램에 부합하는 방식은 다음과 같습니다:
뉴렐릭은 FedRAMP 인증(Moderate)을 받았으며, 신세틱 모니터링은 범위 내에 있습니다 ― 범위 외 서비스 목록에 포함되어 있지 않습니다.
별도의 gov- 신세틱스 Horde 엔드포인트는 없습니다. 뉴렐릭의 엔드포인트 규칙에 따라, 엔드포인트가 별도로 나열되지 않고 범위를 벗어나지 않는 서비스는 표준 엔드포인트에서 FedRAMP 요구 사항을 충족합니다. FedRAMP 계정의 프라이빗 로케이션 SJM은 표준 Horde 엔드포인트를 사용합니다.
고객 의무에는 뉴렐릭 승인 계정, Data Plus가 포함된 엔터프라이즈 에디션(또는 승인된 대안), FedRAMP 지정 엔드포인트로 설정된 에이전트 및 서비스, FedRAMP 승인 기능만 사용하는 것이 포함됩니다. FedRAMP는 하위 계정에 상속됩니다.
해결되는 문제: 기본 런타임에 없는 프로토콜, cloud SDK 또는 데이터 형식에 대한 타사 패키지를 가져올 수 있도록 하여 모니터링되지 않는 격차와 무분별한 툴 확장을 방지합니다.
스크립트된 API 및 브라우저 모니터에서 require()와(과) 함께 사용할 자체 npm 패키지(호스팅 또는 로컬)를 번들로 묶으십시오.
루트가 package.json인 디렉터리를 제공하면 SJM이 시작 시 npm install을(를) 실행합니다.
/var/lib/newrelic/synthetics/modules에 마운트하십시오(도커/Podman, 읽기/쓰기). Kubernetes에서는 global.customNodeModules.customNodeModulesPath을(를) 통해 PersistentVolume (파드 간에 공유되는 경우 ReadWriteMany)을(를) 사용하십시오.
해결하는 문제: 단일 작업 관리자는 고정된 처리량 한도를 가지므로, 모니터 수가 증가함에 따라 대기열이 밀리고 검사가 늦게 실행되거나 전혀 실행되지 않아 ― 조용히 커버리지를 감소시킵니다. 스케일 아웃은 용량과 장애 조치 기능을 추가합니다.
프라이빗 로케이션은 모니터링 로드에 맞춰 확장됩니다:
작업 유형: 헤비웨이트 작업(단순 및 스크립트 브라우저, 스크립트 API)은 동시 작업당 대략 하나의 CPU 코어를 사용합니다. 라이트웨이트 작업(ping)은 각각 전체 코어가 아닌 워커 스레드 풀에서 실행됩니다.
SJM당 처리량: 설계상 분당 15개의 헤비웨이트 작업과 분당 75개의 핑 검사로 제한됩니다. 성능에 영향을 미치는 요인에 대한 자세한 내용은 헤비웨이트 작업, 핑 작업을 참조하십시오.
스케일 아웃(수평): 동일한 프라이빗 로케이션 키를 사용하여 더 많은 SJM을 배포하십시오. 작업은 이들 간에 로드 밸런싱되고 처리량이 추가되며 페일오버를 확보할 수 있습니다.
스케일 업(수직): 호스트에 CPU와 메모리를 추가하거나, Helm 차트에서 각 런타임의 크기를 독립적으로 조정하십시오(API 및 브라우저 런타임의 경우 parallelism/completions, 핑의 경우 replicaCount).
상태 및 옵저버빌리티: 각 SJM에는 상태 표시기가 표시됩니다. NRQL 이벤트 SyntheticsPrivateLocationStatus 및 SyntheticsPrivateMinion은(는) 대기열 및 리소스 메트릭을 노출하며, 뉴렐릭은 사전 구축된 "신세틱스 작업 관리자" 대시보드를 제공합니다.
해결되는 문제: 수동으로 로케이션을 생성하고 설정하는 것은 팀과 환경 전반으로 확장되지 않으며, 수동으로 구축된 설정은 시간이 지남에 따라 달라집니다. 이를 코드로 관리하면 모니터링을 재현하고 검토할 수 있습니다.
프로그래밍 방식으로 프라이빗 로케이션을 생성하고 관리할 수 있습니다:
NerdGraph API:syntheticsCreatePrivateLocation, syntheticsUpdatePrivateLocation, syntheticsPurgePrivateLocationQueue 및 syntheticsDeletePrivateLocation와 보안 자격 증명 뮤테이션. 위치를 생성하면 guid이(가) 반환됩니다.
Terraform:newrelic_synthetics_private_location 리소스(필수 name 및 description, 선택 사항 shared 및 verified_script_execution). SJM에 제공하는 key을(를) 내보내므로, 단일 파이프라인에서 로케이션을 프로비저닝하고 런타임을 연결할 수 있습니다.