Come posso usare EC2Rescue per Linux per risolvere problemi a livello di sistema operativo?
Non riesco a connettermi alla mia istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) o riscontro problemi di avvio. Per correggere questi problemi, devo risolvere problemi comuni come le autorizzazioni dei file OpenSSH o raccogliere i log di sistema (OS) per l'analisi e la risoluzione dei problemi. Come posso usare EC2Rescue per Linux per farlo?
Breve descrizione
EC2Rescue per Linux è uno strumento che aiuta a diagnosticare e risolvere i problemi delle istanze Linux di Amazon EC2. EC2Rescue per Linux viene eseguito sull'istanza Amazon EC2 Linux per correggere problemi a livello di sistema operativo. EC2Rescue per Linux raccoglie anche log avanzati, report sull'utilizzo del sistema e file di configurazione per ulteriori analisi.
Scenari comuni gestiti da EC2Rescue per Linux:
- Raccogliere report sull'utilizzo del sistema come vmstat, iostat, mpstat e così via.
- Raccogliere log e dettagli come syslog, dmesg, log degli errori delle applicazioni e log SSM.
- Rilevare problemi di sistema come routing asimmetrico o etichette duplicate dei dispositivi root.
- Risolvere automaticamente i problemi di sistema, come la correzione delle autorizzazioni dei file OpenSSH o la disabilitazione dei parametri problematici noti del kernel.
Requisiti di sistema
EC2Rescue per Linux richiede un'istanza Amazon EC2 Linux che soddisfi i seguenti prerequisiti:
Sistemi operativi supportati
- Amazon Linux 2
- Amazon Linux 2016.09+
- SLES 12+
- RHEL 7+
- Ubuntu 16.04+
Requisiti software
- Python 2.7.9+ o 3.2+
**Nota:**Se hai attivato la console seriale EC2 per Linux, puoi usarla per risolvere i problemi relativi ai tipi di istanze supportate da Nitro. La console seriale consente di risolvere problemi di avvio, configurazione di rete e di configurazione SSH. La console seriale si connette all'istanza senza bisogno di una connessione di rete funzionante. Puoi accedere alla console seriale utilizzando la console Amazon EC2 o l'interfaccia della linea di comando AWS (AWS CLI).
Prima di utilizzare la console seriale, concedi l'accesso alla console a livello di account. Quindi crea delle policy AWS Identity and Access Management (IAM) che concedono l'accesso ai tuoi utenti IAM. Inoltre, ogni istanza che utilizza la console seriale deve includere almeno un utente basato su password. Se la tua istanza non è raggiungibile e non hai configurato l'accesso alla console seriale, segui le istruzioni della sezione Risoluzione. Per informazioni sulla configurazione della console seriale EC2 per Linux, consulta Configurare l'accesso alla console seriale EC2.
Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS CLI, assicurati di utilizzare la versione più recente dell'Interfaccia della linea di comando AWS CLI.
Risoluzione
Per risolvere i problemi di un'istanza Amazon EC2 Linux non raggiungibile utilizzando EC2Rescue per Linux, procedi come segue:
1. Avvia una nuova istanza Amazon EC2 nel tuo cloud privato virtuale (VPC) utilizzando la stessa Amazon Machine Image (AMI) nella stessa zona di disponibilità dell'istanza compromessa. La nuova istanza diventa la tua istanza "di ripristino". In alternativa, puoi utilizzare un'istanza esistente a cui hai accesso, se utilizza la stessa AMI e si trova nella stessa zona di disponibilità dell'istanza compromessa.
2. Scollega il volume root di Amazon Elastic Block Store (Amazon EBS) (/dev/xvda o**/dev/sda1**) dall'istanza danneggiata. Prendi nota del nome del dispositivo per assicurarti che sia lo stesso quando lo ricolleghi in un secondo momento
3. Collega il volume EBS come dispositivo secondario (/dev/sdf) all'istanza di ripristino.
4. Connettiti alla tua istanza di ripristino tramite SSH.
5. Diventa root, identifica il nome corretto del dispositivo usando lsblk, quindi salvalo per utilizzarlo durante tutto il processo:
$ sudo -i # lsblk # rescuedev=/dev/xvdf1
**Nota:**Il dispositivo (/dev/xvdf1) potrebbe essere collegato all'istanza di ripristino con un nome di dispositivo diverso. Utilizza il comando lsblk per visualizzare i dispositivi su disco disponibili insieme ai relativi punti di montaggio per determinare i nomi corretti dei dispositivi.
6. Seleziona un punto di montaggio temporaneo appropriato da usare e assicurati che esista, usa /mnt a meno che non sia già in uso:
# rescuemnt=/mnt # mkdir -p $rescuemnt
7. Installa il file system root dal volume allegato:
# mount $rescuedev $rescuemnt
**Nota:**Se il montaggio del volume fallisce, controlla dmesg | tail. Se i log suggeriscono UUID in conflitto, usa l'opzione -o nouuid.
8. Monta file system speciali e modifica la directory root (chroot) con il file system appena montato:
# for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done # chroot $rescuemnt
9. Scarica e installa lo strumento EC2Rescue per Linux su un volume root Linux offline:
# curl -O https://s3.amazonaws.com/ec2rescuelinux/ec2rl.tgz # tar -xf ec2rl.tgz
10. Verifica l'installazione elencando il file di aiuto:
# cd ec2rl-<version_number> # ./ec2rl help
11. Esegui EC2Rescue per Linux senza opzioni per eseguire tutti i moduli:
# ./ec2rl run
12. Visualizza i risultati in /var/tmp/ec2rl:
# cat /var/tmp/ec2rl/*/Main.log | more
13. Abilita la correzione per i moduli supportati in base ai risultati:
# ./ec2rl run --remediate
14. Una volta completata la correzione, esci da chroot e smonta il dispositivo secondario:
# exit # umount $rescuemnt/{proc,sys,dev,run,}
Nota: Se l'operazione di smontaggio non va a buon fine, potrebbe essere necessario interrompere o riavviare l'istanza di ripristino per consentire uno smontaggio corretto.
15. Scollega il volume secondario (/dev/sdf) dall'istanza EC2 di ripristino, quindi collegalo all'istanza originale come /dev/xvda o /dev/sda1 (volume root). Assicurati che sia lo stesso del passaggio 2.
16. Avvia l'istanza EC2 e verifica che l'istanza sia reattiva.
**Nota:**Puoi anche utilizzare un documento di Automazione AWS Systems Manager per risolvere i problemi di connessione. Per ulteriori informazioni, consulta Procedura dettagliata: Esecuzione dello strumento EC2Rescue su istanze non raggiungibili. Il documento AWSSupport-ExecuteEC2Rescue è progettato per automatizzare i passaggi normalmente necessari per utilizzare EC2Rescue per Linux. Questi passaggi sono una combinazione di azioni di Systems Manager, azioni di AWS CloudFormation e funzioni AWS Lambda.
Risoluzione di problemi aggiuntiva
- Per istruzioni generali sul ripristino di un'istanza Linux, consulta Ripristino delle istanze in caso di errori del computer host. Per le istanze Windows, consulta Risoluzione di problemi relativi a un'istanza irraggiungibile.
- Se il dispositivo root della tua istanza è un volume supportato da Amazon EBS, prova a arrestare e riavviare l'istanza. Per ulteriori informazioni, consulta Arrestare e avviare un'istanza.
- Per le istanze supportate da instance store, se hai creato un'AMI personalizzata dell'istanza, potresti riuscire a ripristinare l'istanza utilizzando l'AMI come backup. Per istruzioni sulla creazione di una nuova istanza da un'AMI di tua proprietà, consulta Avvio di un'istanza tramite la vecchia procedura guidata di avvio.
- In alcuni casi, il volume EBS potrebbe avere l'accesso I/O disabilitato, il che può rendere l'istanza inaccessibile. Per istruzioni su come identificare e risolvere questo problema, consulta Utilizzo dell'attributo del volume Auto-Enabled IO.
- Se hai perso la coppia di chiavi SSH, puoi reimpostarla utilizzando Systems Manager Automation e il documento AWSSupport-ResetAccess.
Informazioni correlate
Ripristinare le istanze danneggiate utilizzando EC2Rescue e Amazon EC2 Systems Manager Automation
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 mesi fa