컨테이너 인사이트 에이전트 관리
컨테이너 인사이트는 Linux용 Log Analytics 에이전트의 컨테이너화된 버전을 사용합니다. 초기 배포 후에 수명 주기 동안 수행해야 하는 루틴 또는 선택적 작업이 있습니다. 이 문서에서는 에이전트를 수동으로 업그레이드하고 특정 컨테이너에서 환경 변수 컬렉션을 사용하지 않도록 설정하는 방법을 설명합니다.
참고 항목
AKS 클러스터를 이미 배포하고 Azure CLI 또는 Resource Manager 템플릿을 사용하여 모니터링을 사용하도록 설정한 경우 kubectl
를 사용하여 에이전트를 업그레이드, 삭제, 재배포 또는 배포할 수 없습니다. 템플릿을 클러스터와 동일한 리소스 그룹에 배포해야 합니다.
컨테이너 인사이트 에이전트 업그레이드
컨테이너 인사이트는 Linux용 Log Analytics 에이전트의 컨테이너화된 버전을 사용합니다. 새로운 버전의 에이전트가 릴리스되면 AKS(Azure Kubernetes Service) 및 Azure Arc 지원 Kubernetes에 호스트된 관리되는 Kubernetes 클러스터에서 에이전트가 자동으로 업그레이드됩니다.
AKS에 호스트되는 클러스터에서 에이전트 업그레이드가 실패하는 경우 이 문서에서는 에이전트를 수동으로 업그레이드하는 프로세스도 설명합니다. 릴리스된 버전을 따르려면 에이전트 릴리스 알림을 참조하세요.
AKS 클러스터에서 에이전트 업그레이드
AKS 클러스터에서 에이전트를 업그레이드하는 프로세스는 두 단계로 구성됩니다. 첫 번째 단계는 Azure CLI를 사용하여 컨테이너 인사이트로 모니터링을 사용하지 않도록 설정하는 것입니다. Kubernetes 클러스터에서 컨테이너 정보 사용 중지 문서에 설명된 단계를 따릅니다. Azure CLI를 사용하면 솔루션 및 작업 영역에 저장된 해당 데이터에 영향을 주지 않고 클러스터의 노드에서 에이전트를 제거할 수 있습니다.
참고 항목
이 유지 관리 작업을 수행하는 동안 클러스터의 노드는 수집된 데이터를 전달하지 않습니다. 성능 보기에는 에이전트를 제거하고 새 버전을 설치한 시간 사이의 데이터가 표시되지 않습니다.
두 번째 단계는 새 버전의 에이전트를 설치하는 것입니다. 이 프로세스를 완료하려면 Azure CLI를 사용하여 모니터링 사용에 설명된 단계를 따릅니다.
모니터링을 다시 사용하도록 설정한 후에 해당 클러스터의 업데이트된 상태 메트릭이 나타나기까지는 15분 정도 소요됩니다. 에이전트가 성공적으로 업그레이드되었는지 확인하는 방법에는 두 가지가 있습니다.
kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}'
명령을 실행합니다. 반환된 상태에서 출력의 컨테이너 섹션에 있는 Azure Monitor 에이전트의 이미지 아래에 값을 확인합니다.- 노드 탭에서 클러스터 노드를 선택합니다. 오른쪽에 있는 속성 창에서 에이전트 이미지 태그 아래의 값을 확인합니다.
표시된 에이전트 버전은 릴리스 기록 페이지에 나열된 최신 버전과 일치해야 합니다.
하이브리드 Kubernetes 클러스터에서 에이전트 업그레이드
실행되는 Kubernetes 클러스터에서 에이전트를 업그레이드하려면 다음 단계를 수행합니다.
- AKS 엔진을 사용하여 Azure에서 호스트되는 자체 관리되는 Kubernetes 클러스터입니다.
- AKS 엔진을 사용하여 Azure Stack 또는 온-프레미스에서 호스트되는 자체 관리되는 Kubernetes 클러스터입니다.
Log Analytics 작업 영역이 상업용 Azure에 있는 경우 다음 명령을 실행합니다.
$ helm upgrade --set omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<my_prod_cluster> incubator/azuremonitor-containers
Log Analytics 작업 영역이 21Vianet에서 운영하는 Microsoft Azure에 있는 경우 다음 명령을 실행합니다.
$ helm upgrade --set omsagent.domain=opinsights.azure.cn,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
Log Analytics 작업 영역이 Azure US Government에 있는 경우 다음 명령을 실행합니다.
$ helm upgrade --set omsagent.domain=opinsights.azure.us,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
컨테이너에서 환경 변수 컬렉션 사용 안 함
컨테이너 인사이트는 Pod에서 실행 중인 컨테이너에서 환경 변수를 수집하고 컨테이너 보기에서 선택한 컨테이너의 속성 창에 표시합니다. Kubernetes 클러스터를 배포하는 동안 또는 이후에 환경 변수 AZMON_COLLECT_ENV
를 설정하여 특정 컨테이너에 대한 수집을 사용하지 않도록 설정하면 이 동작을 제어할 수 있습니다. 이 기능은 에이전트 버전 ciprod11292018 이상에서 사용할 수 있습니다.
새 컨테이너 또는 기존 컨테이너에서 환경 변수 수집을 사용하지 않도록 설정하려면 Kubernetes 배포 YAML 구성 파일에서 AZMON_COLLECT_ENV
변수를 False
값으로 설정합니다.
- name: AZMON_COLLECT_ENV
value: "False"
다음 명령을 실행하여 Azure Red Hat OpenShift 이외의 Kubernetes 클러스터에 변경 내용을 적용합니다. kubectl apply -f <path to yaml file>
. ConfigMap을 편집하고 Azure Red Hat OpenShift 클러스터에 대해 이 변경 내용을 적용하려면 다음 명령을 실행합니다.
oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging
이 명령은 기본 텍스트 편집기를 엽니다. 변수를 설정한 후 편집기에서 파일을 저장합니다.
구성 변경 내용이 적용되었는지 확인하려면 컨테이너 인사이트의 컨테이너 보기에서 컨테이너를 선택합니다. 속성 창에서 환경 변수를 확장합니다. 섹션에는 이전에 만들어진 변수인 AZMON_COLLECT_ENV=FALSE
만 표시되어야 합니다. 다른 모든 컨테이너의 경우 환경 변수 섹션에 검색된 모든 환경 변수가 나열되어야 합니다.
환경 변수 검색을 다시 사용하도록 설정하려면 이전에 사용한 것과 동일한 프로세스를 적용하고 값을 False
에서 True
로 변경합니다. 그런 다음 kubectl
명령을 다시 실행하여 컨테이너를 업데이트합니다.
- name: AZMON_COLLECT_ENV
value: "True"
컨테이너 인사이트 에이전트 버전의 의미 체계 버전 업데이트
컨테이너 인사이트는 이미지 버전과 명명 규칙을 [semver 형식](https://semver.org/)으로 변경했습니다. SemVer는 개발자가 개발 단계에서 소프트웨어에 적용된 모든 변경 내용을 추적하고 소프트웨어 버전 관리가 일관되고 의미가 있도록 보장합니다. 이전 버전은 ciprod<timestamp>-<commitId> 및 win-ciprod<timestamp>-<commitId> 형식이었습니다. Semver 형식을 사용하는 첫 번째 이미지 버전은 Linux의 경우 3.1.4이고 Windows의 경우 win-3.1.4입니다.
Semver는 다음 제약 조건을 따르는 MAJOR.MINOR.PATCH 형식으로 정의된 유니버설 소프트웨어 버전 관리 스키마입니다.
- 호환되지 않는 API 변경을 수행하는 경우 MAJOR 버전을 향상시킵니다.
- 이전 버전과 호환되는 방식으로 기능을 추가하는 경우 MINOR 버전을 향상시킵니다.
- 이전 버전과 호환되는 버그 수정을 수행할 때 PATCH 버전을 향상시킵니다.
Kubernetes 및 OSS 에코시스템이 부상함에 따라 컨테이너 인사이트는 K8s 권장 표준에 따라 semver 이미지를 사용하도록 마이그레이션합니다. 여기서 각 부 버전이 도입되면 모든 호환성이 손상되는 변경을 새로운 Kubernetes 릴리스마다 공개적으로 문서화해야 합니다.
중복 에이전트 복구
2022년 10월 이전에 사용자 지정 방법을 사용하여 컨테이너 인사이트를 수동으로 사용하도록 설정한 경우 여러 버전의 에이전트가 함께 실행될 수 있습니다. 이 중복을 제거하려면 아래 단계를 따릅니다.
omsagent 컨테이너의 메모리 및 CPU 제한과 같은 사용자 지정 설정에 대한 세부 정보를 수집합니다.
ama-log의 기본 리소스 제한을 검토하고 요구 사항을 충족하는지 확인합니다. 그렇지 않은 경우 메모리/CPU 제한을 조사하고 전환하는 데 도움이 되는 지원 항목을 만들어야 할 수도 있습니다. 이는 이전에 일부 고객이 겪었고 OOMKilled 예외가 발생했던 규모 제한 사항 문제를 해결하는 데 도움이 될 수 있습니다.
OS 컨트롤러 이름 기본 제한 Linux ds-cpu-limit-linux 500m Linux ds-memory-limit-linux 750Mi Linux rs-cpu-limit 1 Linux rs-memory-limit 1.5Gi Windows ds-cpu-limit-windows 500m Windows ds-memory-limit-windows 1Gi 이전 온보딩의 리소스 정리:
이전에 Helm 차트를 사용하여 온보딩한 경우:
다음 명령을 사용하여 네임스페이스 전체의 모든 릴리스를 나열합니다.
helm list --all-namespaces
다음 명령을 사용하여 컨테이너 인사이트용으로 설치된 차트를 정리합니다.
helm uninstall <releaseName> --namespace <Namespace>
이전에 yaml 배포를 사용하여 온보딩한 경우:
다음 명령을 사용하여 이전 사용자 지정 배포 yaml 파일을 다운로드합니다.
curl -LO raw.githubusercontent.com/microsoft/Docker-Provider/ci_dev/kubernetes/omsagent.yaml
다음 명령을 사용하여 이전 omsagent 차트를 정리합니다.
kubectl delete -f omsagent.yaml
Kubernetes 클러스터에서 컨테이너 인사이트 사용 안 함의 지침에 따라 컨테이너 인사이트를 사용하지 않도록 설정하여 모든 관련 리소스를 정리합니다.
Kubernetes 클러스터에서 컨테이너 인사이트 사용의 지침을 사용하여 컨테이너 인사이트에 다시 온보딩합니다.
다음 단계
에이전트를 업그레이드할 때 문제가 발생하면 문제 해결 가이드를 검토하여 지원을 받으세요.