Monitorar o cluster Nexus Kubernetes
Cada cluster Nexus Kubernetes consiste em várias camadas:
- Máquinas Virtuais (VMs)
- Camada Kubernetes
- Pods de aplicação
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:
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.