AutoTrace 웹훅 구성

AutoTrace 의 Webhook 버전 고정

AutoTrace 부터 시작하여 Webhook 버전 1.295.7

웹훅 버전 1.295.7 에서 AutoTrace Webhook 버전을 고정하기 위한 새로운 플래그가 도입되었습니다. 필요한 경우, ` AutoTrace ` 웹훅 배포 시 `--version --set global.version=<version> ` 플래그를 사용하여 버전을 수동으로 지정할 수 있습니다. Instana 의 모든 AutoTrace 웹훅 릴리스에 대한 자세한 내용은 Instana autotrace 웹훅을 참조하세요.

이전에는 SHA 해시를 사용하여 이미지 버전을 고정했기 때문에 여러 이미지 간 버전을 식별하고 정렬하기 어려웠습니다. 웹훅 1.295.7 에서 시작하여, global.version 플래그를 설정함으로써 단일 버전 값으로 두 이미지를 모두 제어할 수 있습니다. 플래그는 기본적으로 설정되어 있습니다. 설정 시, global.version 가 우선하여 및 webhook.image 에 정의된 모든 버전 또는 autotrace.instrumentation.image SHA를 재정의합니다. 가 global.version 설정되지 않은 경우, 또는 webhook.imageautotrace.instrumentation.image 정의된 값이 사용됩니다.

AutoTrace 이전 버전 Webhook 버전 1.295.7

1.295.7 버전 이전의 차트에서 AutoTrace Webhook 버전을 고정하려면 웹훅 및 계측 이미지에 대한 개별 이미지 플래그를 사용하면 됩니다. 예를 들어, 고정할 버전이 1.294.0 인 경우, 두 가지 플래그를 사용하여 이를 --set webhook.image="containers.instana.io/instana/release/agent/instana-autotrace-webhook:1.294.0" --set autotrace.instrumentation.image="icr.io/instana/instrumentation:1.294.0"설정할 수 있습니다. 이 접근 방식은 더 이상 권장되지 않으며, 대신 global.version flag를 사용해야 합니다.

추적기 비활성화

다음 추적기를 비활성화할 수 있습니다:

  • .NET Core (넷코어)
  • Python (파이썬)
  • Node.js (Node.js)
  • Ruby (루비)

.NET Core 추적 기능이 활성화된 경우, 다른 추적기( Python, Node.js, Ruby )는 비활성화하지 마십시오. 이러한 추적 기능을 비활성화하면 .NET Core 의 추적 기능에 영향을 미칠 수 있습니다.

개별 기술 추적을 비활성화하려면 다음 예시와 같이 AutoTrace 웹훅 설치 명령어에 해당 --set autotrace.<technology>.enabled=false 줄을 추가하십시오. 추적을 비활성화하려는 기술로 를 <technology> 대체하십시오.

helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
  --repo https://agents.instana.io/helm instana-autotrace-webhook \
  --set webhook.imagePullCredentials.password=<download_key> \
  --set autotrace.ruby.enabled=false \
 

역할 기반 접근 제어 구성

AutoTrace 웹훅을 로 보호되고 에 ClusterRoleServiceAccount 일치하는 에 배포하려면, ClusterRoleBindingHelm 차트를 배포할 때 rbac.enabled=true 플래그를 설정하십시오.

역할 기반 액세스 제어 외에도, 포드 보안 정책을 사용하는 경우 ` Helm ` 인수에 다음을 rbac.psp.enabled=true 추가하십시오.

내장된 Pod 보안 승인 컨트롤러를 통해 Pod 보안 표준을 적용할 수도 있습니다. Pod 보안 승인에 대한 자세한 내용은 Kubernetes 문서에서 확인하세요.

Helm 설치 시 webhook.pod.hostNetwork=falserbac.enabled=false 플래그를 설정하면, 다음 명령어를 실행하여 제한적인 Pod Security Standard로 AutoTrace 웹훅을 실행할 수 있습니다:

kubectl label --overwrite ns instana-autotrace-webhook pod-security.kubernetes.io/enforce=restricted
 

컨테이너 포트 설정

AutoTrace 웹훅 포드를 호스트 네트워크에 호스팅하고, Kubernetes API 서버에서 이 포드에 접근할 수 있도록 올바르게 구성해야 합니다 (apiserver).

기본적으로 컨테이너는 포트 에 42650바인딩됩니다.

포트가 이미 42650 사용 중인 경우, AutoTrace 웹훅이 중단됩니다. 이 문제를 피하려면 속성을 webhook.pod.port 사용하여 포트를 변경할 수 있습니다.

계측 기능의 선택적 사용 또는 비활성화

AutoTrace 웹훅은 모든 포드 내의 모든 컨테이너를 모니터링합니다.

그러나 어떤 리소스에 계측을 적용할지 더 세밀하게 제어할 수 있습니다. 선택된 리소스만 계측되도록 지정하려면, 먼저 ` Helm ` 배포 중에 `-arg` autotrace.opt_in=true 인수를 추가하십시오.

그런 다음 필요한 포드, 복제 세트, 상태 유지 세트, 데몬 세트 및 배포에 instana-autotrace: "true" 레이블을 추가하여 계측해야 할 리소스를 지정하십시오. AutoTrace 웹훅은 이 레이블을 사용하여 필요한 리소스를 식별하고 이를 변환합니다. 또한 네임스페이스 수준에서 레이블을 설정할 수 있으며, 해당 네임스페이스 내의 모든 리소스에 계측이 적용됩니다.

참고: ` AutoTraceautotrace.opt_in` 웹훅은 `` instana-autotrace: "false" 레이블을 가진 네임스페이스 내의 포드나 리소스를 변경하지 않습니다.

라벨은 instana-autotrace: "false" DaemonSets, Deployments, DeploymentConfigs, ReplicaSets, StatefulSets, 및 네임스페이스의 메타데이터에서, 중첩된 포드 템플릿과 독립형 포드에서와 마찬가지로 존중됩니다.

네임스페이스 무시

구성 autotrace.exclude.namespaces 설정을 사용하여 전체 네임스페이스를 자동 계측에서 제외할 수 있습니다.

참고: instana-autotrace: "true" 라벨이 있는 리소스는 네임스페이스 제외와 관계없이 계측됩니다.

라벨은 instana-autotrace DaemonSets, Deployments, DeploymentConfigs, ReplicaSets, 및 StatefulSets, 의 메타데이터에서 중첩된 포드 템플릿 및 독립형 포드와 마찬가지로 존중됩니다.

자원 무시

라벨을 instana-autotrace: "false" 추가하여 개별 리소스를 자동 계측에서 제외할 수 있습니다. AutoTrace 웹훅은 다른 설정과 관계없이 이 레이블이 지정된 리소스를 무시합니다.

라벨은 instana-autotrace DaemonSets, Deployments, DeploymentConfigs, ReplicaSets, 및 StatefulSets, 의 메타데이터에서 중첩된 포드 템플릿 및 독립형 포드와 마찬가지로 존중됩니다.

상위 레벨 자원 변이

1.304.6 부터, Instana 의 AutoTrace 웹훅은 기본적으로 포드(pod)와 리소스 리스트( ConfigMaps )만 변환합니다. 이로 인해 업데이트와 제거가 더 쉬워집니다. 새로운 웹훅 포드가 실행되면 상위 레벨 리소스가 재시작될 수 있으며, 이로 인해 새로운 포드가 호출되어 새로운 계측 이미지로 변형될 것입니다.

상위 레벨 리소스(배포, 데몬셋, 복제셋, 상태 유지 셋, 배포 구성)를 직접 변경하는 이전 동작이 필요한 경우 다음 autotrace.enableHigherLevelResourceMutation=true 플래그를 사용하여 활성화할 수 있습니다:

helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
  --repo https://agents.instana.io/helm instana-autotrace-webhook \
  --set webhook.imagePullCredentials.password=<download_key> \
  --set autotrace.enableHigherLevelResourceMutation=true
 

NGINX 및 ingress-nginx에 대한 웹훅 계측 활성화

NGINX 과 ingress-nginx 자동 계측을 활성화하려면 레이블을 설정하여 autotrace.ingress_nginx.enabled=true옵트인해야 합니다.

진행하기 전에 AutoTrace 웹훅 문제 해결을 참조하고, 관련 개체가 업데이트되거나 재생성되었는지 확인하십시오.

AutoTrace 웹훅은 45일 지원 정책을 적용한 ingress-nginx Kubernetes 인그레스 컨트롤러 0.34.1 이상 버전을 지원하며, Helm 차트 2.11.2 이상 버전과 호환됩니다.

NGINX 에서 Instana AutoTrace 웹훅을 설정하려면 다음 명령어를 실행하세요:

helm install --create-namespace --namespace instana-autotrace-webhook \
  --repo https://agents.instana.io/helm instana-autotrace-webhook instana-autotrace-webhook \
  --set webhook.imagePullCredentials.password=<download-key> \
  --set autotrace.ingress_nginx.enabled=true

일반 또는 독립형 NGINX 의 위치를 nginx_status 수동으로 추가해야 합니다. 그러나 ingress-nginx의 경우, ` nginx_status location`은 AutoTrace 웹훅에 의해 자동으로 추가됩니다.

Ingress NGINX 를 계측하려면 배포 및 ConfigMap 변수가 필요합니다. 따라서, Ingress( NGINX )를 설치하기 전에 Instana AutoTrace 웹훅을 먼저 설치하십시오. Ingress NGINX 가 이미 설치되어 있다면 다음 단계를 수행하십시오:

  1. 서비스에 영향을 주지 않고 기존 배포를 삭제하고 새 배포를 생성하려면 다음 명령을 실행하십시오:

    kubectl get deploy ingress-nginx-deployment -o yaml > your_deployment_backup.yaml # Back up your deployment config
    kubectl delete deploy your_deployment_name --cascade=orphan # Delete the existing deployment, cascade option ensures that pods are not deleted.
    kubectl apply -f your_deployment_backup.yaml # Re-apply the deployment config
  2. ConfigMap, 를 교체하려면 다음 명령을 실행하십시오:

    kubectl get cm ingress-nginx-configmap -o yaml > your_configmap_backup.yaml # Back-up your configmap
    kubectl replace --force -f your_configmap_backup.yaml # replace the configmap to trigger mutation webhook API

NGINX 서버 모니터링

NGINX 서버를 종합적으로 모니터링하려면, Instana 에서 NGINX 상태 엔드포인트가 활성화되어 있어야 합니다. AutoTrace 의 웹훅은 NGINX 의 배포 유형에 따라 이를 다르게 처리합니다:

  • NGINX Ingress 컨트롤러 : ` AutoTrace ` 웹훅은 ` autotrace.ingress_nginx.enabled parameter`가 true`.`로 설정되면 상태 엔드포인트를 자동으로 구성합니다.
  • 독립형 NGINX : NGINX 구성 파일에서 위치를 nginx_status 수동으로 설정해야 합니다.
  • NGINX 추가 : 독립형 NGINX 와 마찬가지로, 상태 엔드포인트에 대해서는 수동 구성이 필요합니다.

NGINX 상태 엔드포인트를 수동으로 활성화하는 방법과 메트릭 수집 및 분산 추적 설정을 포함한 NGINX 서버 모니터링에 대한 자세한 내용은 ‘ NGINX 모니터링’을 참조하십시오.

Instana AutoTrace 웹훅은 독립형 NGINX 에서 ConfigMap 의 사용을 지원하지 않습니다. 자세한 내용은 ‘ NGINX 모니터링’을 참조하십시오.

IBM MQ 및 ACE (사용 중단 예정) 에 대한 웹훅 계측 활성화

참고:
  • Instana IBM MQ 에 대한 Autotrace 웹훅 지원은 더 이상 권장되지 않습니다. 2027년 5월 31일부터 Instana 은 공식적으로 지원을 종료하며, 해당 기능의 지원 종료(EOL)를 선언합니다. 이 기능은 IBM MQ 연산자로 대체됩니다
  • Instana IBM ACE 에 대한 Autotrace 웹훅 지원은 더 이상 사용되지 않습니다. 2027년 5월 31일부터 Instana 는 공식적으로 지원을 종료하고 해당 기능의 수명 종료(EOL)를 선언합니다. 이는 2026년 4월 30일부로 확장 지원 기간이 종료된 ‘ IBM ACE 11’ 제품 수명 주기i 에 부합하는 조치입니다. 자세한 내용은 ‘사용 중단된 기능’을 참조하십시오.

IBM MQ 와 ACE 자동 계측을 활성화하려면 및 autotrace.ibmmq.enable=true 라벨을 설정하여 autotrace.ace.enable=true옵트인해야 합니다. AutoTrace 웹훅은 IBM Cloud Pak for Integration 에서 실행 중인 IBM MQ 및 ACE만 지원합니다.

IBM Cloud Pak for Integration 가 Red Hat OpenShift 클러스터에서 실행되므로, Helm 배포 시에도 openshift.enabled=true 다음을 설정해야 합니다.

InstanaAutoTrace 웹훅을 설정하고 IBM MQ 및 ACE 자동 계측 기능을 활성화하려면 다음 명령어를 입력하세요:

helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
  --repo https://agents.instana.io/helm instana-autotrace-webhook \
  --set webhook.imagePullCredentials.password=<download_key> \
  --set openshift.enabled=true \
  --set autotrace.ibmmq.enabled=true \
  --set autotrace.ace.enabled=true
 

Node.js ECMAScript 모듈

애플리케이션에서 ECMAScript 모듈을 사용하는 경우 설정을 autotrace.nodejs.application_type 사용하십시오. AutoTrace 웹훅의 최신 버전을 사용하고 있는지 확인하려면 “ AutoTrace 웹훅 업데이트”를 참조하세요.

  • autotrace.nodejs.application_type ( module_v2Node.js 버전 18.19 이후):

      helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
        --repo https://agents.instana.io/helm instana-autotrace-webhook \
        --set webhook.imagePullCredentials.password=<download_key> \
        --set autotrace.nodejs.application_type=module_v2
    참고:
    • 해당 module_v1 옵션은 더 이상 사용되지 않습니다.
    • 다음 조건이 모두 충족될 module_v1 때만 설정하십시오 autotrace.nodejs.application_type :
      • 귀하의 애플리케이션은 18.19.0 보다 이전 버전의 Node.js 에서 실행됩니다.
      • AutoTrace 웹훅 또는 이전 버전을 사용 중입니다.
    • 해당 module_v1 옵션은 현재 버전에서 더 이상 지원되지 않으며, 다음 업그레이드 시 제거될 예정입니다. 자세한 내용은 변경 사항 섹션을 참조하십시오.
  • 기본 동작으로 되돌리거나 구성 옵션을 완전히 제거하려면 를 로 autotrace.nodejs.application_type 설정하십시오 commonjs:

    helm install --create-namespace --namespace instana-autotrace-webhook instana-autotrace-webhook \
      --repo https://agents.instana.io/helm instana-autotrace-webhook \
      --set webhook.imagePullCredentials.password=<download_key> \
       --set autotrace.nodejs.application_type=commonjs

필요한 임시 저장 공간 최소화

웹훅은 배포를 변경하고 ` initContainer `를 추가합니다. initContainer 는 지원되는 모든 기술( Node.js, .NET Core, Ruby, Python 및 NGINX )에 대한 계측 파일이 포함된 이미지를 불러온 다음, 해당 파일을 볼륨에 복사합니다. 파일들은 볼륨 마운트(volume mount) 아래의 emptyDirinstana-instrumentation-volumepath /opt/instana/instrumentation/ 볼륨에 저장되어 있습니다. emptyDir 볼륨은 노드의 로컬 파일 시스템에 저장되므로, 계측 파일로 인해 포드의 임시 저장소 사용량이 증가합니다. 계측 파일의 총 크기는 약 300MB입니다. 각 기술별 저장 공간 요구 사항은 다음 표를 참조하십시오:

기술 스토리지 요구사항
libinstana_초기화 5M - 모든 기술에 필수적
IBM MQ 17M
Ruby 151M
IBM App Connect Enterprise 9M
.NET Core 4M
NGINX 66M
Node.js 32M
Python 20M

경우에 따라 클러스터는 특정 기술만 사용할 수 있습니다. 최적화를 위해 설치 과정에서 복사되는 파일을 제한할 수 있습니다. 이는 임시 저장 공간을 줄이고 initContainer 실행 시간을 개선합니다. 필요한 기술만 포함하도록 파일을 제한하려면 다음 단계를 완료하십시오:

  1. 클러스터에서 사용되는 기술을 확인하십시오. 이 예시에서는 Node.js 및 .NET Core 이 선택되었습니다.

  2. Helm 차트 플래그를 사용하는 필수 기술을 명시적으로 활성화하여 웹훅 설치를 구성하십시오. 구문은 다음과 같습니다.

    --set autotrace.instrumentation.manual.<technology>=true
     

    다음 중 하나로 대체하십시오 <techonology> :

    • nodejs
    • 넷코어
    • python
    • ruby
    • nginx

    예를 들어, Node.js 와 .NET Core 를 모두 활성화하려면 다음 플래그를 사용하십시오:

    --set autotrace.instrumentation.manual.nodejs=true --set autotrace.instrumentation.manual.netcore=true
     
  3. helm 차트 설치가 완료되면, 클러스터 워크로드에 새로운 구성이 적용되도록 배포를 다시 생성해야 합니다.

환경 변수 또는 ` Helm ` 차트 플래그에 대한 자세한 내용은 ` Helm ` 값을 참조하십시오.