중요
2024년 8월 26일부터 공개 또는 위치 위치에서 구형 런타임을 사용하여 새 모니터를 더 이상 생성할 수 없습니다.
2024년 10월 22일에 컨테이너화된 미니언(분당권수) 및 이것이 지원하는 구형 신세틱스 손잡이 버전의 지원이 종료 됩니다. 부동 위치 모니터의 성능 저하를 방지하려면 권장되는 마이그레이션 단계를 검토하십시오.
이 문서는 컨테이너화된 프라이빗 미니언 (CPM) 구성 과정을 안내합니다.
다음을 수행하여 CPM을 사용자 정의할 수 있습니다.
- 환경 변수를 사용하여 컨테이너화된 프라이빗 미니언을 구성하세요.
- 스크립트 API 또는 스크립트 브라우저 모니터에 대한 사용자 정의 모듈을 설정합니다.
- 영구 데이터 저장소 로 출시 데이터를 보존합니다.
귀하는 CPM 파일을 수정할 수 없으며 New Relic은 귀하가 수정한 사항에 대해 책임을 지지 않습니다.
환경변수를 이용한 설정
환경 변수를 사용하면 특정 환경 및 기능 요구 사항을 충족하도록 CPM 구성을 미세 조정할 수 있습니다.
볼륨 마운트 지침
모든 디렉터리 및 파일 must 에는 읽기/쓰기 권한이 있는 3729 그룹 소유권이 할당됩니다. 이렇게 하면 uid: 1000 및 gid: 3729 사용하는 Runner가 마운트된 모든 볼륨에 액세스할 수 있습니다. 그러나 미니언은 루트(uid: 0) 또는 [2000, 4000] 범위(포함) 사이의 모든 uid 로 실행될 수 있습니다. 자세한 내용은 Kubernetes 또는 Docker 에서 루트가 아닌 사용자 로 실행을 참조하세요.
Docker
- 디렉토리는 내에서
-v인수를 지정하여 컨테이너에 볼륨으로 마운트됩니다.docker run - 예를 들어,
docker run ... -v /path/to/src:/path/to/dest:rw
Kubernetes
kubectl cp사용하여 영구 볼륨(PV)에 디렉터리를 추가할 수 있습니다. 그러나 파일 권한이 적절하게 설정되어 있는 한 대체 접근 방식이 지원됩니다.- 예를 들어,
kubectl cp /path/to/src <POD_NAME>:/path/to/dest은 지정된 포드의 각 PV에 디렉토리를 추가합니다. - 각 PV에는 별도의 디렉토리 사본이 있어야 합니다. 예를 들어 n개의 미니언 복제본이 있는 클러스터에는 각각 고유한 디렉토리 사본이 있는 n개의 PV가 있어야 합니다.
- 미니언을 부팅하기 전에 디렉터리와 파일을 추가해야 합니다. 그렇지 않으면 업데이트를 감지하기 위해 미니언을 다시 시작해야 합니다.
커스텀 노드 모듈
커스텀 노드 모듈은 분당 호출 수 전용입니다. 이를 통해 임의의 노드 모듈 세트를 제공하고 이를 신세틱 모니터링의 스크립트 모니터에 사용할 수 있습니다.
모듈을 설정하려면:
npm 공식 지침에 따라 디렉토리 루트에
package.json을 포함하는 디렉토리를 만듭니다.dependencies필드에 포함된 모든 항목은 시작 시 CPM에 의해 설치되며 해당 개인 미니언에서 모니터를 실행할 때 사용할 수 있게 됩니다.선택적으로 루트 수준
package.json을 Node.js 버전별 디렉터리로 재정의할 수 있습니다. 이렇게 하면 런타임의 Node.js 버전 이 더 이상 종속성과 호환되지 않는 경우 모니터 런타임별로 스크립트를 업데이트할 수 있습니다. 아래에서 이에 대한 예를 참조하십시오.사용자 정의 모듈 디렉토리와
package.json을 생성하면 이를 Docker 및 Kubernetes용 CPM에 적용할 수 있습니다.모듈이 제대로 설치되었는지 또는 오류가 있는지 확인하려면
"... Initialization of Custom Modules ..."에 대한 CPM 로그 를 확인하십시오. npm 설치 로그가 표시됩니다.
이제 이 개인 위치로 보내는 모니터의 스크립트 에 "require('async');" 을(를) 추가할 수 있습니다.
변화 package.json
로컬 및 호스팅 모듈과 함께 Node.js 모듈을 사용할 수도 있습니다. CPM에서 사용하는 맞춤 모듈을 변경하려면 package.json를 수정하고 CPM을 재부팅하세요. 재부팅하는 동안 설정 변경 사항을 감지한 다음 정리하고 다시 설치합니다.
주의
로컬 모듈: package.json 에는 모든 로컬 모듈이 포함될 수 있지만 이러한 모듈은 사용자 정의 모듈 디렉토리 아래 트리 내부에 있어야 합니다. 트리 외부에 저장하면 초기화 프로세스가 실패하고 CPM을 시작한 후 도커 로그 에 오류 메시지가 표시됩니다.
영구 데이터 저장
CPM은 상태 비저장 애플리케이션이며 기본적으로 이전 요청이나 세션의 정보를 보존하지 않습니다. 그러나 영구 데이터 저장을 활성화하여 실행 사이에 데이터를 보존할 수 있습니다. 예를 들어 미니언이 자신을 식별하는 방법(예: Minion_ID )을 영구적으로 설정하고 이를 사용하여 해당 데이터를 생성한 정확한 미니언과 연결할 수 있습니다.
Docker에서 영구 데이터 저장소를 설정하려면:
디렉터리를 만듭니다.
/var/lib/newrelic/synthetics에 디렉토리를 마운트하여 CPM을 시작합니다.예시:
bash$docker run ... -v /example-permanent-dir:/var/lib/newrelic/synthetics:rw ...
Kubernetes에서 영구 데이터 저장소를 설정하려면 다음 안내를 따르세요.
CPM을 시작하고 설치 중에 명령줄이나 YAML 파일에서
persistence.permanentData구성 값의 값을 설정합니다. 값은 데이터를 저장할 미니언의 영구 볼륨에 대한 하위 경로를 지정해야 합니다.예시:
bash$helm install ... --set persistence.permanentData=PERMANENT_DATA_SUBPATH ...
스크립팅된 모니터에 대한 사용자 정의 환경 변수
컨테이너화된 개인 미니언을 사용하면 스크립팅된 모니터에서 사용할 환경 변수를 구성할 수 있습니다. 이러한 변수는 CPM에서 로컬로 호스팅되며 $env.USER_DEFINED_VARIABLES 을 통해 액세스할 수 있습니다. 사용자 정의 변수를 설정하는 방법에는 JSON 파일을 마운트하거나 시작 시 CPM에 환경 변수를 제공하는 두 가지 방법이 있습니다. 둘 다 제공되는 경우 CPM은 환경에서 제공된 값만 사용합니다.
스크립트에서 사용자 정의 환경 변수에 액세스
구성된 사용자 정의 환경 변수를 참조하려면 예약된 $env.USER_DEFINED_VARIABLES 다음에 점 표기법으로 지정된 변수 이름을 사용하십시오.
예를 들어, $env.USER_DEFINED_VARIABLES.MY_VARIABLE
주의
사용자 정의 환경 변수는 로그에서 삭제되지 않습니다. 민감한 정보의 경우 보안 자격 증명 기능을 사용하는 것이 좋습니다.