Em ambientes de infraestrutura baseados em virtualização, a investigação de falhas em máquinas virtuais (VMs) sempre representou um desafio técnico considerável. Problemas como travamentos de kernel, telas azuis em sistemas Windows ou lentidões severas de I/O exigiam, tradicionalmente, a execução de ferramentas de diagnóstico que coletavam dados de todo o cluster. Esse processo não apenas consumia recursos computacionais preciosos, mas também gerava volumes massivos de informações, tornando a triagem lenta e ineficiente.
Otimizando a Coleta de Dados com Foco no Problema
Recentemente, foi introduzido um novo modo de operação na ferramenta must-gather, especificamente voltado para o KubeVirt, chamado --vm-incident. O objetivo principal desta funcionalidade é permitir que administradores de sistemas e engenheiros de DevOps realizem uma coleta cirúrgica de dados, isolando o escopo da investigação apenas ao que é relevante para o incidente.
Ao invés de processar logs de todo o ambiente, o novo modo permite definir:
- A VM específica que apresentou o erro.
- O nó (node) onde a VM estava em execução no momento exato do incidente.
- Uma janela de tempo precisa em torno do ocorrido.
Como Funciona a Coleta Seletiva
A ferramenta utiliza consultas PromQL para identificar automaticamente o nó que hospedava a VM no momento da falha. A partir disso, ela estabelece uma janela de coleta — geralmente abrangendo 24 horas antes e 2 horas após o incidente — para capturar o contexto necessário sem ruído excessivo.
O conjunto de dados coletado é abrangente e inclui:
- Dados do Host: Logs do sistema, estado da rede, diagnósticos de armazenamento, métricas de pressão de CPU/memória e parâmetros de kernel.
- Contexto da VM: Definições de objetos, volumes, PVCs e eventos associados ao namespace.
- Estado em Tempo Real: Se a VM ainda estiver em estado de falha, a ferramenta captura logs do QEMU, console serial e estatísticas do hypervisor.
- Métricas: Dados exportados em formato OpenMetrics para análise temporal.
Impacto na Operação e Segurança
A principal vantagem desta abordagem é a redução drástica do tempo de resposta (MTTR). Ao focar apenas no nó e na VM afetada, a equipe de suporte evita a sobrecarga de sistemas de armazenamento e rede que ocorreria durante uma coleta de dados em larga escala. Além disso, a estrutura dos arquivos gerados, que inclui um resumo detalhado (incident-summary.yaml), garante que o administrador saiba exatamente o que foi coletado, facilitando auditorias e conformidade.
Outro ponto relevante é a preparação para automação. A natureza estruturada e delimitada desses dados é ideal para alimentar ferramentas de análise baseadas em inteligência artificial, permitindo que padrões de falhas sejam identificados com muito mais precisão do que em logs brutos e desorganizados.
Recomendações para Administradores
Para utilizar o novo modo, o comando segue a estrutura padrão, exigindo apenas a especificação do namespace, o nome da VM e o horário do incidente no formato ISO-8601:
oc adm must-gather --image=quay.io/kubevirt/must-gather -- NS=seu-namespace VM=sua-vm /usr/bin/gather --vm-incident --incident-time=2026-07-16T10:00:00Z
Implementar essa prática em sua rotina de manutenção ajuda a manter a saúde do seu ambiente de nuvem ou servidor virtualizado, garantindo que, quando problemas ocorrerem, a equipe técnica tenha as informações certas em mãos, sem comprometer a estabilidade do restante da infraestrutura.
