Udostępnij za pośrednictwem


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 kontenera, potrzebne są następujące elementy:

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:

  1. W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
  2. W obszarze Ustawienia wybierz pozycję Zarządzanie agentami
  3. 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:

  1. W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
  2. W obszarze Ogólne wybierz pozycję Dzienniki
  3. Wpisz następujące zapytanie: ContainerInstanceLog_CL | limit 50
  4. 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.

Wyniki przeszukiwania dzienników w witrynie Azure Portal

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:

  1. W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics
  2. W obszarze Ogólne wybierz pozycję Dzienniki
  3. Wpisz następujące zapytanie: ContainerEvent_CL | limit 50
  4. 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.

Wyniki wyszukiwania zdarzeń w witrynie Azure Portal

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. Ustawienia diagnostyczne dla usługi Container Instances są dostępne w publicznej wersji zapoznawczej i można je 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:

Monitorowanie procesora i pamięci kontenera

Aby uzyskać informacje na temat monitorowania procesora wystąpienia i zasobów pamięci kontenera, zobacz temat: