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:
- 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
Uwaga
Niektóre kolumny wymienione w poniższej tabeli istnieją tylko w ramach schematu i nie będą miały żadnych danych emitowanych w dziennikach. Te kolumny są oznaczone opisem "Empty".
ContainerInstanceLog_CL
Kolumna | Type | Opis |
---|---|---|
Komputer | string | Pusty |
ContainerGroup_s | string | Nazwa grupy kontenerów skojarzonej z rekordem |
ContainerID_s | string | Unikatowy identyfikator kontenera skojarzonego z rekordem |
ContainerImage_s | string | Nazwa obrazu kontenera skojarzonego z rekordem |
Location_s | string | Lokalizacja zasobu skojarzonego z rekordem |
Wiadomość | string | Jeśli ma to zastosowanie, komunikat z kontenera |
OSType_s | string | Nazwa systemu operacyjnego, na podstawie których kontener jest oparty |
RawData | string | Pusty |
ResourceGroup | string | Nazwa grupy zasobów, z którą jest skojarzony rekord |
Source_s | string | Nazwa składnika rejestrowania "LoggingAgent" |
SubscriptionId | string | Unikatowy identyfikator subskrypcji, z którą jest skojarzony rekord |
TimeGenerated | datetime | Sygnatura czasowa wygenerowania zdarzenia przez usługę platformy Azure przetwarza żądanie odpowiadające zdarzeniu |
Typ | string | Nazwa tabeli |
_ResourceId | string | Unikatowy identyfikator zasobu skojarzonego z rekordem |
_Subscriptionid | string | Unikatowy identyfikator subskrypcji, z którą jest skojarzony rekord |
ContainerEvent_CL
Kolumna | Type | Opis |
---|---|---|
Komputer | string | Pusty |
ContainerGroupInstanceId_g | string | Unikatowy identyfikator grupy kontenerów skojarzonej z rekordem |
ContainerGroup_s | string | Nazwa grupy kontenerów skojarzonej z rekordem |
ContainerName_s | string | Nazwa kontenera skojarzonego z rekordem |
Count_d | rzeczywiste | Ile razy zdarzenie miało miejsce od ostatniego sondowania |
FirstTimestamp_t | datetime | Znacznik czasu pierwszego wystąpienia zdarzenia |
Location_s | string | Lokalizacja zasobu skojarzonego z rekordem |
Wiadomość | string | Jeśli ma to zastosowanie, komunikat z kontenera |
OSType_s | string | Nazwa systemu operacyjnego, na podstawie których kontener jest oparty |
RawData | string | Pusty |
Reason_s | string | Bieżący stan grupy kontenerów |
ResourceGroup | string | Nazwa grupy zasobów, z którą jest skojarzony rekord |
SubscriptionId | string | Unikatowy identyfikator subskrypcji, z którą jest skojarzony rekord |
TimeGenerated | datetime | Sygnatura czasowa wygenerowania zdarzenia przez usługę platformy Azure przetwarza żądanie odpowiadające zdarzeniu |
Typ | string | Nazwa tabeli |
_ResourceId | string | Unikatowy identyfikator zasobu skojarzonego z rekordem |
_Subscriptionid | string | Unikatowy identyfikator subskrypcji, z którą jest skojarzony rekord |
Korzystanie z Ustawienia diagnostycznych
Diagnostyka Ustawienia dla grup kontenerów jest funkcją w wersji zapoznawczej i można ją włączyć za pośrednictwem opcji funkcji w wersji zapoznawczej w witrynie Azure Portal. Po włączeniu tej funkcji dla subskrypcji można zastosować Ustawienia diagnostyczne do grupy kontenerów. Zastosowanie Ustawienia diagnostycznych powoduje ponowne uruchomienie grupy kontenerów.
Poniżej przedstawiono na przykład sposób użycia polecenia New-AzDiagnosticSetting w celu zastosowania obiektu Ustawienia diagnostycznego do grupy kontenerów.
$log = @()
$log += New-AzDiagnosticSettingLogSettingsObject -Enabled $true -Category ContainerInstanceLog -RetentionPolicyDay 7 -RetentionPolicyEnabled $true
New-AzDiagnosticSetting -Name test-setting -ResourceId <container-group-resource-id> -WorkspaceId <log-analytics-workspace-id> -Log $log
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: