Logboeken van Kubernetes-hoofdknooppunten inschakelen en controleren in AKS (Azure Kubernetes Service)Enable and review Kubernetes master node logs in Azure Kubernetes Service (AKS)

Met Azure Kubernetes service (AKS) worden de hoofd onderdelen, zoals de uitvoeren-apiserver en uitvoeren-Controller-Manager , als beheerde service verschaft.With Azure Kubernetes Service (AKS), the master components such as the kube-apiserver and kube-controller-manager are provided as a managed service. U maakt en beheert de knoop punten waarop de kubelet en de container runtime worden uitgevoerd en implementeert uw toepassingen via de beheerde Kubernetes API-server.You create and manage the nodes that run the kubelet and container runtime, and deploy your applications through the managed Kubernetes API server. Voor het oplossen van problemen met uw toepassing en services, moet u mogelijk de logboeken weer geven die door deze hoofd onderdelen zijn gegenereerd.To help troubleshoot your application and services, you may need to view the logs generated by these master components. In dit artikel wordt beschreven hoe u Azure Monitor-Logboeken kunt gebruiken om de logboeken van de Kubernetes-hoofd onderdelen in te scha kelen en te doorzoeken.This article shows you how to use Azure Monitor logs to enable and query the logs from the Kubernetes master components.

Voordat u begintBefore you begin

Voor dit artikel is een bestaand AKS-cluster vereist dat wordt uitgevoerd in uw Azure-account.This article requires an existing AKS cluster running in your Azure account. Als u nog geen AKS-cluster hebt, kunt u er een maken met behulp van Azure cli of Azure Portal.If you do not already have an AKS cluster, create one using the Azure CLI or Azure portal. Azure Monitor logboeken werken met AKS-clusters met zowel Kubernetes RBAC, Azure RBAC en niet-RBAC-ondersteuning.Azure Monitor logs works with both Kubernetes RBAC, Azure RBAC, and non-RBAC enabled AKS clusters.

Resourcelogboeken inschakelenEnable resource logs

Azure Monitor-logboeken bieden een query taal en analyse-engine die inzicht biedt in uw omgeving om gegevens uit meerdere bronnen te verzamelen en te controleren.To help collect and review data from multiple sources, Azure Monitor logs provides a query language and analytics engine that provides insights to your environment. Een werk ruimte wordt gebruikt om de gegevens te sorteren en te analyseren en kan worden geïntegreerd met andere Azure-Services, zoals Application Insights en Security Center.A workspace is used to collate and analyze the data, and can integrate with other Azure services such as Application Insights and Security Center. Als u een ander platform wilt gebruiken om de logboeken te analyseren, kunt u in plaats daarvan een resource logboek verzenden naar een Azure-opslag account of Event Hub.To use a different platform to analyze the logs, you can instead choose to send resource logs to an Azure storage account or event hub. Zie Wat is Azure monitor-logboeken?voor meer informatie.For more information, see What is Azure Monitor logs?.

Azure Monitor-logboeken worden in de Azure Portal ingeschakeld en beheerd.Azure Monitor logs are enabled and managed in the Azure portal. Als u logboek verzameling voor de Kubernetes-hoofd onderdelen in uw AKS-cluster wilt inschakelen, opent u de Azure Portal in een webbrowser en voert u de volgende stappen uit:To enable log collection for the Kubernetes master components in your AKS cluster, open the Azure portal in a web browser and complete the following steps:

  1. Selecteer de resource groep voor uw AKS-cluster, zoals myResourceGroup.Select the resource group for your AKS cluster, such as myResourceGroup. Selecteer niet de resource groep die uw afzonderlijke AKS-cluster resources bevat, zoals MC_myResourceGroup_myAKSCluster_eastus.Don't select the resource group that contains your individual AKS cluster resources, such as MC_myResourceGroup_myAKSCluster_eastus.
  2. Klik aan de linkerkant op Diagnostische instellingen.On the left-hand side, choose Diagnostic settings.
  3. Selecteer uw AKS-cluster, zoals myAKSCluster, en kies vervolgens Diagnostische instelling toevoegen.Select your AKS cluster, such as myAKSCluster, then choose to Add diagnostic setting.
  4. Voer een naam in, zoals myAKSClusterLogs, en selecteer vervolgens de optie om naar log Analytics te verzenden.Enter a name, such as myAKSClusterLogs, then select the option to Send to Log Analytics.
  5. Selecteer een bestaande werk ruimte of maak een nieuwe.Select an existing workspace or create a new one. Als u een werk ruimte maakt, moet u een werkruimte naam, een resource groep en een locatie opgeven.If you create a workspace, provide a workspace name, a resource group, and a location.
  6. Selecteer in de lijst met beschik bare Logboeken de logboeken die u wilt inschakelen.In the list of available logs, select the logs you wish to enable. Voor dit voor beeld schakelt u de logboeken uitvoeren-audit en uitvoeren-audit-admin in.For this example, enable the kube-audit and kube-audit-admin logs. Veelvoorkomende logboeken zijn de uitvoeren-apiserver, uitvoeren-Controller-Manager en uitvoeren scheduler.Common logs include the kube-apiserver, kube-controller-manager, and kube-scheduler. U kunt de verzamelde logboeken retour neren en wijzigen als Log Analytics werk ruimten zijn ingeschakeld.You can return and change the collected logs once Log Analytics workspaces are enabled.
  7. Wanneer u klaar bent, selecteert u Opslaan om het verzamelen van de geselecteerde Logboeken in te scha kelen.When ready, select Save to enable collection of the selected logs.

Logboek CategorieënLog categories

Naast de vermeldingen die door Kubernetes zijn geschreven, bevatten de audit logboeken van uw project ook vermeldingen van AKS.In addition to entries written by Kubernetes, your project's audit logs also have entries from AKS.

Audit logboeken worden vastgelegd in drie categorieën: uitvoeren-audit, uitvoeren-audit-admin en Guard.Audit logs are recorded into three categories: kube-audit, kube-audit-admin, and guard.

  • De categorie uitvoeren bevat alle controle logboek gegevens voor elke controle gebeurtenis, zoals Get, List, Create, Update, Delete, patch en post.The kube-audit category contains all audit log data for every audit event, including get, list, create, update, delete, patch, and post.
  • De categorie uitvoeren-audit-admin is een subset van de uitvoeren-audit logboek categorie.The kube-audit-admin category is a subset of the kube-audit log category. uitvoeren-audit-admin vermindert het aantal logboeken aanzienlijk door het uitsluiten van de controle gebeurtenissen ophalen en weer geven uit het logboek.kube-audit-admin reduces the number of logs significantly by excluding the get and list audit events from the log.
  • De categorie Guard beheert Azure AD en Azure RBAC-controles.The guard category is managed Azure AD and Azure RBAC audits. Voor beheerde Azure AD: token in, gegevens van de gebruiker. Voor Azure RBAC: toegangs beoordelingen in en uit.For managed Azure AD: token in, user info out. For Azure RBAC: access reviews in and out.

Een test pod plannen op het AKS-clusterSchedule a test pod on the AKS cluster

Als u een aantal logboeken wilt genereren, maakt u een nieuwe pod in uw AKS-cluster.To generate some logs, create a new pod in your AKS cluster. Het volgende voor beeld van een YAML-manifest kan worden gebruikt voor het maken van een Basic NGINX-exemplaar.The following example YAML manifest can be used to create a basic NGINX instance. Maak een bestand met nginx.yaml de naam in een editor van uw keuze en plak de volgende inhoud:Create a file named nginx.yaml in an editor of your choice and paste the following content:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeSelector:
    "beta.kubernetes.io/os": linux
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi
    ports:
    - containerPort: 80

Maak de Pod met de opdracht kubectl Create en geef uw yaml-bestand op, zoals wordt weer gegeven in het volgende voor beeld:Create the pod with the kubectl create command and specify your YAML file, as shown in the following example:

$ kubectl create -f nginx.yaml

pod/nginx created

Verzamelde logboeken weer gevenView collected logs

Het kan tot tien minuten duren voordat de diagnostische logboeken zijn ingeschakeld en worden weer gegeven.It may take up to 10 minutes for the diagnostics logs to be enabled and appear.

Notitie

Als u alle controle logboek gegevens voor naleving of andere doel einden nodig hebt, verzamelt en slaat u deze op in goedkope opslag, zoals Blob Storage.If you need all audit log data for compliance or other purposes, collect and store it in inexpensive storage such as blob storage. Gebruik de uitvoeren-audit-admin- logboek categorie voor het verzamelen en opslaan van een zinvolle set audit logboek gegevens voor controle-en waarschuwings doeleinden.Use the kube-audit-admin log category to collect and save a meaningful set of audit log data for monitoring and alerting purposes.

Ga in het Azure Portal naar uw AKS-cluster en selecteer Logboeken aan de linkerkant.In the Azure portal, navigate to your AKS cluster, and select Logs on the left-hand side. Sluit het venster voorbeeld query's als dit wordt weer gegeven.Close the Example Queries window if it appears.

Kies Logboeken aan de linkerkant.On the left-hand side, choose Logs. Als u de uitvoeren-audit logboeken wilt weer geven, voert u de volgende query in het tekstvak in:To view the kube-audit logs, enter the following query in the text box:

AzureDiagnostics
| where Category == "kube-audit"
| project log_s

Veel logboeken worden waarschijnlijk geretourneerd.Many logs are likely returned. Als u de query wilt verkleinen om de logboeken te bekijken over de NGINX pod die u in de vorige stap hebt gemaakt, voegt u een extra where -instructie toe om naar NGINX te zoeken, zoals wordt weer gegeven in de volgende voorbeeld query:To scope down the query to view the logs about the NGINX pod created in the previous step, add an additional where statement to search for nginx as shown in the following example query:

AzureDiagnostics
| where Category == "kube-audit"
| where log_s contains "nginx"
| project log_s

Voer de volgende query in het tekstvak in om de uitvoeren-audit-admin- logboeken weer te geven:To view the kube-audit-admin logs, enter the following query in the text box:

AzureDiagnostics
| where Category == "kube-audit-admin"
| project log_s

In dit voor beeld toont de query alle Create-taken in uitvoeren-audit-admin. Er zijn waarschijnlijk veel resultaten geretourneerd. Als u de query wilt afsluiten om de logboeken te bekijken over de NGINX pod die in de vorige stap zijn gemaakt, voegt u een extra where -instructie toe om naar NGINX te zoeken, zoals wordt weer gegeven in de volgende voorbeeld query.In this example, the query shows all create jobs in kube-audit-admin. There are likely many results returned, to scope down the query to view the logs about the NGINX pod created in the previous step, add an additional where statement to search for nginx as shown in the following example query.

AzureDiagnostics
| where Category == "kube-audit-admin"
| where log_s contains "nginx"
| project log_s

Zie verzamelde gegevens weer geven of analyseren metlogboek registratie van log Analytics voor meer informatie over het opvragen en filteren van uw logboek gegevens.For more information on how to query and filter your log data, see View or analyze data collected with log analytics log search.

Logboek gebeurtenis schemaLog event schema

AKS registreert de volgende gebeurtenissen:AKS logs the following events:

Logboek rollenLog Roles

RolRole BeschrijvingDescription
aksServiceaksService De weergave naam in het controle logboek voor de bewerking van het besturings vlak (van de hcpService)The display name in audit log for the control plane operation (from the hcpService)
masterclientmasterclient De weergave naam in het controle logboek voor MasterClientCertificate, het certificaat dat u krijgt van AZ AKS Get-credentialsThe display name in audit log for MasterClientCertificate, the certificate you get from az aks get-credentials
nodeclientnodeclient De weergave naam voor ClientCertificate, die wordt gebruikt door agent knooppuntenThe display name for ClientCertificate, which is used by agent nodes

Volgende stappenNext steps

In dit artikel hebt u geleerd hoe u de logboeken voor de Kubernetes-hoofd onderdelen in uw AKS-cluster kunt inschakelen en bekijken.In this article, you learned how to enable and review the logs for the Kubernetes master components in your AKS cluster. Als u verder wilt controleren en problemen wilt oplossen, kunt u ook de Kubelet-logboeken weer geven en toegang tot SSH-knoop punt inschakelen.To monitor and troubleshoot further, you can also view the Kubelet logs and enable SSH node access.