Comment utiliser EC2Rescue pour Linux pour résoudre les problèmes se produisant au niveau du système d'exploitation ?

Dernière mise à jour : 30/04/2021

Je ne peux pas me connecter à mon instance Amazon EC2 (Amazon Elastic Compute Cloud) Linux ou je rencontre des problèmes lors du démarrage. Pour y remédier, je dois corriger certains problèmes courants comme les autorisations de fichiers OpenSSH ou obtenir des journaux système à des fins d'analyse et de dépannage. Comment utiliser EC2Rescue pour Linux à cette fin ?

Brève description

EC2Rescue pour Linux est un outil qui permet de diagnostiquer et de résoudre les problèmes rencontrés sur les instances Amazon EC2 Linux. EC2Rescue pour Linux est exécuté sur votre instance Amazon EC2 Linux afin de corriger les problèmes au niveau du système d'exploitation. EC2Rescue pour Linux collecte également des journaux avancés, des rapports d'utilisation système et des fichiers de configuration pour une analyse plus approfondie.

Scénarios courants traités par EC2Rescue pour Linux :

  • Collecte de rapports d'utilisation du système tels que vmstat, iostat, mpstat, etc.
  • Collecte de journaux et de détails tels que syslog, dmesg, les journaux d'erreurs d'application et les journaux SSM.
  • Détection des problèmes système tels que le routage asymétrique ou la duplication des étiquettes du périphérique racine.
  • Correction automatique des problèmes système tels que la correction des autorisations de fichier OpenSSH ou la désactivation des paramètres de noyau problématiques connus.

Configuration système requise

EC2Rescue pour Linux nécessite une instance Amazon EC2 Linux qui respecte les prérequis suivants :

Systèmes d'exploitation pris en charge

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

Configuration logicielle requise

  • Python 2.7.9+ ou 3.2+

Remarque : Si vous avez activé EC2 Serial Console pour Linux, vous pouvez l'utiliser pour résoudre les problèmes liés aux types d'instance Nitro pris en charge. EC2 Serial Console vous aide à résoudre les problèmes de démarrage, de configuration réseau et de configuration SSH. EC2 Serial Console se connecte à votre instance sans qu'aucune connexion réseau ne soit nécessaire. Vous pouvez accéder à EC2 Serial Console à l'aide de la console Amazon EC2 ou de l'interface de ligne de commande AWS (AWS CLI).

Avant d'utiliser EC2 Serial Console, accordez-lui l'accès au niveau du compte. Créez ensuite des stratégies AWS Identity and Access Management (IAM) accordant l'accès à vos utilisateurs IAM. De même, chaque instance qui utilise EC2 Serial Console doit inclure au moins un utilisateur avec mot de passe. Si votre instance n'est pas accessible et que vous n'avez pas configuré l'accès à EC2 Serial Console, suivez les instructions de la section Solution. Pour en savoir plus sur la configuration d'EC2 Serial Console pour Linux, consultez Configuration de l'accès à EC2 Serial Console.

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Solution

Pour dépanner une instance Amazon EC2 Linux inaccessible à l'aide d'EC2Rescue pour Linux, procédez comme suit :

1.    Lancez une nouvelle instance Amazon EC2 dans votre Virtual Private Cloud (VPC) en utilisant la même Amazon Machine Image (AMI) et dans la même zone de disponibilité que l'instance affectée. Cette nouvelle instance devient votre instance « de secours ».

Vous pouvez également utiliser une instance existante à laquelle vous pouvez accéder, si elle utilise la même AMI et se trouve dans la même zone de disponibilité que votre instance affectée.

2.    Mettez fin à l'association du volume racine Amazon Elastic Block Store (Amazon EBS) (/dev/xvda ou /dev/sda1) avec l'instance affectée.

3.    Associez le volume EBS, en tant que périphérique secondaire (/dev/sdf), à l'instance de secours.

4.    Connectez-vous à l'instance EC2 en utilisant SSH.

5.    Créez un répertoire de point de montage (/rescue) pour le nouveau volume attaché à l'instance de secours à l'étape 3.

$ sudo mkdir /rescue

6.    Montez le volume dans le répertoire que vous avez créé à l'étape 5.

$ sudo mount /dev/xvdf1 /rescue

Remarque : l'appareil (/dev/xvdf1) peut être attaché à l'instance de secours avec un nom de périphérique différent. Utilisez la commande lsblk pour afficher vos périphériques de disque disponibles, ainsi que leurs points de montage, afin de déterminer les noms de périphériques corrects.

Remarque : si le montage du volume échoue, vérifiez dmesg | tail. Si les journaux suggèrent des UUID en conflit, utilisez l'option -o nouuid.

7.    Remplacez le répertoire racine (chroot) par le volume récemment monté :

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

8.    Téléchargez et installez l'outil EC2Rescue pour Linux sur un volume racine Linux hors connexion :

$ curl -O https://s3.amazonaws.com/ec2rescuelinux/ec2rl.tgz
$ tar -xvf ec2rl.tgz

9.    Vérifiez l'installation en répertoriant le fichier d'aide :

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

10.    Exécutez EC2Rescue pour Linux sans option pour exécuter tous les modules en tant que sudo :

$ sudo ./ec2rl run

11.    Examinez les résultats dans /var/temp/ec2rl :

cat /var/tmp/ec2rl/<logfile_location>/Main.log

12.    Corrigez les modules pris en charge en fonction des résultats :

$ ./ec2rl run --remediate

13.    Une fois la correction effectuée, quittez chroot et démontez l'appareil secondaire :

$ exit
$ sudo umount /rescue

Remarque : Si le démontage n'aboutit pas, vous serez peut-être amené à arrêter ou redémarrer l'instance de secours.

14.    Détachez le volume secondaire (/dev/sdf) de l'instance EC2 de secours, puis attachez-le à l'instance d'origine en tant que /dev/xvda (volume racine).

15.    Démarrez l'instance EC2, puis vérifiez que l'instance répond.

Remarque : Vous pouvez également utiliser un document AWS Systems Manager Automation pour résoudre les problèmes de connexion. Pour plus d'informations, consultez Démonstration : Exécution de l'outil EC2Rescue sur des instances inaccessibles. Le document AWSSupport-ExecuteEC2Rescue est conçu pour automatiser les étapes normalement nécessaires pour utiliser EC2Rescue pour Linux. Ces étapes sont une combinaison d'actions Systems Manager, d'actions AWS CloudFormation et de fonctions AWS Lambda.

Dépannage supplémentaire


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?