Compartilhar via


Monitorar o cluster Nexus Kubernetes

Cada cluster do Nexus Kubernetes consiste em várias camadas:

  • VMs (Máquinas Virtuais)
  • Camada do Kubernetes
  • Pods de aplicativo

Captura de tela do cluster de exemplo do Kubernetes do Nexus.

Figura: exemplo de cluster do Nexus Kubernetes

Em uma instância, os clusters do Kubernetes do Nexus são fornecidos com uma solução de observabilidade opcional de Insights do Contêiner. O Container Insights captura os logs e as métricas de clusters e cargas de trabalho do Nexus Kubernetes. Fica a seu critério habilitar essa ferramenta ou implantar sua própria pilha de telemetria.

O cluster do Nexus Kubernetes com a ferramenta de monitoramento do Azure tem a seguinte aparência:

Captura de tela do cluster do Kubernetes do Nexus com Ferramentas de Monitoramento.

Figura: cluster do Nexus Kubernetes com as Ferramentas de Monitoramento

Integração de extensão com a CLI usando autenticação de identidade gerenciada

Documentação para começar com a CLI do Azure, como instalá-la em vários sistemas operacionais e como instalar extensões da CLI.

Instale a versão mais recente das extensões necessárias da CLI.

Monitorar o cluster Nexus Kubernetes

Este guia de instruções fornece etapas para habilitar agentes de monitoramento para a coleção de logs do sistema dessas VMs usando o Agente de Monitoramento do Azure. As instruções capturam mais detalhes sobre como configurar a coleta de dados de log em um workspace do Log Analytics.

Pré-requisitos

  • Acesso de administrador de cluster ao cluster do Nexus Kubernetes.

  • Para usar servidores habilitados para o Azure Arc, registre os seguintes provedores de recursos do Azure na sua assinatura:

    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

Registre estes provedores de recursos, se não tiver feito anteriormente:

az account set --subscription "{the Subscription Name}"
az provider register --namespace 'Microsoft.HybridCompute'
az provider register --namespace 'Microsoft.GuestConfiguration'
az provider register --namespace 'Microsoft.HybridConnectivity'
  • Atribua uma entidade de serviço do Azure às seguintes funções internas do Azure, conforme necessário. Atribua a entidade de serviço ao grupo de recursos do Azure que tem as máquinas virtuais a serem conectadas:
Função Necessária para
Administrador de Recursos de Azure Connected Machine ou Colaborador Conectar o servidor de VM do cluster do Nexus Kubernetes habilitado para Arc no grupo de recursos e instalar o AMA (Agente de Monitoramento do Azure)
Colaborador de Monitoramento ou Colaborador Criar uma DCR (Regra de Coleta de Dados) no grupo de recursos e associar servidores habilitados para Arc a ela
Administrador de Acesso do Usuário e Colaborador da Política de Recurso ou Colaborador Necessária se você quiser usar as atribuições de política do Azure para garantir que uma DCR esteja associado a computadores habilitados para Arc
Colaborador da Extensão Kubernetes Necessária para implantar a extensão de K8s para o Container Insights

Monitorar o cluster Nexus Kubernetes

Pré-requisitos

Há certos pré-requisitos que o operador deve garantir para configurar as ferramentas de monitoramento em clusters do Nexus Kubernetes.

O Contêiner Insights armazena seus dados em um workspace do Log Analytics. Os dados de log fluem para o workspace cuja ID do recurso você forneceu durante a instalação da extensão dos Insights do contêiner. Caso contrário, os dados se fundem em um workspace padrão no grupo de recursos associado à sua assinatura (com base na localização do Azure).

Um exemplo no Leste dos EUA pode ter a seguinte aparência:

  • Nome do workspace do Log Analytics: DefaultWorkspace-<GUID>-EUS
  • Nome do grupo de recursos: DefaultResourceGroup-EUS

Execute o seguinte comando para obter uma ID de recurso do workspace do Log Analytics pré-existente:

az login

az account set --subscription "<Subscription Name or ID the Log Analytics workspace is in>"

az monitor log-analytics workspace show --workspace-name "<Log Analytics workspace Name>" \
  --resource-group "<Log Analytics workspace Resource Group>" \
  -o tsv --query id

Para implantar o Container Insights e exibir dados no workspace do Log Analytics aplicável requer determinadas atribuições de função em sua conta. Por exemplo, a atribuição de função “Colaborador”. Consulte as instruções para atribuir funções necessárias:

  • Função Colaborador do Log Analytics: permissões necessárias para habilitar o monitoramento de contêineres em um cluster de CNF (provisionado).
  • Função Leitor do Log Analytics: não membros da função Colaborador do Log Analytics, recebam permissões para exibir dados no workspace do Log Analytics depois de habilitar o monitoramento de contêineres.

Instalar a extensão do cluster

Entre no Azure Cloud Shell para acessar o cluster:

az login

az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"

Agora, implante a extensão do Container Insights em um cluster do Nexus Kubernetes provisionado usando um dos dois próximos comandos:

Com o workspace do Log Analytics pré-criado pelo cliente

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings logAnalyticsWorkspaceResourceID="<Log Analytics workspace Resource ID>" \
  amalogsagent.useAADAuth=true

Usar um workspace padrão do Log Analytics

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings amalogsagent.useAADAuth=true

Validar a extensão do cluster

Valide a implantação bem-sucedida da habilitação dos agentes de monitoramento nos clusters do Nexus Kubernetes usando o seguinte comando:

az k8s-extension show --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters

Procure um estado de provisionamento de "Bem-sucedido" para a extensão. O comando "k8s-extension create" também pode ter retornado o status.

Personalizar a coleção de logs e métricas

O Container Insights fornece funcionalidade de usuários finais para ajustar a coleção de logs e métricas de clusters do Nexus Kubernetes. Consulte as instruções para Configurar a coleta de dados do agente dos insights do contêiner para obter mais informações.

Observação

Os insights do contêiner não coletam logs do namespace kube-system por padrão. Para coletar logs do namespace kube-system, você deve configurar o agente para coletar logs do namespace kube-system. Isso pode ser feito removendo o namespace kube-system do campo excludedNamespaces no ConfigMap seguindo a abordagem de configuração configMap.

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absence of this configmap, default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stdout' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absence of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namespace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

  [log_collection_settings.stderr]
    # Default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stderr' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absence of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namespace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

Recursos adicionais