Udostępnij za pośrednictwem


Zarządzanie agentem usługi Container Insights

Usługa Container Insights używa konteneryzowanej wersji agenta usługi Log Analytics dla systemu Linux. Po początkowym wdrożeniu może być konieczne wykonanie rutynowych lub opcjonalnych zadań w trakcie cyklu życia. W tym artykule wyjaśniono, jak ręcznie uaktualnić agenta i wyłączyć zbieranie zmiennych środowiskowych z określonego kontenera.

Uwaga

Jeśli klaster usługi AKS został już wdrożony i włączono monitorowanie przy użyciu interfejsu wiersza polecenia platformy Azure lub szablonu usługi Resource Manager, nie można użyć kubectl go do uaktualniania, usuwania, ponownego wdrażania ani wdrażania agenta. Szablon należy wdrożyć w tej samej grupie zasobów co klaster.

Uaktualnianie agenta usługi Container Insights

Usługa Container Insights używa konteneryzowanej wersji agenta usługi Log Analytics dla systemu Linux. Po wydaniu nowej wersji agenta agent zostanie automatycznie uaktualniony do zarządzanych klastrów Kubernetes hostowanych w usłudze Azure Kubernetes Service (AKS) i kubernetes z obsługą usługi Azure Arc.

Jeśli uaktualnienie agenta zakończy się niepowodzeniem dla klastra hostowanego w usłudze AKS, w tym artykule opisano również proces ręcznego uaktualniania agenta. Aby postępować zgodnie z wydanymi wersjami, zobacz Ogłoszenia o wersji agenta.

Uaktualnianie agenta w klastrze usługi AKS

Proces uaktualniania agenta w klastrze usługi AKS składa się z dwóch kroków. Pierwszym krokiem jest wyłączenie monitorowania za pomocą usługi Container Insights przy użyciu interfejsu wiersza polecenia platformy Azure. Wykonaj kroki opisane w artykule Wyłączanie szczegółowych informacji o kontenerze w klastrze Kubernetes. Za pomocą interfejsu wiersza polecenia platformy Azure można usunąć agenta z węzłów w klastrze bez wpływu na rozwiązanie i odpowiednie dane przechowywane w obszarze roboczym.

Uwaga

Podczas wykonywania tego działania konserwacyjnego węzły w klastrze nie przesyłają zebranych danych. Widoki wydajności nie będą wyświetlać danych między czasem usunięcia agenta i zainstalowaniem nowej wersji.

Drugim krokiem jest zainstalowanie nowej wersji agenta. Wykonaj kroki opisane w temacie Włączanie monitorowania przy użyciu interfejsu wiersza polecenia platformy Azure, aby zakończyć ten proces.

Po ponownym włączeniu monitorowania może upłynąć około 15 minut, zanim będzie można wyświetlić zaktualizowane metryki kondycji klastra. Istnieją dwie metody weryfikacji pomyślnego uaktualnienia agenta:

  • Uruchom polecenie kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}'. W zwróconym stanie zanotuj wartość w obszarze Obraz dla agenta usługi Azure Monitor w sekcji Kontenery danych wyjściowych.
  • Na karcie Węzły wybierz węzeł klastra. W okienku Właściwości po prawej stronie zanotuj wartość w obszarze Tag obrazu agenta.

Wyświetlona wersja agenta powinna być zgodna z najnowszą wersją wymienioną na stronie Historia wydania.

Uaktualnianie agenta w hybrydowym klastrze Kubernetes

Wykonaj następujące kroki, aby uaktualnić agenta w klastrze Kubernetes uruchomionym w systemie:

  • Klastry Kubernetes zarządzane samodzielnie hostowane na platformie Azure przy użyciu aparatu AKS.
  • Klastry Kubernetes zarządzane samodzielnie hostowane w usłudze Azure Stack lub lokalnie przy użyciu aparatu AKS.

Jeśli obszar roboczy usługi Log Analytics znajduje się na komercyjnej platformie Azure, uruchom następujące polecenie:

$ helm upgrade --set omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<my_prod_cluster> incubator/azuremonitor-containers

Jeśli obszar roboczy usługi Log Analytics znajduje się na platformie Microsoft Azure obsługiwanej przez firmę 21Vianet, uruchom następujące polecenie:

$ 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

Jeśli obszar roboczy usługi Log Analytics znajduje się w usłudze Azure US Government, uruchom następujące polecenie:

$ 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

Wyłączanie zbierania zmiennych środowiskowych w kontenerze

Usługa Container Insights zbiera zmienne środowiskowe z kontenerów uruchomionych w zasobniku i przedstawia je w okienku właściwości wybranego kontenera w widoku Kontenery . To zachowanie można kontrolować, wyłączając kolekcję dla określonego kontenera podczas wdrażania klastra Kubernetes lub po ustawieniu zmiennej środowiskowej AZMON_COLLECT_ENV. Ta funkcja jest dostępna w wersji agenta ciprod1292018 i nowszych.

Aby wyłączyć zbieranie zmiennych środowiskowych w nowym lub istniejącym kontenerze, ustaw zmienną AZMON_COLLECT_ENV z wartością False w pliku konfiguracji YAML wdrożenia kubernetes.

- name: AZMON_COLLECT_ENV  
  value: "False"  

Uruchom następujące polecenie, aby zastosować zmianę do klastrów Kubernetes innych niż Azure Red Hat OpenShift: kubectl apply -f <path to yaml file>. Aby edytować aplikację ConfigMap i zastosować tę zmianę dla klastrów Usługi Azure Red Hat OpenShift, uruchom następujące polecenie:

oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging

To polecenie otwiera domyślny edytor tekstów. Po ustawieniu zmiennej zapisz plik w edytorze.

Aby sprawdzić, czy zmiana konfiguracji weszła w życie, wybierz kontener w widoku Kontenery w obszarze Container Insights. W okienku właściwości rozwiń węzeł Zmienne środowiskowe. Sekcja powinna zawierać tylko utworzoną wcześniej zmienną, czyli AZMON_COLLECT_ENV=FALSE. W przypadku wszystkich innych kontenerów sekcja Zmienne środowiskowe powinna zawierać listę wszystkich odnalezionych zmiennych środowiskowych.

Aby ponownie odnajdować zmienne środowiskowe, zastosuj ten sam proces, który został użyty wcześniej, i zmień wartość z False na True. Następnie uruchom ponownie polecenie , kubectl aby zaktualizować kontener.

- name: AZMON_COLLECT_ENV  
  value: "True"  

Semantyczna aktualizacja wersji agenta usługi Container Insights

Usługa Container Insights zmieniła wersję obrazu i konwencję nazewnictwa na [format semver] (https://semver.org/). Program SemVer pomaga deweloperom śledzić wszystkie zmiany wprowadzone w oprogramowaniu w fazie opracowywania i zapewnia, że przechowywanie wersji oprogramowania jest spójne i znaczące. Stara wersja była w formacie ciprod<timestamp-commitId<>> i win-ciprod<timestamp-commitId<>>, nasze pierwsze wersje obrazów używające formatu Semver to 3.1.4 dla systemów Linux i win-3.1.4 dla systemu Windows.

Semver to uniwersalny schemat przechowywania wersji oprogramowania zdefiniowany w formacie MAJOR. MAŁOLETNI. PATCH, który jest zgodny z następującymi ograniczeniami:

  1. Zwiększa wersję MAJOR podczas wprowadzania niezgodnych zmian interfejsu API.
  2. Zwiększ wersję pomocniczą podczas dodawania funkcji w sposób zgodny z poprzednimi wersjami.
  3. Zwiększ wersję PATCH podczas wprowadzania poprawek usterek zgodnych z poprzednimi wersjami.

Wraz z powstaniem platformy Kubernetes i ekosystemu systemu operacyjnego usługa Container Insights przeprowadza migrację do korzystania z obrazu Semver zgodnie z zalecanym standardem K8s, w którym wprowadzono każdą wersję pomocniczą, wszystkie zmiany powodujące niezgodność muszą być publicznie udokumentowane przy każdym nowym wydaniu platformy Kubernetes.

Naprawianie zduplikowanych agentów

Jeśli ręcznie włączono usługę Container Insights przy użyciu metod niestandardowych przed październikiem 2022 r., możesz uruchomić ze sobą wiele wersji agenta. Wykonaj poniższe kroki, aby wyczyścić tę duplikację.

  1. Zbierz szczegóły wszystkich ustawień niestandardowych, takich jak limity pamięci i procesora CPU w kontenerach omsagent.

  2. Przejrzyj domyślne limity zasobów dla dzienników ama i ustal, czy spełniają Twoje potrzeby. Jeśli nie, może być konieczne utworzenie tematu pomocy technicznej, aby ułatwić badanie i przełączanie limitów pamięci/procesora CPU. Może to pomóc w rozwiązaniu problemów z ograniczeniami skalowania, które niektórzy klienci napotkali wcześniej, co spowodowało wyjątki OOMKilled.

    System operacyjny Nazwa kontrolera Limity domyślne
    Linux ds-cpu-limit-linux 500 m
    Linux ds-memory-limit-linux 750Mi
    Linux rs-cpu-limit 1
    Linux rs-memory-limit 1.5Gi
    Windows ds-cpu-limit-windows 500 m
    Windows ds-memory-limit-windows 1Gi
  3. Czyszczenie zasobów z poprzedniego dołączania:

    Jeśli wcześniej dołączono go przy użyciu programu Helm Chart :

    Wyświetl listę wszystkich wersji w przestrzeniach nazw za pomocą następującego polecenia:

     helm list --all-namespaces
    

    Wyczyść wykres zainstalowany dla usługi Container Insights za pomocą następującego polecenia:

    helm uninstall <releaseName> --namespace <Namespace>
    

    Jeśli wcześniej dołączono przy użyciu wdrożenia yaml:

    Pobierz poprzedni plik yaml wdrożenia niestandardowego za pomocą następującego polecenia:

    curl -LO raw.githubusercontent.com/microsoft/Docker-Provider/ci_dev/kubernetes/omsagent.yaml
    

    Wyczyść stary wykres omsagent za pomocą następującego polecenia:

    kubectl delete -f omsagent.yaml
    
  4. Wyłącz szczegółowe informacje o kontenerze, aby wyczyścić wszystkie powiązane zasoby, korzystając ze wskazówek w artykule Wyłączanie szczegółowych informacji o kontenerze w klastrze Kubernetes

  5. Ponowne dołączanie do usługi Container Insights przy użyciu wskazówek w artykule Włączanie szczegółowych informacji o kontenerze w klastrze Kubernetes

Następne kroki

Jeśli podczas uaktualniania agenta wystąpią problemy, zapoznaj się z przewodnikiem rozwiązywania problemów, aby uzyskać pomoc techniczną.