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
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:
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
- Examine a documentação das pastas de trabalho e, em seguida, você pode usar pastas de trabalho do Operador Nexus de exemplo da telemetria do Operador Nexus.
- Examine os Alertas do Azure Monitor, como criar regras de alerta do Azure Monitor e usar modelos de alerta do Operador Nexus de exemplo.