Rejestrowanie grup kontenerów i wystąpień za pomocą dzienników usługi Azure Monitor
Obszary robocze usługi Log Analytics zapewniają scentralizowaną lokalizację do przechowywania i wykonywania zapytań dotyczących danych dziennika nie tylko z zasobów platformy Azure, ale także zasobów lokalnych i zasobów w innych chmurach. Usługa Azure Container Instances obejmuje wbudowaną obsługę wysyłania dzienników i danych zdarzeń do dzienników usługi Azure Monitor.
Aby wysłać dziennik grupy kontenerów i dane zdarzeń do dzienników usługi Azure Monitor, określ istniejący identyfikator obszaru roboczego usługi Log Analytics i klucz obszaru roboczego podczas konfigurowania grupy kontenerów.
W poniższych sekcjach opisano sposób tworzenia grupy kontenerów z włączoną obsługą rejestrowania oraz wykonywania zapytań dotyczących dzienników. Możesz również zaktualizować grupę kontenerów przy użyciu identyfikatora obszaru roboczego i klucza obszaru roboczego, aby włączyć rejestrowanie.
Uwaga
Ten artykuł został niedawno zaktualizowany, aby użyć terminu Dzienniki usługi Azure Monitor zamiast usługi Log Analytics. Dane dziennika 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.
Wymagania wstępne
Aby włączyć rejestrowanie w wystąpieniach kontenerów, potrzebne są następujące wymagania wstępne:
- Obszar roboczy usługi Log Analytics
- Interfejs poziomu wywołania platformy Azure (lub usługa Cloud Shell)
Uzyskiwanie poświadczeń usługi Log Analytics
Usługa Azure Container Instances wymaga uprawnień do wysyłania danych do obszaru roboczego usługi Log Analytics. Aby nadać to uprawnienie i włączyć rejestrowanie, należy podać identyfikator obszaru roboczego usługi Log Analytics i jeden z jego kluczy (podstawowy lub pomocniczy) podczas tworzenia grupy kontenerów.
Aby uzyskać identyfikator obszaru roboczego analizy dzienników i klucz podstawowy:
- W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
- W obszarze Ustawienia wybierz pozycję Zarządzanie agentami
- Zanotuj następujące kwestie:
- Identyfikator obszaru roboczego
- Klucz podstawowy
Tworzenie grupy kontenerów
Teraz, gdy masz identyfikator obszaru roboczego analizy dzienników i klucz podstawowy, możesz utworzyć grupę kontenerów z włączonym rejestrowaniem.
W poniższych przykładach pokazano dwa sposoby tworzenia grupy kontenerów składającej się z pojedynczego kontenera fluentd : interfejsu wiersza polecenia platformy Azure i interfejsu wiersza polecenia platformy Azure przy użyciu szablonu YAML. Kontener fluentd tworzy kilka wierszy danych wyjściowych w domyślnej konfiguracji. Ponieważ te dane wyjściowe są wysyłane do obszaru roboczego usługi Log Analytics, są przydatne do przedstawiania wyświetlania i wykonywania zapytań przez dzienniki.
Wdrażanie przy użyciu interfejsu wiersza polecenia platformy Azure
Aby przeprowadzić wdrożenie przy użyciu wiersza polecenia platformy Azure, należy określić parametry --log-analytics-workspace
i --log-analytics-workspace-key
w poleceniu az container create. Przed uruchomieniem następującego polecenia należy zastąpić te dwie wartości obszaru roboczego wartościami uzyskanymi w poprzednim kroku (i zaktualizować nazwę grupy zasobów).
Uwaga
Poniższy przykład ściąga publiczny obraz kontenera z usługi Docker Hub. Zalecamy skonfigurowanie wpisu tajnego ściągania w celu uwierzytelniania przy użyciu konta usługi Docker Hub zamiast tworzenia anonimowego żądania ściągnięcia. Aby zwiększyć niezawodność podczas pracy z zawartością publiczną, zaimportuj obraz i zarządzaj nim w prywatnym rejestrze kontenerów platformy Azure. Dowiedz się więcej o pracy z obrazami publicznymi.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Wdrażanie za pomocą kodu YAML
Użyj tej metody, jeśli chcesz wdrożyć grupy kontenerów za pomocą kodu YAML. Poniższy kod YAML definiuje grupę kontenerów z jednym kontenerem. Skopiuj kod YAML do nowego pliku, a następnie zastąp parametry LOG_ANALYTICS_WORKSPACE_ID
i LOG_ANALYTICS_WORKSPACE_KEY
przy użyciu wartości uzyskanych w poprzednim kroku. Zapisz plik jako deploy-aci.yaml.
Uwaga
Poniższy przykład ściąga publiczny obraz kontenera z usługi Docker Hub. Zalecamy skonfigurowanie wpisu tajnego ściągania w celu uwierzytelniania przy użyciu konta usługi Docker Hub zamiast tworzenia anonimowego żądania ściągnięcia. Aby zwiększyć niezawodność podczas pracy z zawartością publiczną, zaimportuj obraz i zarządzaj nim w prywatnym rejestrze kontenerów platformy Azure. Dowiedz się więcej o pracy z obrazami publicznymi.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Następnie wykonaj następujące polecenie, aby wdrożyć grupę kontenerów. Zastąp myResourceGroup
element grupą zasobów w ramach subskrypcji (lub najpierw utwórz grupę zasobów o nazwie "myResourceGroup"):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Zaraz po wykonaniu polecenia powinna pojawić się odpowiedź z usługi Azure zawierająca szczegóły wdrożenia.
Wyświetlanie dzienników
Po wdrożeniu grupy kontenerów może upłynąć kilka minut (do 10), aby pierwsze wpisy dziennika pojawiły się w witrynie Azure Portal.
Aby wyświetlić dzienniki grupy kontenerów w ContainerInstanceLog_CL
tabeli:
- W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
- W obszarze Ogólne wybierz pozycję Dzienniki
- Wpisz następujące zapytanie:
ContainerInstanceLog_CL | limit 50
- Wybierz pozycję Uruchom
Powinno pojawić się kilka wyników dla każdego zapytania . Jeśli na początku nie widzisz żadnych wyników, zaczekaj kilka minut, a następnie wybierz przycisk Uruchom , aby wykonać zapytanie ponownie. Domyślnie wpisy dziennika są wyświetlane w formacie tabeli . Następnie możesz rozwijać wiersze, aby wyświetlić zawartość poszczególnych wpisów dziennika.
Wyświetl zdarzenia
Zdarzenia dla wystąpień kontenera można również wyświetlić w witrynie Azure Portal. Zdarzenia obejmują czas tworzenia wystąpienia i jego uruchamiania. Aby wyświetlić dane zdarzenia w ContainerEvent_CL
tabeli:
- W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
- W obszarze Ogólne wybierz pozycję Dzienniki
- Wpisz następujące zapytanie:
ContainerEvent_CL | limit 50
- Wybierz pozycję Uruchom
Powinno pojawić się kilka wyników dla każdego zapytania . Jeśli na początku nie widzisz żadnych wyników, zaczekaj kilka minut, a następnie wybierz przycisk Uruchom , aby wykonać zapytanie ponownie. Domyślnie wpisy są wyświetlane w formacie tabeli . Następnie możesz rozwinąć wiersz, aby wyświetlić zawartość pojedynczego wpisu.
Wykonywanie zapytań dla dzienników kontenerów
Dzienniki usługi Azure Monitor obejmują rozszerzony język zapytań do ściągania informacji nawet z tysięcy wierszy danych wyjściowych dziennika.
Podstawową strukturą zapytania jest tabela źródłowa (w tym artykule ContainerInstanceLog_CL
lub ContainerEvent_CL
) po której następuje seria operatorów oddzielonych znakiem potoku (|
). Można połączyć kilka operatorów, aby dostosować wyniki i wykonać funkcje zaawansowane.
Aby wyświetlić przykładowe wyniki zapytania, wklej następujące zapytanie w polu tekstowym zapytania i wybierz przycisk Uruchom , aby wykonać zapytanie. To zapytanie wyświetla wszystkie wpisy dziennika, których pole „Message” zawiera słowo "warn":
ContainerInstanceLog_CL
| where Message contains "warn"
Bardziej złożone zapytania są również obsługiwane. Na przykład to zapytanie wyświetla tylko wpisy dziennika dla grupy kontenerów "mycontainergroup001" wygenerowane w ciągu ostatniej godziny:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Schemat dziennika
Aby dowiedzieć się więcej na temat starszego schematu usługi Azure Monitor dla usługi Log Analytics, zobacz Starsze tabele usługi Log Analytics.
Korzystanie z ustawień diagnostycznych
Nowsze tabele wymagają użycia ustawień diagnostycznych do kierowania informacji do usługi Log Analytics. Funkcja ustawień diagnostycznych dla usługi Container Instances jest dostępna w publicznej wersji zapoznawczej i można ją włączyć za pomocą opcji funkcji w wersji zapoznawczej w witrynie Azure Portal.
Aby dowiedzieć się więcej, zobacz Tabele usługi Log Analytics usługi Azure Monitor.
Następne kroki
Dzienniki usługi Azure Monitor
Aby uzyskać więcej informacji dotyczących wykonywania zapytań dla dzienników i konfigurowania alertów w dziennikach usługi Azure Monitor, zobacz:
- Understanding log searches in Azure Monitor logs (Informacje o przeszukiwaniu dzienników w usłudze Azure Monitor)
- Unified alerts in Azure Monitor (Ujednolicone alerty na platformie Azure Monitor)
Monitorowanie procesora i pamięci kontenera
Aby uzyskać informacje na temat monitorowania procesora wystąpienia i zasobów pamięci kontenera, zobacz temat: