Invia un'interruzione diagnostica per eseguire il debug di un'istanza Amazon non raggiungibile EC2 - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invia un'interruzione diagnostica per eseguire il debug di un'istanza Amazon non raggiungibile EC2

avvertimento

Le interruzioni della diagnostica sono destinate all'uso da parte di utenti avanzati. Un utilizzo errato potrebbe influire negativamente sull'istanza. L'invio di un'interruzione della diagnostica a un'istanza potrebbe innescare l'arresto anomalo e il riavvio di della stessa, il che potrebbe causare la perdita di dati.

Puoi inviare un'interruzione diagnostica a un'istanza irraggiungibile o che non risponde per attivare manualmente un kernel panic per un'istanza Linux o un errore di arresto (comunemente chiamato errore di schermata blu) per un'istanza Windows.

Istanze Linux

I sistemi operativi Linux in genere si arrestano e vengono riavviati quando si verifica un kernel panic. Il comportamento specifico del sistema operativo dipende dalla sua configurazione. Un kernel panic può anche essere utilizzato per fare in modo che il kernel del sistema operativo dell'istanza esegua delle attività, come generare un file dump di arresto. Puoi quindi usare le informazioni del file dump di arresto per condurre un'analisi delle cause root ed eseguire il debugging dell'istanza. I dati dump di arresto vengono generati localmente dal sistema operativo sull'istanza stessa.

Istanze Windows

In generale, i sistemi operativi Windows si arrestano e vengono riavviati quando si verifica uno stop error, ma il comportamento specifico dipende dalla sua configurazione. Uno stop error può anche portare il sistema operativo a scrivere informazioni di debugging, come il dump di una memoria kernel, su file. È quindi possibile utilizzare questa informazione per eseguire analisi della causa root per effettuare il debugging dell'istanza. I dati dump della memoria vengono generati localmente dal sistema operativo sull'istanza stessa.

Prima di inviare un'interruzione della diagnostica all'istanza, si consiglia di consultare la documentazione del sistema operativo in uso e quindi apportare le modifiche necessarie alla configurazione.

Tipi di istanze supportati

L'interruzione di diagnostica è supportata su tutti i tipi di istanze basate su Nitro, ad eccezione di quelle alimentate da processori Graviton. AWS Per ulteriori informazioni, consulta le istanze basate su AWS Nitro System e Graviton.AWS

Prerequisiti

Prima di utilizzare l'interruzione della diagnostica, è necessario configurare il sistema operativo dell'istanza. Ciò garantisce che esegua le azioni necessarie quando si verifica un errore di kernel panic (istanze Linux) o di arresto (istanze Windows).

Per configurare Amazon Linux 2 e generare un dump di arresto quando si verifica un kernel panic
  1. Connettiti alla tua istanza.

  2. Installa kexec e kdump.

    [ec2-user ~]$ sudo yum install kexec-tools -y
  3. Configura il kernel per prenotare una quantità di memoria adeguata per il kernel secondario. La quantità di memoria da prenotare dipende dalla memoria totale disponibile dell'istanza. Apri il file /etc/default/grub con l'editor di testo che preferisci, individua la riga che inizia con GRUB_CMDLINE_LINUX_DEFAULT e quindi aggiungi il parametro crashkernel nel formato seguente: crashkernel=memory_to_reserve. Ad esempio, per prenotare 160MB, modifica il file grub come segue:

    GRUB_CMDLINE_LINUX_DEFAULT="crashkernel=160M console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=0 GRUB_DISABLE_RECOVERY="true"
  4. Salva i cambiamenti e chiudi il file grub.

  5. Ricostruisci il file di configurazione. GRUB2

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  6. Nelle istanze basate su Intel e AMD processori, il send-diagnostic-interrupt comando invia all'istanza un interrupt () sconosciuto non mascherabile. NMI È necessario configurare il kernel in modo che si blocchi quando riceve informazioni sconosciute. NMI Apri il file /etc/sysctl.conf utilizzando qualsiasi editor di testo e aggiungi il seguente script.

    kernel.unknown_nmi_panic=1
  7. Riavvia e riconnettiti all'istanza.

  8. Verifica che il kernel sia stato riavviato con il parametro crashkernel corretto.

    $ grep crashkernel /proc/cmdline

    Il seguente output di esempio indica una configurazione corretta.

    BOOT_IMAGE=/boot/vmlinuz-4.14.128-112.105.amzn2.x86_64 root=UUID=a1e1011e-e38f-408e-878b-fed395b47ad6 ro crashkernel=160M console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0
  9. Verifica che il servizio kdump sia in esecuzione.

    [ec2-user ~]$ systemctl status kdump.service

    Il seguente output di esempio mostra il risultato se il servizio kdump è in esecuzione.

    kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2019-05-24 23:29:13 UTC; 22s ago Process: 2503 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS) Main PID: 2503 (code=exited, status=0/SUCCESS)
Nota

Per impostazione predefinita, il file dump di arresto viene salvato su /var/crash/. Per cambiare la posizione, modifica il file /etc/kdump.conf tramite l'editor di testo che preferisci.

Per configurare Amazon Linux e generare un dump dell'arresto quando si verifica un kernel panic
  1. Connettiti alla tua istanza.

  2. Installa kexec e kdump.

    [ec2-user ~]$ sudo yum install kexec-tools -y
  3. Configura il kernel per prenotare una quantità di memoria adeguata per il kernel secondario. La quantità di memoria da prenotare dipende dalla memoria totale disponibile dell'istanza.

    $ sudo grubby --args="crashkernel=memory_to_reserve" --update-kernel=ALL

    Ad esempio, per riservare 160MB per il kernel di arresto, utilizzare il comando seguente.

    $ sudo grubby --args="crashkernel=160M" --update-kernel=ALL
  4. Nelle istanze basate su Intel e AMD processori, il send-diagnostic-interrupt comando invia un interrupt () sconosciuto non mascherabile all'istanza. NMI È necessario configurare il kernel in modo che si blocchi quando riceve informazioni sconosciute. NMI Apri il file /etc/sysctl.conf utilizzando qualsiasi editor di testo e aggiungi il seguente script.

    kernel.unknown_nmi_panic=1
  5. Riavvia e riconnettiti all'istanza.

  6. Verifica che il kernel sia stato riavviato con il parametro crashkernel corretto.

    $ grep crashkernel /proc/cmdline

    Il seguente output di esempio indica una configurazione corretta.

    root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 LANG=en_US.UTF-8 KEYTABLE=us crashkernel=160M
  7. Verifica che il servizio kdump sia in esecuzione.

    [ec2-user ~]$ sudo service kdump status

    Se il servizio è in esecuzione, il comando restituisce la risposta Kdump is operational.

Nota

Per impostazione predefinita, il file dump di arresto viene salvato su /var/crash/. Per cambiare la posizione, modifica il file /etc/kdump.conf tramite l'editor di testo che preferisci.

Per configurare SUSE Linux Enterprise, Ubuntu o Red Hat Enterprise Linux

Nelle istanze basate su Intel e AMD processori, il send-diagnostic-interrupt comando invia un interrupt () NMI sconosciuto non mascherabile all'istanza. È necessario configurare il kernel in modo che si blocchi quando riceve informazioni sconosciute NMI modificando il file di configurazione per il sistema operativo in uso. Per informazioni su come configurare il kernel in modo che si arresti anomalo, consulta la documentazione del tuo sistema operativo:

Per configurare Windows e generare un dump della memoria quando si verifica uno stop error
  1. Connettiti alla tua istanza.

  2. Apri il Pannello di controllo e seleziona Sistema, Impostazioni avanzate di sistema.

  3. Nella finestra di dialogo Proprietà di sistema, selezionare la scheda Avanzate.

  4. Nella sezione Avvio e ripristino, selezionare Impostazioni....

  5. Nella sezione Arresto sistema, configurare le impostazioni richieste e scegliere OK.

Per ulteriori informazioni sulla configurazione degli stop error di Windows consulta Panoramica delle opzioni del file dump di memoria per Windows.

Invio di un'interruzione della diagnostica

Dopo aver completato le modifiche alla configurazione necessarie, puoi inviare un'interruzione diagnostica alla tua istanza utilizzando Amazon AWS CLI o Amazon EC2API.

AWS CLI
Per inviare un'interruzione della diagnostica all'istanza (AWS CLI)

Usa il send-diagnostic-interruptcomando e specifica l'ID dell'istanza.

aws ec2 send-diagnostic-interrupt --instance-id i-1234567890abcdef0
PowerShell
Per inviare un'interruzione della diagnostica all'istanza (AWS Tools for Windows PowerShell)

Utilizzate il Send-EC2DiagnosticInterruptcmdlt e specificate l'ID dell'istanza.

PS C:\> Send-EC2DiagnosticInterrupt -InstanceId i-1234567890abcdef0