Verwalten des Container Insights-Agents

Für Container Insights wird eine Containerversion des Log Analytics-Agents für Linux verwendet. Nach der ersten Bereitstellung müssen Sie möglicherweise während des Lebenszyklus Routine- oder optionale Aufgaben ausführen. In diesem Artikel wird erläutert, wie Sie das Upgrade des Agent manuell durchführen und die Sammlung von Umgebungsvariablen aus einem bestimmten Container deaktivieren können.

Hinweis

Wenn Sie bereits einen AKS-Cluster bereitgestellt und die Überwachung mithilfe der Azure CLI oder einer Resource Manager-Vorlage aktiviert haben, können Sie kubectl nicht verwenden, um den Agent zu aktualisieren, zu löschen, erneut bereitzustellen oder bereitzustellen. Die Vorlage muss in derselben Ressourcengruppe wie der Cluster bereitgestellt werden.

Durchführen eines Upgrades für den Container Insights-Agent

Für Container Insights wird eine Containerversion des Log Analytics-Agents für Linux verwendet. Wenn eine neue Version des Agents veröffentlicht wird, wird automatisch ein Upgrade des Agents in Ihren Managed Kubernetes-Clustern ausgeführt, die in Azure Kubernetes Service (AKS) und Kubernetes mit Azure Arc-Unterstützung gehostet werden.

In diesem Artikel wird außerdem der Prozess für das manuelle Upgrade des Agents beschrieben, falls während des Upgrades ein Fehler bei einem in AKS gehosteten Cluster auftritt. Informationen zu den freigegebenen Versionen finden Sie unter Agent-Versionsankündigungen.

Durchführen eines Upgrades für den Agent auf einem AKS-Cluster

Der Prozess zum Upgraden des Agents auf einem AKS-Cluster besteht aus zwei Schritten. Der erste Schritt besteht darin, die Überwachung mithilfe der Azure CLI in Container Insights zu deaktivieren. Führen Sie die im Artikel Deaktivieren von Container Insights in Ihrem Kubernetes-Cluster beschriebenen Schritte aus. Indem wir die Azure CLI verwenden, können wir den Agent von den Knoten im Cluster entfernen, ohne dass sich Auswirkungen auf die Lösung und die entsprechenden Daten ergeben, die im Arbeitsbereich gespeichert sind.

Hinweis

Während Sie diese Wartungsaktivität ausführen, leiten die Knoten im Cluster keine gesammelten Daten weiter. Leistungsansichten zeigen keine Daten zwischen dem Zeitpunkt an, zu dem Sie den Agent entfernt und die neue Version installiert haben.

Der zweite Schritt besteht darin, die neue Version des Agents zu installieren. Führen Sie die unter Aktivieren der Überwachung mithilfe der Azure CLI beschriebenen Schritte aus, um diesen Prozess abzuschließen.

Nach dem erneuten Aktivieren der Überwachung kann es ca. 15 Minuten dauern, bis aktualisierte Integritätsmetriken für den Cluster angezeigt werden. Es gibt zwei Methoden, um zu überprüfen, ob das Upgrade für den Agent erfolgreich durchgeführt wurde:

  • Führen Sie den Befehl kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}' aus. Achten Sie im zurückgegebenen Status auf den Wert für Azure Monitor-Agent unter Image im Abschnitt Container der Ausgabe.
  • Wählen Sie auf der Registerkarte Knoten den Clusterknoten aus. Notieren Sie sich im Bereich Eigenschaften auf der rechten Seite den Wert unter Agent-Imagetag aus.

Die Version des angezeigten Agents sollte der aktuellen Version entsprechen, die auf der Seite Releaseverlauf aufgeführt ist.

Durchführen eines Upgrades für den Agent auf einem Kubernetes-Hybridcluster

Führen Sie die folgenden Schritte aus, um ein Upgrade des Agents in einem Kubernetes-Cluster in Folgendem durchzuführen:

  • Selbstverwaltete Kubernetes-Cluster, die in Azure mithilfe der AKS-Engine gehostet werden.
  • Selbstverwaltete Kubernetes-Cluster, die in Azure Stack oder lokal mithilfe der AKS-Engine gehostet werden.

Wenn sich der Log Analytics-Arbeitsbereich in kommerziellem Azure befindet, führen Sie den folgenden Befehl aus:

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

Wenn sich der Log Analytics-Arbeitsbereich in Microsoft Azure operated by 21Vianet befindet, führen Sie den folgenden Befehl aus:

$ 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

Wenn sich der Log Analytics-Arbeitsbereich in einer Azure-Region von „US Government“ befindet, führen Sie den folgenden Befehl aus:

$ 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

Deaktivieren der Sammlung von Umgebungsvariablen für einen Container

Container Insights sammelt Umgebungsvariablen von den in einem Pod ausgeführten Containern und stellt sie im Eigenschaftenbereich des ausgewählten Containers in der Ansicht Container dar. Sie können dieses Verhalten steuern, indem Sie die Sammlung für einen bestimmten Container entweder während der Bereitstellung des Kubernetes-Clusters oder danach deaktivieren, indem Sie die Umgebungsvariable AZMON_COLLECT_ENV festlegen. Dieses Feature ist ab der Agent-Version „ciprod11292018“ verfügbar.

Um die Sammlung von Umgebungsvariablen für einen neuen oder vorhandenen Container zu deaktivieren, legen Sie für die Variable AZMON_COLLECT_ENV den Wert False in Ihrer YAML-Konfigurationsdatei für die Kubernetes-Bereitstellung fest.

- name: AZMON_COLLECT_ENV  
  value: "False"  

Führen Sie den folgenden Befehl aus, um die Änderung auf Kubernetes-Cluster (außer Azure Red Hat OpenShift) anzuwenden: kubectl apply -f <path to yaml file>. Führen Sie den folgenden Befehl aus, um ConfigMap zu bearbeiten und diese Änderung für Azure Red Hat OpenShift-Cluster anzuwenden:

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

Dieser Befehl öffnet Ihren standardmäßigen Text-Editor. Nachdem Sie die Variable festgelegt haben, speichern Sie die Datei im Editor.

Um zu überprüfen, ob die Konfigurationsänderung wirksam wurde, wählen Sie einen Container in der Ansicht Container in Container Insights aus. Erweitern Sie im Eigenschaftenbereich die Option Umgebungsvariablen. Der Abschnitt sollte nur die zuvor erstellte Variable anzeigen: AZMON_COLLECT_ENV=FALSE. Für alle anderen Container sollte der Abschnitt Umgebungsvariablen alle erkannten Umgebungsvariablen auflisten.

Um die Ermittlung der Umgebungsvariablen wieder zu aktivieren, wenden Sie das zuvor verwendete Verfahren an, und ändern Sie den Wert von False in True. Führen Sie dann den Befehl kubectl erneut aus, um den Container zu aktualisieren.

- name: AZMON_COLLECT_ENV  
  value: "True"  

Aktualisierung der semantischen Versionierung des Container Insights-Agents

Bei Container Insights wurden Imageversion und Namenskonvention auf das [SemVer-Format] (https://semver.org/) umgestellt. SemVer hilft Entwicklern, jede Änderung an Software während der Entwicklungsphase zu verfolgen, und stellt sicher, dass die Softwareversionsverwaltung konsistent und aussagekräftig ist. Die alte Version wies das Format „<Zeitstempel>-<commitId>“ und „win-ciprod<Zeitstempel>-<commitId>“ auf. Die ersten Imageversionen mit dem SemVer-Format sind 3.1.4 für Linux und win-3.1.4 für Windows.

SemVer ist ein universelles Softwareversionierungsschema, das im Format MAJOR.MINOR.PATCH definiert ist und folgende Einschränkungen aufweist:

  1. Erhöhen Sie die MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen.
  2. Erhöhen Sie die MINOR-Version, wenn Sie Funktionen abwärtskompatibel hinzufügen.
  3. Erhöhen Sie die PATCH-Version, wenn Sie abwärtskompatible Fehlerbehebungen vornehmen.

Mit dem Aufkommen von Kubernetes und dem OSS-Ökosystem migriert Container Insights zur Verwendung von SemVer-Images gemäß dem von Kubernetes empfohlenen Standard, bei dem mit jeder neuen Kubernetes-Version alle wichtigen Änderungen öffentlich dokumentiert werden müssen.

Reparieren doppelter Agents

Wenn Sie Container Insights vor Oktober 2022 manuell mit benutzerdefinierten Methoden aktiviert haben, können mehrere Versionen des Agents gleichzeitig ausgeführt werden. Führen Sie die folgenden Schritte aus, um diese Duplizierung aufzulösen.

  1. Sammeln Sie Details zu benutzerdefinierten Einstellungen, z. B. Arbeitsspeicher- und CPU-Grenzwerten für omsagent-Container.

  2. Überprüfen Sie die Standardressourcengrenzwerte für AMA-Protokolle, und ermitteln Sie, ob sie Ihren Anforderungen entsprechen. Andernfalls müssen Sie möglicherweise ein Supportthema erstellen, um Arbeitsspeicher-/CPU-Grenzwerte zu untersuchen und zu ändern. Dadurch können Probleme mit Skalierungseinschränkungen behoben werden, die einige Kunden zuvor festgestellt haben und die zu OOMKilled-Ausnahmen geführt haben.

    Betriebssystem Controllername Standardgrenzwerte
    Linux ds-cpu-limit-linux 500 m
    Linux ds-memory-limit-linux 750 Mi
    Linux rs-cpu-limit 1
    Linux rs-memory-limit 1,5 Gi
    Windows ds-cpu-limit-windows 500 m
    Windows ds-memory-limit-windows 1Gi
  3. Bereinigen Sie Ressourcen aus dem vorherigen Onboarding:

    Wenn Sie das Onboarding zuvor mit einem Helm-Chart durchgeführt haben:

    Listen Sie mit dem folgenden Befehl alle Releases in allen Namespaces auf:

     helm list --all-namespaces
    

    Bereinigen Sie das Chart, das für Container Insights installiert wurde, mit dem folgenden Befehl:

    helm uninstall <releaseName> --namespace <Namespace>
    

    Wenn Sie das Onboarding zuvor mit einer YAML-Bereitstellung durchgeführt haben:

    Laden Sie vorherige benutzerdefinierte YAML-Bereitstellungsdatei mit dem folgenden Befehl herunter:

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

    Bereinigen Sie das alte omsagent-Chart mit dem folgenden Befehl:

    kubectl delete -f omsagent.yaml
    
  4. Deaktivieren Sie Container Insights, um alle zugehörigen Ressourcen zu bereinigen. Verwenden Sie dazu den Leitfaden unter Deaktivieren von Container Insights in Ihrem Kubernetes-Cluster.

  5. Führen Sie das Onboarding von Container Insights erneut durch. Verwenden Sie dazu den Leitfaden unter Aktivieren von Container Insights in Ihrem Kubernetes-Cluster.

Nächste Schritte

Falls beim Upgrade des Agents Probleme auftreten, hilft Ihnen der Leitfaden zur Problembehandlung weiter.