AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Come posso inviare l'output dei dati utente ai log della console in un'istanza EC2 che esegue RHEL?
Desidero risolvere i problemi di bootstrap della mia istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux RHEL 7, RHEL 8 o RHEL 9. Desidero registrare l'invocazione dei dati utente e inviarla ai log della console.
Breve descrizione
Per risolvere i problemi con il bootstrap di un'istanza EC2, modifica lo script bash di dati utente per reindirizzare tutto l'output. Reindirizza l'output sia a /var/log/user-data.log che a /dev/console. Quando lo script viene eseguito, puoi visualizzare i log di invocazione dei dati utente direttamente nella console.
Nota: la seguente risoluzione è valida solo per RHEL 7, RHEL 8 e RHEL 9. Per informazioni su Amazon Linux 2 e Amazon Linux 2023, consulta Come posso inviare l'output dei dati utente ai log della console su un'istanza EC2 per Amazon Linux 1, Amazon Linux 2 o Amazon Linux 2023?
Risoluzione
Per inviare l'output dei dati utente ai log della console in un'istanza EC2 che esegue RHEL, completa i seguenti passaggi:
-
Apri la console Amazon EC2.
-
Connettiti a un'istanza esistente o avvia una nuova istanza. Quindi utilizza SSH per connetterti all'istanza.
-
Modifica la riga GRUB_CMDLINE_LINUX in /etc/default/grub e "console=ttyS0,115200n8 console=tty0" in "console=tty1 console=ttyS0":
RHEL 7# cat /etc/default/grub GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 net.ifnames=0 rd.blacklist=nouveau crashkernel=auto" GRUB_DISABLE_RECOVERY="true"RHEL 8
# cat /etc/default/grub GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=trueRHEL 9
# cat /etc/default/grub GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295" GRUB_TIMEOUT=0 GRUB_ENABLE_BLSCFG=true GRUB_DEFAULT=saved -
Per ricreare il file /boot/grub2/grub.cfg, esegui questo script:
RHEL 7# grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1062.1.2.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1062.1.2.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-026767dbe06a4910a5ce3bd0def903c0 Found initrd image: /boot/initramfs-0-rescue-026767dbe06a4910a5ce3bd0def903c0.img doneRHEL 8
# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... doneRHEL 9
# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Adding boot menu entry for UEFI Firmware Settings ... done -
(Facoltativo) Per eseguire i dati utente ogni volta che l'istanza si riavvia, configura lo script di dati utente e le direttive cloud-init con un file MIME multiparte.
Nota: per impostazione predefinita, gli script di dati utente e le direttive cloud-init vengono eseguiti solo durante il primo ciclo di avvio di un'istanza EC2. -
Per reindirizzare l'output dei dati utente alla console, modifica il campo dei dati utente eseguendo questo comando:
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash -xe exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 cat /etc/redhat-release echo "Hello from user-data!" --//--Nota: lo script per reindirizzare l'output dei dati utente inizia con la riga #!/bin/bash -xe. Lo script precedente è costituito da dati di configurazione cloud-init in cui lo script di shell viene eseguito ogni volta che l'istanza viene avviata. Nel comando precedente, la riga seguente reindirizza l'output dei dati utente:
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 -
Avvia l'istanza, quindi visualizza l'output del log della console. Riceverai un output simile al seguente esempio:
RHEL 7<13>May 21 03:11:44 user-data: + cat /etc/redhat-release <13>May 21 03:11:44 user-data: Red Hat Enterprise Linux Server release 7.9 (Maipo) <13>May 21 03:11:44 user-data: + echo 'Hello from user-data!' <13>May 21 03:11:44 user-data: Hello from user-data!RHEL 8
<13>May 21 03:11:21 user-data: + cat /etc/redhat-release <13>May 21 03:11:21 user-data: Red Hat Enterprise Linux release 8.6 (Ootpa) <13>May 21 03:11:21 user-data: + echo 'Hello from user-data!' <13>May 21 03:11:21 user-data: Hello from user-data!RHEL 9
<13>May 21 03:12:34 user-data: + cat /etc/redhat-release <13>May 21 03:12:34 user-data: Red Hat Enterprise Linux release 9.3 (Plow) <13>May 21 03:12:34 user-data: + echo 'Hello from user-data!' <13>May 21 03:12:34 user-data: Hello from user-data!
Importante: i dati utente sono visibili nella console. Non includere informazioni riservate nei dati che invii.
Informazioni correlate
- Argomenti
- Compute
- Lingua
- Italiano
Video correlati

