Rozwiązanie do monitorowania kontenerów w usłudze Azure Monitor
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:
- AKS (Konfigurowanie szczegółowych informacji o kontenerze dla usługi AKS)
- Red Hat OpenShift (Konfigurowanie szczegółowych informacji o kontenerze przy użyciu usługi Azure Arc)
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.
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.
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ń.
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.
- W przypadku hostów autonomicznych:
- W obsługiwanych systemach operacyjnych Linux zainstaluj i uruchom platformę Docker, a następnie zainstaluj i skonfiguruj agenta usługi Log Analytics dla systemu Linux.
- W systemie CoreOS nie można uruchomić agenta usługi Log Analytics dla systemu Linux. Zamiast tego uruchamiasz konteneryzowaną wersję agenta usługi Log Analytics dla systemu Linux. Przejrzyj hosty kontenerów systemu Linux, w tym hosty kontenerów CoreOS lub Azure Government Linux, w tym CoreOS, jeśli pracujesz z kontenerami w usłudze Azure Government Cloud.
- Na Windows Server 2016 i Windows 10 zainstaluj aparat platformy Docker, a następnie połącz agenta, aby zebrać informacje i wysłać je do usługi Azure Monitor. Zapoznaj się z artykułem Instalowanie i konfigurowanie hostów kontenerów systemu Windows , jeśli masz środowisko systemu Windows.
- W przypadku orkiestracji wielu hostów platformy Docker:
- Jeśli masz środowisko Red Hat OpenShift, zapoznaj się z artykułem Konfigurowanie agenta usługi Log Analytics dla biblioteki Red Hat OpenShift.
- Jeśli masz klaster Kubernetes przy użyciu usługi Azure Container Service:
- Zapoznaj się z artykułem Konfigurowanie agenta systemu Linux usługi Log Analytics dla platformy Kubernetes.
- Zapoznaj się z artykułem Konfigurowanie agenta systemu Windows usługi Log Analytics dla platformy Kubernetes.
- Zapoznaj się z tematem Wdrażanie agenta usługi Log Analytics na platformie Kubernetes przy użyciu narzędzia Helm.
- Jeśli masz klaster DC/OS usługi Azure Container Service, dowiedz się więcej w artykule Monitorowanie klastra DC/OS usługi Azure Container Service za pomocą usługi Azure Monitor.
- Jeśli masz środowisko trybu docker Swarm, dowiedz się więcej na temat konfigurowania agenta usługi Log Analytics dla platformy Docker Swarm.
- Jeśli masz klaster usługi Service Fabric, dowiedz się więcej w artykule Monitorowanie kontenerów za pomocą usługi Azure Monitor.
- W przypadku hostów autonomicznych:
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:
- Aby uzyskać więcej informacji i kroków dotyczących sposobu instalowania agenta usługi Log Analytics dla systemu Linux, zobacz Omówienie agenta usługi Log Analytics.
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.
Uruchom następujące polecenie w węźle głównym.
echo "WSID" | docker secret create WSID - echo "KEY" | docker secret create KEY -
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
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.
- Instalowanie agenta usługi Log Analytics dla systemu Linux bezpośrednio w każdym węźle OpenShift
- Włączanie rozszerzenia maszyny wirtualnej usługi Log Analytics w każdym węźle OpenShift znajdującym się na platformie Azure
- Instalowanie agenta usługi Log Analytics jako demona OpenShift
W tej sekcji omówiono kroki wymagane do zainstalowania agenta usługi Log Analytics jako demona OpenShift.
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.
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
Aby wdrożyć demona zestawu, uruchom następujące polecenie:
oc create -f ocp-omsagent.yaml
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.
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.
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
Wdróż plik wpisu tajnego, uruchamiając następujące polecenie:
oc create -f ocp-secret.yaml
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
Wdróż plik yaml demona agenta usługi Log Analytics, uruchamiając następujące polecenie:
oc create -f ocp-ds-omsagent.yaml
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
Aby użyć narzędzia DaemonSet agenta usługi Log Analytics przy użyciu informacji tajnych, najpierw utwórz wpisy tajne.
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
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
Utwórz zasobnik wpisów tajnych, uruchamiając następujące polecenie:
sudo kubectl create -f omsagentsecret.yaml
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
Utwórz zestaw demona omsagent, uruchamiając polecenie
sudo kubectl create -f omsagent-ds-secrets.yaml
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.
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.
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
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
Utwórz zestaw demona omsagent, uruchamiając polecenie
kubectl create -f omsagentsecret.yaml
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
Utwórz zestaw demona omsagent, uruchamiając polecenie
kubectl create -f ws-omsagent-de-secrets.yaml
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
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.
Utwórz zestaw demona omsagent, uruchamiając polecenie
helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms
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
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.
- Agent usługi Log Analytics dla systemu Linux
- Agent systemu Windows
- Rozszerzenie maszyny wirtualnej usługi Log Analytics
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_s
PodLabel_deploymentconfig_s
bę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.
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.
W obszarze Stan kontenera kliknij górny obszar, jak pokazano poniżej.
Usługa Log Analytics zostanie otwarta, wyświetlając informacje o stanie kontenerów.
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
- Kliknij obszar Stan kontenera .
- Usługa Log Analytics otworzy się i wyświetli stan kontenerów, podobnie jak poniżej.
- Rozwiń wiersz Niepowodzenie i kliknij przycisk +, aby dodać kryteria do zapytania. Następnie oznacz jako komentarz wiersz Summarize w zapytaniu.
- Uruchom zapytanie, a następnie rozwiń wiersz w wynikach, aby wyświetlić identyfikator obrazu.
- 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.
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"
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ń.
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.