Partilhar via


Monitorar o cluster Nexus Kubernetes

Cada cluster Nexus Kubernetes consiste em várias camadas:

  • Máquinas Virtuais (VMs)
  • Camada Kubernetes
  • Pods de aplicação

Captura de tela do cluster Nexus Kubernetes de exemplo.

Figura: Exemplo de cluster Nexus Kubernetes

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

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

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

Figura: cluster Nexus Kubernetes com ferramentas de monitoramento

Integração de extensão com 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 CLI necessárias.

Monitorar o cluster Nexus Kubernetes

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

Pré-requisitos

  • Acesso de administrador de cluster ao cluster Nexus Kubernetes.

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

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

Registre esses provedores de recursos, se não tiver sido 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 a serem conectadas:
Role Necessário para
Administrador ou Colaborador de Recursos de Máquina Conectada do Azure Conecte o servidor VM de cluster Nexus Kubernetes habilitado para Arc no grupo de recursos e instale o Agente de Monitoramento do Azure (AMA)
Colaborador ou Colaborador de Monitoramento Crie uma Regra de Coleta de Dados (DCR) no grupo de recursos e associe servidores habilitados para Arc a ele
Administrador de Acesso de Usuário e Colaborador ou Colaborador de Política de Recursos Necessário se você quiser usar a(s) atribuição(ões) de política do Azure para garantir que um DCR esteja associado a máquinas habilitadas para Arc
Colaborador de extensão do Kubernetes Necessário para implantar a extensão K8s para Container Insights

Monitorar o cluster Nexus Kubernetes

Pré-requisitos

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

O Container Insights armazena seus dados em um espaço de trabalho do Log Analytics. Os dados de log fluem para o espaço de trabalho cuja ID de recurso você forneceu durante a instalação da extensão Container Insights. Caso contrário, os funis de dados em um espaço de trabalho padrão no grupo de Recursos associado à sua assinatura (com base no local do Azure).

Um exemplo para o Leste dos EUA pode ser parecido com o seguinte:

  • Nome do espaço de trabalho do Log Analytics: DefaultWorkspace-GUID-EUS<>
  • Nome do grupo de recursos: DefaultResourceGroup-EUS

Execute o seguinte comando para obter um ID de recurso do espaço de trabalho 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 espaço de trabalho do Log Analytics aplicável, é necessário determinadas atribuições de função em sua conta. Por exemplo, a atribuição de função "Colaborador". Consulte as instruções para atribuir as funções necessárias:

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

Instalar a extensão de 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 Container Insights em um cluster Nexus Kubernetes provisionado usando um dos próximos dois comandos:

Com o espaço de trabalho de análise de log 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 o espaço de trabalho padrão de análise de log

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 extensão de cluster

Valide a implantação bem-sucedida da ativação dos agentes de monitoramento nos clusters 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 "Succeeded" para a extensão. O comando "k8s-extension create" também pode ter retornado o status.

Personalizar logs e coleta de métricas

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

Nota

O Container Insights não coleta logs do kube-system namespace por padrão. Para coletar logs do kube-system namespace, você deve configurar o agente para coletar logs do kube-system namespace. Isso pode ser feito removendo o kube-system excludedNamespaces namespace do campo no ConfigMap seguindo a configMap abordagem configuraiton .

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absense 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 absense 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 namepace: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 absense 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 namepace: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 extras

  • Revise a documentação das pastas de trabalho e, em seguida, você pode usar as pastas de trabalho Nexus de exemplo de telemetria do Operador Nexus.
  • Reveja os Alertas do Azure Monitor, como criar regras de Alerta do Azure Monitor e utilize modelos de exemplo de Alerta do Nexus do Operador.