São Paulo, SP 01415-906, Brasil
11 3158-1049
contato@fcnuvem.com.br

Como Diagnosticar e Resolver Problemas em Máquinas Virtuais no Azure

A FC Nuvem está sempre antenada nas novidades e benefícios que o mundo digital pode oferecer. E é claro que quer te deixar por dentro também! Nosso blog está aqui para te instruir e informar.

Como Diagnosticar e Resolver Problemas em Máquinas Virtuais no Azure

Ultimamente a Microsoft melhorou muito a capacidade de diagnosticar e resolver problemas de VMs Windows e Linux no Azure. Isso era algo muito esperado, até porque, nós como clientes, não temos acesso a infraestrutura onde os workloads são executados. 
Se você ainda não precisou fazer um troubleshooting em alguma VM no Azure, pode ter certeza que mais cedo ou mais tarde vai precisar, não que a plataforma provoque algum tipo de problema recorrente, mas sim porque invariavelmente uma hora algo não vai sair como deveria. 
O Azure possui diversas formas de diagnosticar e resolver problemas, vou explicar as principais delas e tenho certeza que serão bastante úteis durante o troubleshooting. 

Boot Diagnostics 

O Boot Diagnostics (Diagnóstico de Inicialização) é o principal recurso utilizado para diagnosticar problemas durante a inicialização de uma máquina virtual Windows e Linux.
Se a máquina virtual não iniciou ou está demorando muito tempo para iniciar, esse recurso com certeza irá te ajudar a entender o que está acontecendo com a VM naquele momento, veja na imagem abaixo, um exemplo do boot diagnostics, nesse caso a VM simplesmente estava na tela de login, sem problema algum.   

Caso você tenha a necessidade de baixar a imagem e enviar para o seu cliente, basta clicar em download screenshot e será feito o download de um arquivo .bmp. Você também tem a possibilidade de atualizar a console e acompanhar o que está acontecendo. 
Além do screenshot, você também pode visualizar e baixar o log de inicialização das máquinas virtuais, clicando em Serial Log, você vai visualizar o log de boot da VM e caso necessário, pode efetuar o download do mesmo clicando em Download serial log, é importante ressaltar que o screenshot e o arquivo de log ficam salvos em uma conta de armazenamento. 

Como configurar o Boot Diagnostics? 

Esse recurso é ativado por padrão quando criamos uma máquina virtual através do Portal do Azure, ou seja, se você criou uma nova VM e não alterou as configurações padrões durante o provisionamento, não precisa se preocupar. 
Caso você não tenha habilitado o diagnóstico de inicialização, pode escolher uma das seguintes formas para habilitar o mesmo: Portal do Azure, PowerShell, Azure CLI e ARM template. 
Para habilitar via PowerShell, execute os comandos abaixo, substituindo os valores associados as variáveis. 
$vmName = “Nome-da-VM” 
$rgName = “Nome-do-Grupo-de-Recursos” 
$stgAccountName = “Nome-da-Conta-de-Armazenamento” 
$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName 
Set-AzureRmVMBootDiagnostics -VM $vm -ResourceGroupName $rgName -StorageAccountName $stgAccountName -Enable 
Para habilitar via Portal do Azure, siga os seguintes passos: 
1 – Clique na máquina virtual, desça até o final e clique em Boot Diagnostics ou Diagnóstico de Inicialização, se estiver em português; 
2 – Em Settings/Configurações, habilite o Diagnóstico de inicialização e em seguida selecione uma conta de armazenamento que deseja salvar os arquivos de diagnóstico. 

Bom, agora que você conhece o Boot Diagnostics, eu te faço a seguinte pergunta: Se você visualizar através do diagnóstico de inicialização que sua VM não está iniciando devido a um erro de configuração no arquivo FSTAB, o que você pode fazer para resolver esse problema? Resposta: Serial Console 

Serial Console 

Serial Console é um excelente recurso que ainda está em preview, porém, já podemos usufruir do mesmo no Brasil, esse recurso fornece acesso baseado em texto para VMs Windows e Linux, independentemente do estado de rede ou sistema operacional da máquina virtual, em outras palavras, tanto faz se a VM não está respondendo o ping ou se o sistema operacional não está iniciando por algum motivo específico. 
Atualmente, o acesso via serial console está disponível apenas através do Portal do Azure e somente para usuários que possuem a função de colaborador ou superior da VM e da conta de armazenamento configurada no diagnóstico de inicialização. 
Alguns detalhes importantes: 

•O acesso é realizado através da porta serial COM1 da VM; 
•A máquina virtual deve ter o diagnóstico de inicialização habilitado. 

Como abrir o Serial Console? 
1 – Abra o portal do Azure; 
2 – Selecione a sua máquina virtual; 
3 – Role até a seção Support + Troubleshooting e clique na opção Serial console (Preview); 
4 – Feito isso, um novo painel será aberto e a conexão será iniciada; 
5 – Insira suas credenciais. 
Se deu tudo certo, você terá acesso a sua máquina virtual, conforme imagem abaixo. 

Se a sua VM é Windows, você verá que o serial console é um pouco diferente do Linux, onde nós apenas informamos o usúario e senha, no caso de VMs Windows, o serial console conecta-se a VM utilizando o Special Administration Console (SAC), que nada mais é do que uma ferramenta de linha de comando existente desde o Windows Server 2003. 
Ao abrir o Serial Console de uma VM Windows, visualizamos o SAC, conforme imagem abaixo. 
Apenas digite help e veja uma lista de opções disponíveis. 

Se nenhuma dessas opções te atender, você pode abrir um prompt de comando, para isso, apenas digite cmd e em seguida digite ch –sn Cmd0001. Você será solicitado a autenticar e, em seguida, será apresentado um prompt de comando. 

Resource Halth 

Resource Health é um daqueles recursos que pode te ajudar a economizar tempo durante o Troubleshooting, o Resource Health está o tempo todo de olho nos seus recursos, mas com o intuito de garantir que tudo esteja funcionando conforme o esperado, e no caso de problemas, fornece informações que podem te ajudar a entender e resolver o problema. Em outras palavras, ele informa como está a integridade dos seus recursos, fornecendo um histórico de integridade de 14 dias. 
Para abrir o Resource Health, siga os seguintes passos: 

1 – Acesse o portal do Azure; 
2 – Abra um recurso, por exemplo, uma VM; 
3 – Role até a seção Support + Troubleshooting e clique em Resource health. 
Feito isso, você verá o status atual da VM, conforme imagem abaixo:

Além do status atual, também é possível visualizar o histórico de integridade das últimas duas semanas. 
Esse histórico é bastante útil, principalmente quando precisamos entender o que aconteceu com nossa VM em um momento em que não estávamos presentes. 
Para exemplificar, veja na imagem abaixo um evento que ocorreu comigo, minha VM reiniciou e quando olhei o Resource Health dela e identifiquei que houve uma falha no host onde ela estava sendo executada, o que resultou em um Redeploy, esse problema também é conhecido como tempo de inatividade inesperado.  

É importamte saber também que o Resource Health pode apresentar diversos status e cada um tem um significado diferente, deixarei o link com mais informações nas referências. 

Run Command 

Esse recurso saiu de preview a pouco tempo e tem o seu valor, o Run Command basicamente nos permite executar comandos em VMs Windows e Linux sem ter que se conectar remotamente na máquina virtual. 
Por padrão, ele já traz alguns scripts que podem nos ajudar a resolver diversos problemas, por exemplo: 

•Alterar a senha de administrador; 
•Verificar as configurações de rede; 
•Executar scripts personalizados em PowerShell ou ShellScript. 

Para executar um comando em uma VM, através do portal do Azure, selecione sua máquina virtual e clique em Run Command, seguindo a imagem abaixo: 

Esse recurso tem apenas um requisito para funcionar: o Azure VM Agent deve estar instalado. 

Redeploy

Em alguns momentos você vai precisar fazer um Redeploy da sua máquina virtual, isso normalmente é necessário quando não estamos conseguindo acessar a VM remotamente ou quando estamos enfretando problemas relacionados a uma aplicação que está sendo executada. 
Na semana passada, a máquina virtual de um cliente estava inacessível, porém o Resource Health não estava reportando nenhum problema, porém, quando acessei o diagnóstico de inicialização, a VM estava travada na tela de inicialização do Windows, então reiniciei a VM pelo portal e o problema continuou, nesse caso, fiz um Redeploy da VM e o problema foi resolvido. 

Mas afinal, o que é um Redeploy? 

Quando você refaz uma VM, isto é, executa o redeploy, a VM é movida para outro host e esse procedimento gera um downtime de alguns minutos. 
Para refazer uma VM através do PowerShell, execute o seguinte comando: 
Set-AzureRmVM -Redeploy -ResourceGroupName “Nome-do-Grupo-de-Recursos” -Name “Nome-da-VM” 
Se preferir, você  pode usar o Portal do Azure, para isso selecione sua VM e role até a seção Support + Troubleshooting e clique em Redeploy, conforme imagem abaixo. 

Conclusão

Existem diversos recursos disponíveis no Azure para nos ajudar no Troubleshooting. 
Nesse artigo, eu citei os principais, porém, não se limita a isso, se esse conteúdo fez sentido para você, escreve nos comentários para eu saber se estou te ajudando de alguma forma. 

Referências

How to Use Boot diagnostics to Troubleshoot Virtual Machines in Azure 
Virtual Machine Serial Console (Preview) 
Azure Resource Health Overview 
Run PowerShell Scripts in your Windows VM with Run Command 
Run Shell Scripts in your Linux VM with Run Command 
Redeploy Virtual Machine to new Azure Node 

Autor: Daniel Ribeiro da Rosa

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *