Como uso o EC2Rescue para Linux para solucionar problemas no nível do sistema operacional?

7 minuto de leitura
0

Não consigo me conectar à minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) ou estou tendo problemas na inicialização. Para corrigir esses problemas, preciso corrigir problemas comuns, como permissões de arquivos OpenSSH ou coletar logs do sistema (OS) para análise e solução de problemas. Como posso usar o EC2Rescue para Linux para fazer isso?

Breve descrição

O EC2Rescue para Linux é uma ferramenta que ajuda a diagnosticar e solucionar problemas nas instâncias do Linux do Amazon EC2. O EC2Rescue para Linux é executado em sua instância do Linux do Amazon EC2 para corrigir problemas no nível do sistema operacional. O EC2Rescue para Linux também coleta logs avançados, relatórios de utilização do sistema e arquivos de configuração para análise adicional.

Cenários comuns abordados pelo EC2Rescue para Linux:

  • Colete relatórios de utilização do sistema, como vmstat, iostat, mpstat e assim por diante.
  • Colete registros e detalhes como syslog, dmesg, registros de erros de aplicações e logs SSM.
  • Detecte problemas do sistema, como roteamento assimétrico ou rótulos duplicados do dispositivo raiz.
  • Corrija automaticamente problemas do sistema, como corrigir as permissões do arquivo OpenSSH ou desativar parâmetros problemáticos conhecidos do kernel.

Requisitos do sistema

O EC2Rescue para Linux requer uma instância do Linux do Amazon EC2 que atenda aos seguintes pré-requisitos:

Sistemas operacionais compatíveis

  • Amazon Linux 2
  • Amazon Linux 2016.09+
  • SLES 12+
  • RHEL 7+
  • Ubuntu 16.04+

Requisitos de software

  • Python 2.7.9+ ou 3.2+

Observação: se você ativou o Console de Série do EC2 para Linux, poderá usá-lo para solucionar problemas de tipos de instância baseados em Nitro compatíveis. O console serial ajuda você a solucionar problemas de inicialização, configuração de rede e problemas de configuração SSH. O console de série se conecta à sua instância sem a necessidade de uma conexão de rede ativa. Você pode acessar o console serial usando o console do Amazon EC2 ou a AWS Command Line Interface (AWS CLI).

Antes de usar o console serial, conceda acesso ao console no nível da conta. Crie políticas do AWS Identity and Access Management (IAM) concedendo acesso aos seus usuários do IAM. Além disso, todas as instâncias que usam o console serial devem incluir pelo menos um usuário baseado em senha. Se sua instância estiver inacessível e você não tiver configurado o acesso ao console serial, siga as instruções na seção Resolução. Para informações sobre como configurar o Console de Série do EC2 para Linux, consulte Configure access to the EC2 Serial Console (Configurar o acesso ao Console de Série do EC2).

Observação: Se você receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.

Resolução

Para solucionar problemas de uma instância inacessível do Linux do Amazon EC2 usando o EC2Rescue para Linux, faça o seguinte:

1.    Execute uma nova instância do Amazon EC2 em sua nuvem privada virtual (VPC) usando a mesma imagem de máquina da Amazon (AMI) e na mesma zona de disponibilidade da instância danificada. A nova instância se torna sua instância de “resgate”. Ou você pode usar uma instância existente que você possa acessar, se ela usar a mesma AMI e estiver na mesma zona de disponibilidade da sua instância danificada.

2.    Separe o volume raiz do Amazon Elastic Block Store (Amazon EBS) (/dev/xvda ou /dev/sda1) da sua instância danificada. Anote o nome do dispositivo para ter certeza de que é o mesmo ao anexá-lo de novo posteriormente

3.    Anexe o volume do EBS como um dispositivo secundário (/dev/sdf) à instância de resgate.

4.    Conecte-se à sua instância de resgate usando SSH.

5.    Torne-se raiz, identifique o nome correto do dispositivo usando lsblk e salve-o para uso durante todo o processo:

$ sudo -i
# lsblk
# rescuedev=/dev/xvdf1

Observação: o dispositivo (/dev/xvdf1) pode estar anexado à instância de resgate com um nome de dispositivo diferente. Use o comando lsblk para visualizar seus dispositivos de disco disponíveis junto com seus pontos de montagem para determinar os nomes corretos dos dispositivos.

6.    Selecione um ponto de montagem temporário apropriado para usar e certifique-se de que ele exista. Use /mnt, a menos que já esteja em uso.

# rescuemnt=/mnt
# mkdir -p $rescuemnt

7.    Monte o sistema de arquivos raiz a partir do volume anexado:

# mount $rescuedev $rescuemnt

Observação: se a montagem do volume falhar, verifique dmesg | tail. Se os logs sugerirem um UUID conflitante, use a opção -o nouuid.

8.    Monte sistemas de arquivos especiais e altere o diretório raiz (chroot) para o sistema de arquivos recém-montado:

# for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done
# chroot $rescuemnt

9.     Baixe e instale a ferramenta EC2Rescue para Linux em um volume raiz Linux offline:

# curl -O https://s3.amazonaws.com/ec2rescuelinux/ec2rl.tgz
# tar -xf ec2rl.tgz

10.    Verifique a instalação listando o arquivo de ajuda:

# cd ec2rl-<version_number>
# ./ec2rl help

11.    Execute o EC2Rescue para Linux sem opções para executar todos os módulos:

# ./ec2rl run

12.    Veja os resultados em /var/tmp/ec2rl:

# cat /var/tmp/ec2rl/*/Main.log | more

13.    Habilite a remediação dos módulos suportados com base nos resultados:

# ./ec2rl run --remediate

14.    Depois que a remediação estiver concluída, saia do chroot e desmonte o dispositivo secundário:

# exit
# umount $rescuemnt/{proc,sys,dev,run,}

Observação: se a operação de desmontagem não for bem-sucedida, talvez seja necessário interromper ou reinicializar a instância de resgate para permitir uma desmontagem limpa.

15.    Separe o volume secundário (/dev/sdf) da instância de resgate do EC2 e, em seguida, anexe-o à instância original como /dev/xvda ou /dev/sda1 (volume raiz). Confirme se isso é o mesmo visto na etapa 2.

16.    Inicie a instância do EC2 e, em seguida, verifique se a instância responde.

Observação: você também pode usar um documento do AWS Systems Manager Automation para solucionar problemas de conexão. Para obter mais informações, consulte Passo a passo: execute a ferramenta EC2Rescue em instâncias inacessíveis. O documento AWSSupport-ExecuteEC2Rescue foi feito para automatizar as etapas normalmente necessárias para usar o EC2Rescue para Linux. Essas etapas são uma combinação de ações do Systems Manager, ações do AWS CloudFormation e funções do AWS Lambda.

Solução de problemas adicionais


Informações relacionadas

Recupere suas instâncias danificadas usando o EC2Rescue e o Amazon EC2 Systems Manager Automation

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos