Rozwiązanie do monitorowania kontenerów w usłudze Azure Monitor

Symbol kontenerów

W tym artykule opisano sposób konfigurowania i używania rozwiązania do monitorowania kontenerów w usłudze Azure Monitor, które ułatwia wyświetlanie hostów kontenerów platformy Docker i systemu Windows oraz zarządzanie nimi w jednej lokalizacji. Docker to system wirtualizacji oprogramowania służący do tworzenia kontenerów automatyzujących wdrażanie oprogramowania w infrastrukturze IT.

Ważne

Rozwiązanie do monitorowania kontenerów jest wycofywane. Aby monitorować środowiska Kubernetes, zalecamy przejście do usługi Azure Monitor Container Insights.

Uwaga

Ten artykuł został niedawno zaktualizowany, aby użyć terminu Dzienniki usługi Azure Monitor zamiast usługi Log Analytics. Dane dzienników są nadal przechowywane w obszarze roboczym usługi Log Analytics i są nadal zbierane i analizowane przez tę samą usługę Log Analytics. Aktualizujemy terminologię, aby lepiej odzwierciedlać rolę dzienników w usłudze Azure Monitor. Aby uzyskać szczegółowe informacje, zobacz Zmiany terminologii usługi Azure Monitor .

Rozwiązanie pokazuje, które kontenery są uruchomione, jaki obraz kontenera są uruchomione i gdzie są uruchomione kontenery. Możesz wyświetlić szczegółowe informacje o inspekcji pokazujące polecenia używane z kontenerami. Kontenery można również rozwiązywać, wyświetlając i wyszukując scentralizowane dzienniki bez konieczności zdalnego wyświetlania hostów platformy Docker lub systemu Windows. Kontenery, które mogą być hałaśliwy i zużywać nadmiar zasobów na hoście. Ponadto można wyświetlić informacje o scentralizowanym procesorze CPU, pamięci, magazynie oraz użyciu sieci i wydajności dla kontenerów. Na komputerach z systemem Windows można scentralizować i porównać dzienniki z kontenerów systemu Windows Server, funkcji Hyper-V i platformy Docker. Rozwiązanie obsługuje następujące koordynatory kontenerów:

  • Docker Swarm
  • DC/OS
  • Service Fabric

Zalecamy używanie usługi Azure Monitor Container Insights do monitorowania platformy Kubernetes i rozwiązania Red Hat OpenShift:

Jeśli masz kontenery wdrożone w usłudze Azure Service Fabric, zalecamy włączenie zarówno rozwiązania usługi Service Fabric , jak i tego rozwiązania w celu uwzględnienia monitorowania zdarzeń klastra. Przed włączeniem rozwiązania usługi Service Fabric zapoznaj się z tematem Korzystanie z rozwiązania usługi Service Fabric , aby zrozumieć, co zapewnia i jak z niego korzystać.

Jeśli interesuje Cię monitorowanie wydajności obciążeń wdrożonych w środowiskach Kubernetes hostowanych na Azure Kubernetes Service (AKS), zobacz Monitorowanie Azure Kubernetes Service. Rozwiązanie do monitorowania kontenerów nie obsługuje monitorowania tej platformy.

Na poniższym diagramie przedstawiono relacje między różnymi hostami kontenerów i agentami za pomocą usługi Azure Monitor.

Diagram przedstawiający relacje między usługą Azure Monitor a hostami kontenerów i agentami znajdującymi się w chmurze platformy Azure, innymi chmurami i siecią lokalną.

Wymagania systemowe i obsługiwane platformy

Przed rozpoczęciem zapoznaj się z poniższymi szczegółami, aby sprawdzić, czy spełnisz wymagania wstępne.

Obsługa rozwiązania do monitorowania kontenerów dla platformy Docker Orchestrator i systemu operacyjnego

W poniższej tabeli przedstawiono orkiestrację platformy Docker i monitorowanie systemu operacyjnego obsługi spisu kontenerów, wydajności i dzienników za pomocą usługi Azure Monitor.

Orkiestracja platformy Docker ACS Linux Windows Kontener
Stan zapasów
Obraz
Stan zapasów
Węzeł
Stan zapasów
Kontener
Wydajność
Kontener
Zdarzenie
Zdarzenie
Dziennik
Kontener
Dziennik
Kubernetes
Mesossphere
DC/OS
Docker
Rój
Usługa
Fabric
Red Hat Open
Przesunięcia
Windows Server
(autonomiczne)
Linux Server
(autonomiczne)

Wersje platformy Docker obsługiwane w systemie Linux

  • Docker 1.11 do 1.13
  • Docker CE i EE w wersji 17.06

Dystrybucje systemu Linux x64 obsługiwane jako hosty kontenerów

  • Ubuntu 14.04 LTS i 16.04 LTS
  • CoreOS (stabilny)
  • Amazon Linux 2016.09.0
  • openSUSE 13.2
  • openSUSE LEAP 42.2
  • CentOS 7.2 i 7.3
  • SLES 12
  • RHEL 7.2 i 7.3
  • Red Hat OpenShift Container Platform (OCP) 3.4 i 3.5
  • ACS Mesosphere DC/OS 1.7.3 do 1.8.8
  • Usługa ACS Kubernetes 1.4.5 do 1.6
    • Zdarzenia Kubernetes, spis kubernetes i procesy kontenera są obsługiwane tylko w wersji 1.4.1-45 i nowszych agenta usługi Log Analytics dla systemu Linux
  • ACS Docker Swarm

Uwaga

W ramach trwającego przejścia z pakietu Microsoft Operations Management Suite do usługi Azure Monitor agent pakietu Operations Management Suite dla systemu Windows lub Linux będzie określany jako agent usługi Log Analytics dla systemu Windows i agent usługi Log Analytics dla systemu Linux.

Obsługiwany system operacyjny Windows

  • Windows Server 2016
  • Windows 10 Anniversary Edition (Professional lub Enterprise)

Wersje platformy Docker obsługiwane w systemie Windows

  • Docker 1.12 i 1.13
  • Docker 17.03.0 i nowsze

Instalowanie i konfigurowanie rozwiązania

Skorzystaj z poniższych informacji, aby zainstalować i skonfigurować rozwiązanie.

  1. Dodaj rozwiązanie do monitorowania kontenerów do obszaru roboczego usługi Log Analytics z Azure Marketplace lub przy użyciu procesu opisanego w artykule Dodawanie rozwiązań do monitorowania z galerii rozwiązań.

  2. Instalowanie i używanie platformy Docker z agentem usługi Log Analytics. Na podstawie systemu operacyjnego i orkiestratora platformy Docker można skonfigurować agenta przy użyciu następujących metod.

Zapoznaj się z artykułem Dotyczącym aparatu platformy Docker w systemie Windows , aby uzyskać dodatkowe informacje na temat sposobu instalowania i konfigurowania aparatów platformy Docker na komputerach z systemem Windows.

Ważne

Przed zainstalowaniem agenta usługi Log Analytics dla systemu Linux na hostach kontenerów należy uruchomić platformę Docker. Jeśli agent został już zainstalowany przed zainstalowaniem platformy Docker, musisz ponownie zainstalować agenta usługi Log Analytics dla systemu Linux. Aby uzyskać więcej informacji na temat platformy Docker, zobacz witrynę internetową platformy Docker.

Instalowanie i konfigurowanie hostów kontenerów systemu Linux

Po zainstalowaniu platformy Docker użyj następujących ustawień dla hosta kontenera, aby skonfigurować agenta do użycia z platformą Docker. Najpierw potrzebujesz identyfikatora i klucza obszaru roboczego usługi Log Analytics, który można znaleźć w Azure Portal. W obszarze roboczym kliknij pozycję Komputery Szybkiego startu>, aby wyświetlić identyfikator obszaru roboczego i klucz podstawowy. Skopiuj i wklej obie wartości do ulubionego edytora.

Dla wszystkich hostów kontenerów systemu Linux z wyjątkiem coreOS:

Dla wszystkich hostów kontenerów systemu Linux, w tym CoreOS:

Uruchom kontener, który chcesz monitorować. Zmodyfikuj i użyj następującego przykładu:

sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/containers:/var/lib/docker/containers -e WSID="your workspace id" -e KEY="your key" -h=`hostname` -p 127.0.0.1:25225:25225 --name="omsagent" --restart=always mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest

Dla wszystkich hostów kontenerów Azure Government Linux, w tym CoreOS:

Uruchom kontener, który chcesz monitorować. Zmodyfikuj i użyj następującego przykładu:

sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/log:/var/log -v /var/lib/docker/containers:/var/lib/docker/containers -e WSID="your workspace id" -e KEY="your key" -e DOMAIN="opinsights.azure.us" -p 127.0.0.1:25225:25225 -p 127.0.0.1:25224:25224/udp --name="omsagent" -h=`hostname` --restart=always mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest

Przełączanie z używania zainstalowanego agenta systemu Linux do jednego w kontenerze

Jeśli wcześniej użyto bezpośrednio zainstalowanego agenta i chcesz zamiast tego użyć agenta uruchomionego w kontenerze, musisz najpierw usunąć agenta usługi Log Analytics dla systemu Linux. Zobacz Odinstalowywanie agenta usługi Log Analytics dla systemu Linux , aby dowiedzieć się, jak pomyślnie odinstalować agenta.

Konfigurowanie agenta usługi Log Analytics dla platformy Docker Swarm

Agent usługi Log Analytics można uruchomić jako usługę globalną w usłudze Docker Swarm. Skorzystaj z poniższych informacji, aby utworzyć usługę agenta usługi Log Analytics. Musisz podać identyfikator obszaru roboczego usługi Log Analytics i klucz podstawowy.

  • Uruchom następujące polecenie w węźle głównym.

    sudo docker service create  --name omsagent --mode global  --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mount type=bind,source=/var/lib/docker/containers,destination=/var/lib/docker/containers -e WSID="<WORKSPACE ID>" -e KEY="<PRIMARY KEY>" -p 25225:25225 -p 25224:25224/udp  --restart-condition=on-failure mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
    
Zabezpieczanie wpisów tajnych dla platformy Docker Swarm

W przypadku platformy Docker Swarm po utworzeniu wpisu tajnego dla identyfikatora obszaru roboczego i klucza podstawowego użyj poniższych informacji, aby utworzyć informacje tajne.

  1. Uruchom następujące polecenie w węźle głównym.

    echo "WSID" | docker secret create WSID -
    echo "KEY" | docker secret create KEY -
    
  2. Sprawdź, czy wpisy tajne zostały prawidłowo utworzone.

    keiko@swarmm-master-13957614-0:/run# sudo docker secret ls
    
    ID                          NAME                CREATED             UPDATED
    j2fj153zxy91j8zbcitnjxjiv   WSID                43 minutes ago      43 minutes ago
    l9rh3n987g9c45zffuxdxetd9   KEY                 38 minutes ago      38 minutes ago
    
  3. Uruchom następujące polecenie, aby zainstalować wpisy tajne do konteneryzowanego agenta usługi Log Analytics.

    sudo docker service create  --name omsagent --mode global  --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mount type=bind,source=/var/lib/docker/containers,destination=/var/lib/docker/containers --secret source=WSID,target=WSID --secret source=KEY,target=KEY  -p 25225:25225 -p 25224:25224/udp --restart-condition=on-failure mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
    

Konfigurowanie agenta usługi Log Analytics dla oprogramowania Red Hat OpenShift

Istnieją trzy sposoby dodawania agenta usługi Log Analytics do biblioteki Red Hat OpenShift w celu rozpoczęcia zbierania danych monitorowania kontenera.

W tej sekcji omówiono kroki wymagane do zainstalowania agenta usługi Log Analytics jako demona OpenShift.

  1. Zaloguj się do węzła głównego usługi OpenShift i skopiuj plik yaml ocp-omsagent.yaml z usługi GitHub do węzła głównego i zmodyfikuj wartość przy użyciu identyfikatora obszaru roboczego usługi Log Analytics i klucza podstawowego.

  2. Uruchom następujące polecenia, aby utworzyć projekt dla usługi Azure Monitor i ustawić konto użytkownika.

    oc adm new-project omslogging --node-selector='zone=default'
    oc project omslogging  
    oc create serviceaccount omsagent  
    oc adm policy add-cluster-role-to-user cluster-reader   system:serviceaccount:omslogging:omsagent  
    oc adm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent  
    
  3. Aby wdrożyć demona zestawu, uruchom następujące polecenie:

    oc create -f ocp-omsagent.yaml

  4. Aby sprawdzić, czy jest on skonfigurowany i działa prawidłowo, wpisz następujące polecenie:

    oc describe daemonset omsagent

    i dane wyjściowe powinny wyglądać podobnie do następujących:

    [ocpadmin@khm-0 ~]$ oc describe ds oms  
    Name:           oms  
    Image(s):       mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest  
    Selector:       name=omsagent  
    Node-Selector:  zone=default  
    Labels:         agentVersion=1.4.0-12  
                    dockerProviderVersion=10.0.0-25  
                    name=omsagent  
    Desired Number of Nodes Scheduled: 3  
    Current Number of Nodes Scheduled: 3  
    Number of Nodes Misscheduled: 0  
    Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed  
    No events.  
    

Jeśli chcesz użyć wpisów tajnych, aby zabezpieczyć identyfikator obszaru roboczego usługi Log Analytics i klucz podstawowy podczas korzystania z pliku yaml demona agenta usługi Log Analytics, wykonaj następujące kroki.

  1. Zaloguj się do węzła głównego openShift i skopiuj plik yaml ocp-ds-omsagent.yaml i wpis tajny generujący skrypt ocp-secretgen.sh z usługi GitHub. Ten skrypt wygeneruje plik yaml wpisów tajnych dla identyfikatora obszaru roboczego usługi Log Analytics i klucza podstawowego w celu zabezpieczenia informacji tajnych.

  2. Uruchom następujące polecenia, aby utworzyć projekt dla usługi Azure Monitor i ustawić konto użytkownika. Skrypt generowania wpisu tajnego prosi o identyfikator <WSID> obszaru roboczego usługi Log Analytics i klucz <KEY> podstawowy oraz po zakończeniu tworzy plik ocp-secret.yaml.

    oc adm new-project omslogging --node-selector='zone=default'  
    oc project omslogging  
    oc create serviceaccount omsagent  
    oc adm policy add-cluster-role-to-user cluster-reader   system:serviceaccount:omslogging:omsagent  
    oc adm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent  
    
  3. Wdróż plik wpisu tajnego, uruchamiając następujące polecenie:

    oc create -f ocp-secret.yaml

  4. Sprawdź wdrożenie, uruchamiając następujące polecenie:

    oc describe secret omsagent-secret

    i dane wyjściowe powinny wyglądać podobnie do następujących:

    [ocpadmin@khocp-master-0 ~]$ oc describe secret omsagent-secret  
    Name:           omsagent-secret  
    Namespace:      omslogging  
    Labels:         <none>  
    Annotations:    <none>  
    Type:   Opaque  
    Data  
    ====  
    KEY:    89 bytes  
    WSID:   37 bytes  
    
  5. Wdróż plik yaml demona agenta usługi Log Analytics, uruchamiając następujące polecenie:

    oc create -f ocp-ds-omsagent.yaml

  6. Sprawdź wdrożenie, uruchamiając następujące polecenie:

    oc describe ds oms

    i dane wyjściowe powinny wyglądać podobnie do następujących:

    [ocpadmin@khocp-master-0 ~]$ oc describe ds oms  
    Name:           oms  
    Image(s):       mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest  
    Selector:       name=omsagent  
    Node-Selector:  zone=default  
    Labels:         agentVersion=1.4.0-12  
                    dockerProviderVersion=10.0.0-25  
                    name=omsagent  
    Desired Number of Nodes Scheduled: 3  
    Current Number of Nodes Scheduled: 3  
    Number of Nodes Misscheduled: 0  
    Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed  
    No events.  
    

Konfigurowanie agenta usługi Log Analytics dla systemu Linux dla platformy Kubernetes

W przypadku platformy Kubernetes należy użyć skryptu do wygenerowania pliku yaml wpisów tajnych dla identyfikatora obszaru roboczego i klucza podstawowego w celu zainstalowania agenta usługi Log Analytics dla systemu Linux. Na stronie usługi Docker Kubernetes GitHub usługi Log Analytics znajdują się pliki, których można używać z informacjami tajnymi lub bez nich.

  • Domyślny agent usługi Log Analytics dla systemu Linux DaemonSet nie zawiera informacji tajnych (omsagent.yaml)
  • Agent usługi Log Analytics dla systemu Linux DaemonSet yaml używa informacji tajnych (omsagent-ds-secrets.yaml) ze skryptami generowania wpisów tajnych w celu wygenerowania pliku yaml wpisów tajnych (omsagentsecret.yaml).

Możesz utworzyć omsagent DaemonSets z wpisami tajnymi lub bez ich użycia.

Domyślny plik yaml OMSagent DaemonSet bez wpisów tajnych

  • W przypadku domyślnego pliku yaml demona agenta usługi Log Analytics zastąp element i <KEY> do identyfikatora <WSID> WSID i KLUCZA. Skopiuj plik do węzła głównego i uruchom następujące polecenie:

    sudo kubectl create -f omsagent.yaml
    

Domyślny plik yaml OMSagent DaemonSet z wpisami tajnymi

  1. Aby użyć narzędzia DaemonSet agenta usługi Log Analytics przy użyciu informacji tajnych, najpierw utwórz wpisy tajne.

    1. Skopiuj skrypt i plik szablonu wpisu tajnego i upewnij się, że znajdują się one w tym samym katalogu.

      • Skrypt generowania wpisu tajnego — secret-gen.sh
      • szablon wpisu tajnego — secret-template.yaml
    2. Uruchom skrypt, podobnie jak w poniższym przykładzie. Skrypt prosi o identyfikator obszaru roboczego usługi Log Analytics i klucz podstawowy, a po wprowadzeniu go skrypt tworzy tajny plik yaml, aby można było go uruchomić.

      #> sudo bash ./secret-gen.sh
      
    3. Utwórz zasobnik wpisów tajnych, uruchamiając następujące polecenie:

      sudo kubectl create -f omsagentsecret.yaml
      
    4. Aby sprawdzić, uruchom następujące polecenie:

      keiko@ubuntu16-13db:~# sudo kubectl get secrets
      

      Dane wyjściowe powinny wyglądać podobnie do następujących:

      NAME                  TYPE                                  DATA      AGE
      default-token-gvl91   kubernetes.io/service-account-token   3         50d
      omsagent-secret       Opaque                                2         1d
      
      keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
      

      Dane wyjściowe powinny wyglądać podobnie do następujących:

      Name:           omsagent-secret
      Namespace:      default
      Labels:         <none>
      Annotations:    <none>
      
      Type:   Opaque
      
      Data
      ====
      WSID:   36 bytes
      KEY:    88 bytes
      
    5. Utwórz zestaw demona omsagent, uruchamiając polecenie sudo kubectl create -f omsagent-ds-secrets.yaml

  2. Sprawdź, czy program DaemonSet agenta usługi Log Analytics jest uruchomiony, podobnie jak w następujących kwestiach:

    keiko@ubuntu16-13db:~# sudo kubectl get ds omsagent
    
    NAME       DESIRED   CURRENT   NODE-SELECTOR   AGE
    omsagent   3         3         <none>          1h
    

W przypadku platformy Kubernetes użyj skryptu, aby wygenerować plik yaml wpisów tajnych dla identyfikatora obszaru roboczego i klucz podstawowy agenta usługi Log Analytics dla systemu Linux. Użyj poniższych przykładowych informacji z plikiem yaml omsagent , aby zabezpieczyć informacje tajne.

keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
Name:           omsagent-secret
Namespace:      default
Labels:         <none>
Annotations:    <none>

Type:   Opaque

Data
====
WSID:   36 bytes
KEY:    88 bytes

Konfigurowanie agenta systemu Windows usługi Log Analytics dla platformy Kubernetes

W przypadku platformy Kubernetes w systemie Windows skrypt służy do generowania pliku yaml wpisów tajnych dla identyfikatora obszaru roboczego i klucza podstawowego w celu zainstalowania agenta usługi Log Analytics. Na stronie usługi Docker Kubernetes GitHub usługi Log Analytics znajdują się pliki, których można używać z informacjami tajnymi. Agent usługi Log Analytics należy zainstalować oddzielnie dla węzłów głównych i agentów.

  1. Aby użyć narzędzia DaemonSet agenta usługi Log Analytics przy użyciu informacji tajnych w węźle głównym, zaloguj się i utwórz najpierw wpisy tajne.

    1. Skopiuj skrypt i plik szablonu wpisu tajnego i upewnij się, że znajdują się one w tym samym katalogu.

      • Skrypt generowania wpisu tajnego — secret-gen.sh
      • szablon wpisu tajnego — secret-template.yaml
    2. Uruchom skrypt, podobnie jak w poniższym przykładzie. Skrypt prosi o identyfikator obszaru roboczego usługi Log Analytics i klucz podstawowy, a po wprowadzeniu go skrypt tworzy tajny plik yaml, aby można było go uruchomić.

      #> sudo bash ./secret-gen.sh
      
    3. Utwórz zestaw demona omsagent, uruchamiając polecenie kubectl create -f omsagentsecret.yaml

    4. Aby to sprawdzić, uruchom następujące polecenie:

      root@ubuntu16-13db:~# kubectl get secrets
      

      Dane wyjściowe powinny wyglądać podobnie do następujących:

      NAME                  TYPE                                  DATA      AGE
      default-token-gvl91   kubernetes.io/service-account-token   3         50d
      omsagent-secret       Opaque                                2         1d
      root@ubuntu16-13db:~# kubectl describe secrets omsagent-secret
      Name:           omsagent-secret
      Namespace:      default
      Labels:         <none>
      Annotations:    <none>
      
      Type:   Opaque
      
      Data
      ====
      WSID:   36 bytes
      KEY:    88 bytes
      
    5. Utwórz zestaw demona omsagent, uruchamiając polecenie kubectl create -f ws-omsagent-de-secrets.yaml

  2. Sprawdź, czy program DaemonSet agenta usługi Log Analytics jest uruchomiony, podobnie jak w następujących kwestiach:

    root@ubuntu16-13db:~# kubectl get deployment omsagent
    NAME       DESIRED   CURRENT   NODE-SELECTOR   AGE
    omsagent   1         1         <none>          1h
    
  3. Aby zainstalować agenta w węźle roboczym z systemem Windows, wykonaj kroki opisane w sekcji Instalowanie i konfigurowanie hostów kontenerów systemu Windows.

Wdrażanie agenta usługi Log Analytics na platformie Kubernetes przy użyciu programu Helm

Aby użyć narzędzia Helm do wdrożenia agenta usługi Log Analytics w środowisku Kubernetes systemu Linux, wykonaj następujące kroki.

  1. Utwórz zestaw demona omsagent, uruchamiając polecenie helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms

  2. Wyniki będą wyglądać podobnie do następujących:

    NAME:   omsagent
    LAST DEPLOYED: Tue Sep 19 20:37:46 2017
    NAMESPACE: default
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/Secret
    NAME            TYPE    DATA  AGE
    omsagent-msoms  Opaque  3     3s
    
    ==> v1beta1/DaemonSet
    NAME            DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE-SELECTOR  AGE
    omsagent-msoms  3        3        3      3           3          <none>         3s
    
  3. Stan omsagent można sprawdzić, uruchamiając polecenie: helm status "omsagent" a dane wyjściowe będą wyglądać podobnie do następujących:

    keiko@k8s-master-3814F33-0:~$ helm status omsagent
    LAST DEPLOYED: Tue Sep 19 20:37:46 2017
    NAMESPACE: default
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/Secret
    NAME            TYPE    DATA  AGE
    omsagent-msoms  Opaque  3     17m
    
    ==> v1beta1/DaemonSet
    NAME            DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE-SELECTOR  AGE
    omsagent-msoms  3        3        3      3           3          <none>         17m
    

    Aby uzyskać więcej informacji, odwiedź stronę Container Solution Helm Chart (Wykres helm rozwiązania kontenera).

Instalowanie i konfigurowanie hostów kontenerów systemu Windows

Informacje przedstawione w sekcji służą do instalowania i konfigurowania hostów kontenerów systemu Windows.

Przygotowanie przed zainstalowaniem agentów systemu Windows

Przed zainstalowaniem agentów na komputerach z systemem Windows należy skonfigurować usługę Platformy Docker. Konfiguracja umożliwia agentowi systemu Windows lub rozszerzeniu maszyny wirtualnej usługi Azure Monitor używanie gniazda TCP platformy Docker, dzięki czemu agenci mogą uzyskiwać zdalny dostęp do demona platformy Docker i przechwytywać dane na potrzeby monitorowania.

Aby skonfigurować usługę Docker

Wykonaj następujące polecenia programu PowerShell, aby włączyć potok TCP i nazwany potok dla systemu Windows Server:

Stop-Service docker
dockerd --unregister-service
dockerd --register-service -H npipe:// -H 0.0.0.0:2375  
Start-Service docker

Aby uzyskać więcej informacji na temat konfiguracji demona platformy Docker używanej z kontenerami systemu Windows, zobacz Aparat platformy Docker w systemie Windows.

Instalowanie agentów systemu Windows

Aby włączyć monitorowanie kontenerów systemu Windows i funkcji Hyper-V, zainstaluj program Microsoft Monitoring Agent (MMA) na komputerach z systemem Windows, które są hostami kontenerów. W przypadku komputerów z systemem Windows w środowisku lokalnym zobacz Łączenie komputerów z systemem Windows z usługą Azure Monitor. W przypadku maszyn wirtualnych działających na platformie Azure połącz je z usługą Azure Monitor przy użyciu rozszerzenia maszyny wirtualnej.

Kontenery systemu Windows uruchomione w usłudze Service Fabric można monitorować. Jednak tylko maszyny wirtualne uruchomione na platformie Azure i komputerach z systemem Windows w środowisku lokalnym są obecnie obsługiwane w usłudze Service Fabric.

Możesz sprawdzić, czy rozwiązanie do monitorowania kontenerów jest poprawnie ustawione dla systemu Windows. Aby sprawdzić, czy pakiet administracyjny został poprawnie pobrany, poszukaj ContainerManagement.xxx. Pliki powinny znajdować się w folderze C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs.

Składniki rozwiązania

W Azure Portal przejdź do galerii rozwiązań i dodaj rozwiązanie do monitorowania kontenerów. Jeśli używasz agentów systemu Windows, podczas dodawania tego rozwiązania na każdym komputerze jest instalowany następujący pakiet administracyjny. Dla pakietu administracyjnego nie jest wymagana żadna konfiguracja ani konserwacja.

  • ContainerManagement.xxx zainstalowane w folderze C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs

Szczegóły zbierania danych kontenera

Rozwiązanie do monitorowania kontenerów zbiera różne metryki wydajności i dane dziennika z hostów kontenerów i kontenerów przy użyciu włączonych agentów.

Dane są zbierane co trzy minuty przez następujące typy agentów.

Rekordy kontenerów

W poniższej tabeli przedstawiono przykłady rekordów zebranych przez rozwiązanie do monitorowania kontenerów oraz typy danych wyświetlane w wynikach wyszukiwania dzienników.

Typ danych Typ danych w wyszukiwaniu dzienników Pola
Wydajność hostów i kontenerów Perf Komputer, ObjectName, CounterName (%Czas procesora, Dysk odczytuje MB, Zapis dysku MB, Użycie pamięci MB, Bajty odbierania sieci, Bajty wysyłania sieci, Użycie procesora s, Sieć), CounterValue,TimeGenerated, CounterPath, SourceSystem
Spis kontenerów ContainerInventory TimeGenerated, Computer, container name, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID
Spis obrazów kontenera ContainerImageInventory TimeGenerated, Computer, Image, ImageTag, ImageSize, VirtualSize, Running, Paused, Stopped, Failed, SourceSystem, ImageID, TotalContainer
Dziennik kontenerów ContainerLog TimeGenerated, Computer, image ID, container name, LogEntrySource, LogEntry, SourceSystem, ContainerID
Dziennik usługi kontenera ContainerServiceLog TimeGenerated, Computer, TimeOfCommand, Image, Command, SourceSystem, ContainerID
Spis węzłów kontenera ContainerNodeInventory_CL TimeGenerated, Computer, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem
Spis kubernetes KubePodInventory_CL TimeGenerated, Computer, PodLabel_deployment_s, PodLabel_deploymentconfig_s, PodLabel_docker_registry_s, Name_s, Namespace_s, PodStatus_s, PodIp_s, PodUid_g, PodCreationTimeStamp_t, SourceSystem
Proces kontenera ContainerProcess_CL TimeGenerated, Computer, Pod_s, Namespace_s, ClassName_s, InstanceID_s, Uid_s, PID_s, PPID_s, C_s, STIME_s, Tty_s, TIME_s, Cmd_s, Id_s, Name_s, SourceSystem
Zdarzenia kubernetes KubeEvents_CL TimeGenerated, Computer, Name_s, ObjectKind_s, Namespace_s, Reason_s, Type_s, SourceComponent_s, SourceSystem, Message

Etykiety dołączone do typów danych PodLabel to własne etykiety niestandardowe. Dołączone etykiety PodLabel wyświetlane w tabeli są przykładami. Tak więc , PodLabel_deployment_s, PodLabel_docker_registry_sPodLabel_deploymentconfig_sbędzie się różnić w zestawie danych środowiska i ogólnie przypomina PodLabel_yourlabel_s.

Monitorowanie kontenerów

Po włączeniu rozwiązania w Azure Portal kafelek Kontenery zawiera podsumowanie informacji o hostach kontenerów i kontenerach uruchomionych na hostach.

Zrzut ekranu przedstawiający kafelek Kontenery, który zawiera wykres kołowy przedstawiający podsumowanie informacji o kontenerach.

Kafelek przedstawia przegląd liczby kontenerów, które znajdują się w środowisku i czy są one nieudane, uruchomione lub zatrzymane.

Korzystanie z pulpitu nawigacyjnego Kontenery

Kliknij kafelek Kontenery . W tym miejscu zobaczysz widoki zorganizowane według:

  • Zdarzenia kontenera — pokazuje stan kontenera i komputery z kontenerami, które uległy awarii.
  • Dzienniki kontenerów — przedstawia wykres plików dziennika kontenera generowanych w czasie i listę komputerów z największą liczbą plików dziennika.
  • Zdarzenia kubernetes — przedstawia wykres zdarzeń platformy Kubernetes generowanych w czasie i listę przyczyn generowania zdarzeń przez zasobniki. Ten zestaw danych jest używany tylko w środowiskach systemu Linux.
  • Spis przestrzeni nazw kubernetes — przedstawia liczbę przestrzeni nazw i zasobników oraz ich hierarchię. Ten zestaw danych jest używany tylko w środowiskach systemu Linux.
  • Spis węzłów kontenera — przedstawia liczbę typów aranżacji używanych w węzłach/hostach kontenera. Węzły/hosty komputera są również wyświetlane według liczby kontenerów. Ten zestaw danych jest używany tylko w środowiskach systemu Linux.
  • Spis obrazów kontenerów — przedstawia łączną liczbę używanych obrazów kontenerów i liczbę typów obrazów. Liczba obrazów jest również wyświetlana według tagu obrazu.
  • Stan kontenerów — przedstawia łączną liczbę węzłów kontenerów/komputerów-hostów z uruchomionymi kontenerami. Komputery są również wymienione według liczby uruchomionych hostów.
  • Proces kontenera — przedstawia wykres liniowy procesów kontenera działających w czasie. Kontenery są również wyświetlane przez uruchomienie polecenia/procesu w kontenerach. Ten zestaw danych jest używany tylko w środowiskach systemu Linux.
  • Wydajność procesora CPU kontenera — przedstawia wykres liniowy średniego wykorzystania procesora CPU w czasie dla węzłów/hostów komputerów. Zawiera również listę węzłów/hostów komputera na podstawie średniego wykorzystania procesora CPU.
  • Wydajność pamięci kontenera — przedstawia wykres liniowy użycia pamięci w czasie. Wyświetla również listę wykorzystania pamięci komputera na podstawie nazwy wystąpienia.
  • Wydajność komputera — przedstawia wykresy liniowe procentu wydajności procesora CPU w czasie, procent użycia pamięci w czasie i megabajty wolnego miejsca na dysku w czasie. Możesz umieścić wskaźnik myszy na dowolnym wierszu na wykresie, aby wyświetlić więcej szczegółów.

Każdy obszar pulpitu nawigacyjnego to wizualna reprezentacja wyszukiwania uruchamianego na zebranych danych.

Zrzut ekranu przedstawiający pulpit nawigacyjny umożliwiający wyświetlenie zebranych danych.

Zrzut ekranu przedstawiający pulpit nawigacyjny do wyświetlania zebranych danych, w tym stanu, procesu, wydajności i obrazów spisu kontenerów.

W obszarze Stan kontenera kliknij górny obszar, jak pokazano poniżej.

Zrzut ekranu przedstawiający obszar Stan kontenera pulpitu nawigacyjnego Kontenery, który zawiera wykres kołowy przedstawiający informacje o stanie kontenera.

Usługa Log Analytics zostanie otwarta, wyświetlając informacje o stanie kontenerów.

Zrzut ekranu przedstawiający usługę Log Analytics z zapytaniem o stan kontenerów i wyników wyszukiwania.

W tym miejscu możesz edytować zapytanie wyszukiwania, aby zmodyfikować je, aby znaleźć interesujące Cię informacje. Aby uzyskać więcej informacji na temat zapytań dzienników, zobacz Dzienniki zapytań w usłudze Azure Monitor.

Rozwiązywanie problemów przez znalezienie kontenera, który zakończył się niepowodzeniem

Usługa Log Analytics oznacza kontener jako Niepowodzenie, jeśli zakończył się z kodem zakończenia bez zera. W obszarze Kontenery nieudane można wyświetlić omówienie błędów i błędów w środowisku.

Aby znaleźć kontenery, które zakończyły się niepowodzeniem

  1. Kliknij obszar Stan kontenera .
    Zrzut ekranu przedstawiający obszar Stan kontenera pulpitu nawigacyjnego Kontenery, który zawiera wykres kołowy przedstawiający informacje o stanie kontenera.
  2. Usługa Log Analytics otworzy się i wyświetli stan kontenerów, podobnie jak poniżej.
    Zrzut ekranu przedstawiający usługę Log Analytics z zapytaniem o stan kontenerów i wyników wyszukiwania.
  3. Rozwiń wiersz Niepowodzenie i kliknij przycisk +, aby dodać kryteria do zapytania. Następnie oznacz jako komentarz wiersz Summarize w zapytaniu. Zrzut ekranu przedstawiający wiersz, który powinien zostać skomentowany.
  4. Uruchom zapytanie, a następnie rozwiń wiersz w wynikach, aby wyświetlić identyfikator obrazu.
    Zrzut ekranu przedstawiający sposób wyświetlania identyfikatora obrazu.
  5. Wpisz następujące polecenie w zapytaniu dziennika. ContainerImageInventory | where ImageID == <ImageID> aby wyświetlić szczegółowe informacje o obrazie, takim jak rozmiar obrazu i liczba zatrzymanych i zakończonych niepowodzeniem obrazów.
    Zrzut ekranu przedstawiający usługę Log Analytics z zapytaniem dotyczącym obrazu kontenera i szczegółowe informacje o obrazie.

Wykonywanie zapytań dotyczących dzienników dla danych kontenera

Podczas rozwiązywania problemów z określonym błędem może pomóc sprawdzić, gdzie występuje w twoim środowisku. Następujące typy dzienników ułatwiają tworzenie zapytań w celu zwrócenia żądanych informacji.

  • ContainerImageInventory — użyj tego typu podczas próby znalezienia informacji zorganizowanych według obrazu i wyświetlenia informacji o obrazie, takich jak identyfikatory obrazów lub rozmiary.
  • ContainerInventory — użyj tego typu, jeśli chcesz uzyskać informacje o lokalizacji kontenera, ich nazwach i obrazach, które są uruchomione.
  • ContainerLog — użyj tego typu, jeśli chcesz znaleźć określone informacje i wpisy dziennika błędów.
  • ContainerNodeInventory_CL Użyj tego typu, jeśli chcesz uzyskać informacje o hoście/węźle, w którym znajdują się kontenery. Udostępnia on informacje o wersji platformy Docker, typie aranżacji, magazynie i sieci.
  • ContainerProcess_CL Użyj tego typu, aby szybko zobaczyć proces uruchomiony w kontenerze.
  • ContainerServiceLog — ten typ jest używany podczas próby znalezienia informacji o dzienniku inspekcji demona platformy Docker, takich jak uruchamianie, zatrzymywanie, usuwanie lub ściąganie poleceń.
  • KubeEvents_CL Użyj tego typu, aby wyświetlić zdarzenia Kubernetes.
  • KubePodInventory_CL Użyj tego typu, jeśli chcesz zrozumieć informacje o hierarchii klastra.

Aby wykonywać zapytania dotyczące dzienników dla danych kontenera

  • Wybierz obraz, który ostatnio zakończył się niepowodzeniem, i znajdź dla niego dzienniki błędów. Zacznij od znalezienia nazwy kontenera, która uruchamia ten obraz z wyszukiwaniem ContainerInventory . Na przykład wyszukaj ContainerInventory | where Image == "ubuntu" and ContainerState == "Failed"
    Zrzut ekranu przedstawiający wyszukiwanie nieudanych kontenerów systemu Ubuntu i wyników wyszukiwania.

    Rozwiń dowolny wiersz w wynikach, aby wyświetlić szczegóły dla tego kontenera.

Przykładowe zapytania dziennika

Często przydatne jest tworzenie zapytań, począwszy od przykładu lub dwóch, a następnie modyfikowanie ich w celu dopasowania ich do środowiska. Jako punkt wyjścia możesz eksperymentować z obszarem PRZYKŁADOWE ZAPYTANIA po prawej stronie rozwiązania, aby ułatwić tworzenie bardziej zaawansowanych zapytań.

Zrzut ekranu przedstawiający obszar Przykładowe zapytania z przykładowymi zapytaniami dzienników.

Zapisywanie zapytań dziennika

Zapisywanie zapytań to standardowa funkcja w usłudze Azure Monitor. Dzięki ich zapisaniu będziesz mieć te, które zostały znalezione przydatne do użycia w przyszłości.

Po utworzeniu zapytania, które okaże się przydatne, zapisz je, klikając pozycję Ulubione w górnej części strony Przeszukiwanie dzienników . Następnie możesz łatwo uzyskać do niego dostęp później na stronie Mój pulpit nawigacyjny .

Usuwanie rozwiązania z obszaru roboczego

Aby usunąć rozwiązanie do monitorowania kontenerów, postępuj zgodnie z instrukcjami dotyczącymi usuwania rozwiązań przy użyciu jednego z następujących elementów: Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure

Następne kroki

Wykonywanie zapytań dotyczących dzienników w celu wyświetlenia szczegółowych rekordów danych kontenera.