Amazon Linux や Amazon Linux 2 を実行している EC2 インスタンスのコンソールログにユーザーデータ出力を送信するにはどうすればよいですか?

最終更新日: 2021 年 2 月 4 日

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスのブートストラップに関してトラブルシューティングを行おうとしています。ユーザーデータの呼び出しをログに記録し、コンソールに送信する方法を教えてください。

簡単な説明

SSH 経由でインスタンスにアクセスせずに EC2 インスタンスのブートストラップの問題をトラブルシューティングするには、すべての出力を /var/log/user-data.log/dev/console の両方にリダイレクトするコードをユーザーデータ Bash スクリプトに追加します。コードが実行されると、コンソールにユーザーデータ呼び出しログが表示されます。

注意: この解決方法は、Amazon Linux および Amazon Linux 2 でのみ有効です。RHEL 7 または RHEL 8 を実行しているインスタンスに関しては、How can I log user-data for my EC2 instance running RHEL 7 or RHEL 8 and then ship it to the console logs? を参照してください。

解決方法

次のコマンドを入力して、ユーザデータ出力コンソールをリダイレクトします。

#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
  yum -y update
  echo "Hello from user-data!"

以下の行で、ユーザーデータ出力をリダイレクトします。

exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1

次に、コンソール出力の例を示します。

<13>Nov 13 13:49:59 user-data:   amazon-ssm-agent.x86_64 0:2.3.228.0-1.amzn2
<13>Nov 13 13:49:59 user-data:   irqbalance.x86_64 2:1.5.0-2.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   kernel-tools.x86_64 0:4.14.77-80.57.amzn2
<13>Nov 13 13:49:59 user-data:   kmod.x86_64 0:25-3.amzn2.0.2
<13>Nov 13 13:49:59 user-data:   kmod-libs.x86_64 0:25-3.amzn2.0.2
<13>Nov 13 13:49:59 user-data:   lz4.x86_64 0:1.7.5-2.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   nss.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   nss-sysinit.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   nss-tools.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   openssl.x86_64 1:1.0.2k-16.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   openssl-libs.x86_64 1:1.0.2k-16.amzn2.0.1
<13>Nov 13 13:49:59 user-data:
<13>Nov 13 13:49:59 user-data: Complete!
<13>Nov 13 13:49:59 user-data: + echo 'Hello from user-data!

注意: 投稿されたシステム (コンソール) ログ出力は、継続的には更新されません。Nitro システム上に構築されたインスタンスは、最新のシリアルコンソール出力の取得をサポートします。詳細については、「インスタンスコンソールの出力」を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?