Executar o script do coletor de logs no nó de cluster do Kubernetes do Nexus do Operador do Azure

O suporte da Microsoft pode precisar de uma visibilidade mais detalhada no cluster do Kubernetes do Nexus em alguns cenários. Para facilitar isso, um script de coleção de logs está disponível para uso. Esse script recupera todos os logs necessários, permitindo que o suporte da Microsoft obtenha uma melhor compreensão do problema e solucione-o efetivamente.

O que ele coleta

O script do coletor de logs foi criado para coletar dados de maneira abrangente em vários aspectos do sistema para fins de solução de problemas e análise. Confira abaixo uma visão geral dos tipos de dados de diagnóstico coletados:

Diagnóstico do sistema e do kernel

  • Informações do kernel: logs, mensagens legíveis por humanos, versão e arquitetura, para diagnóstico de kernel aprofundado.
  • Logs do sistema operacional: logs essenciais que detalham a atividade do sistema e os logs de contêiner para os serviços do sistema.

Uso de hardware e recursos

  • Processos limitados de CPU e E/S: identifica problemas de limitação, fornecendo insights sobre gargalos de desempenho.
  • Estatísticas da interface de rede: estatísticas detalhadas de adaptadores de rede para diagnosticar erros e quedas.

Software e serviços

  • Pacotes instalados: uma lista de todos os pacotes instalados, essencial para entender o ambiente de software do sistema.
  • Serviços do sistema ativo: informações sobre serviços ativos, instantâneos de processo e estatísticas detalhadas do sistema e do processo.
  • Logs de componentes do Kubernetes e do runtime de contêineres: logs de componentes do Kubernetes e de outros serviços essenciais para o diagnóstico de cluster.

Rede e conectividade

  • Informações de controle de conexão de rede: estatísticas do Conntrack e listas de conexões para diagnóstico de firewall.
  • Detalhes da configuração e da interface da rede: configurações de interface, roteamento IP, endereços e informações de vizinho.
  • Configurações de interface e logs adicionais: logs relacionados à configuração de todas as interfaces dentro do nó.
  • Testes de conectividade de rede: testa a conectividade de rede externa e a comunicação do servidor da API do Kubernetes.
  • Configuração de resolução DNS: configuração do resolvedor DNS para diagnosticar problemas de resolução de nomes de domínio.
  • Configuração e logs de rede: dados de rede abrangentes, incluindo configurações de controle de conexão e interface.
  • Configuração da CNI (interface de rede de contêiner): configuração da CNI para diagnóstico de rede de contêiner.

Segurança e conformidade

  • Status do SELinux: relata o modo SELinux para entender os contextos de segurança e controle de acesso.
  • Regras de IPtables: configuração de conjuntos de regras de IPtables para obter insights sobre as configurações de firewall.

Sistemas de arquivos e armazenamento

  • Pontos de montagem e informações de volume: informações detalhadas sobre pontos de montagem, volumes, uso de disco e detalhes do sistema de arquivos.

Configuração e gerenciamento

  • Configuração do sistema: parâmetros do Sysctl para uma exibição abrangente da configuração de runtime do kernel.
  • Configuração e integridade do Kubernetes: detalhes de instalação do Kubernetes, incluindo configurações e listagens de serviço.
  • Informações de runtime do contêiner: configuração, informações de versão e detalhes sobre a execução de contêineres.
  • Informações de CRI (interface de runtime de contêiner): dados de operações da interface de runtime de contêiner, auxiliando no diagnóstico de orquestração de contêiner.

Pré-requisito

  • Verifique se você tem acesso SSH ao nó de cluster do Kubernetes do Nexus. Se você tiver acessibilidade direta de IP com o nó, estabeleça uma conexão SSH diretamente. Caso contrário, use o Azure Arc para servidores com o comando az ssh arc. Para obter mais informações sobre vários métodos de conectividade, confira o artigo Conectar-se ao cluster.

Execução

Quando tiver acesso SSH ao nó, execute o script do coletor de logs executando o comando sudo /opt/log-collector/collect.sh.

Após a execução, você observará uma saída semelhante a:

Trying to check for root... 
Trying to check for required utilities... 
Trying to create required directories... 
Trying to check for disk space... 
Trying to start collecting logs... Trying to collect common operating system logs... 
Trying to collect mount points and volume information... 
Trying to collect SELinux status... 
.
.
Trying to archive gathered information... 
Finishing up...

        Done... your bundled logs are located in /var/log/<node_name_date_time-UTC>.tar.gz

Como baixar o arquivo de log

Depois que o arquivo de log for gerado, você poderá baixar o arquivo de log gerado do nó de cluster para o computador local usando vários métodos, incluindo o SCP, o SFTP ou a CLI do Azure. No entanto, é importante observar que o SCP ou o SFTP só serão possíveis se você tiver acessibilidade direta de IP com o nó de cluster. Se você não tiver acessibilidade direta de IP, use a CLI do Azure para baixar o arquivo de log.

Esse comando deve parecer familiar para você, pois é o mesmo comando usado para executar o SSH no nó de cluster do Kubernetes do Nexus. Para baixar o arquivo de log gerado do nó para o computador local, use esse comando novamente, com a adição do comando cat no final para copiar o arquivo.

RESOURCE_GROUP="myResourceGroup"
CLUSTER_NAME="myNexusK8sCluster"
SUBSCRIPTION_ID="<Subscription ID>"
USER_NAME="azureuser"
SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>"
MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)

Observação

Substitua as variáveis de espaço reservado pelos valores reais relevantes para o seu ambiente do Azure e o cluster do Kubernetes do Nexus.

az ssh arc --subscription $SUBSCRIPTION_ID \
    --resource-group $MANAGED_RESOURCE_GROUP \
    --name <VM Name> \
    --local-user $USER_NAME \
    --private-key-file $SSH_PRIVATE_KEY_FILE
    'sudo cat /var/log/node_name_date_time-UTC.tar.gz' > <Local machine path>/node_name_date_time-UTC.tar.gz

No comando anterior, substitua node_name_date_time-UTC.tar.gz pelo nome do arquivo de log criado no nó de cluster e <Local machine path> pelo local no computador local em que você deseja salvar o arquivo.

Próximas etapas

Depois de baixar o arquivo TAR para o computador local, você poderá carregá-lo no tíquete de suporte para que o suporte da Microsoft analise os logs.