SSM Agent のトラブルシューティング
マネージドノードでオペレーションの実行に問題が発生した場合、AWS Systems Manager エージェント (SSM Agent) に問題がある可能性があります。以下の情報を利用して SSM Agent ログファイルを表示し、エージェントをトラブルシューティングしてください。
トピック
SSM Agent が最新ではない
新しいツールが Systems Manager に追加されるか、既存のツールが更新されると必ず、更新されたバージョンの SSM Agent がリリースされます。最新バージョンのエージェントを使用しないと、マネージドノードが Systems Manager の各種ツールや機能を使用できなくなる可能性があります。このため、マシン上で SSM Agent を最新状態に維持するプロセスを自動化することをお勧めします。詳細については、SSM Agent への更新の自動化 を参照してください。GitHub の「SSM Agent リリースノート
SSM Agent ログファイルを使用して問題をトラブルシューティングする
SSM Agent は、以下のファイルに情報をログとして記録します。これらのファイルの情報は、問題をトラブルシューティングするのにも役立ちます。デバッグログをオンにする方法など、SSM Agent のログファイルの詳細については、「SSM Agent ログの表示」を参照してください。
注記
Windows ファイルエクスプローラーを使用してこれらのログを表示することを選択した場合は、Folder Options で隠しファイルとシステムファイルの表示を必ず許可してください。
Windows の場合
-
%PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
-
%PROGRAMDATA%\Amazon\SSM\Logs\errors.log
Linux および macOS
-
/var/log/amazon/ssm/amazon-ssm-agent.log
-
/var/log/amazon/ssm/errors.log
Linux マネージドノードの場合、以下のディレクトリに書き込まれた messages
ファイルに詳しい情報があります: /var/log
。
エージェントログを使用したトラブルシューティングの詳細については、「AWS re:Post ナレッジセンター」の「マネージドインスタンスの SSM Agent の問題をトラブルシューティングするために SSM Agent ログを使用するにはどうすればよいですか
エージェントログファイルがローテーションしない (Windows)
seelog.xml ファイル (Windows Server マネージドノード内) に日付ベースのログファイルのローテーションを指定してログがローテーションしない場合、fullname=true
パラメータを指定します。次に、fullname=true
パラメータが指定された seelog.xml 設定ファイルの例を示します。
<seelog type="adaptive" mininterval="2000000" maxinterval="100000000" critmsgcount="500" minlevel="debug"> <exceptions> <exception filepattern="test*" minlevel="error" /> </exceptions> <outputs formatid="fmtinfo"> <console formatid="fmtinfo" /> <rollingfile type="date" datepattern="200601021504" maxrolls="4" filename="C:\ProgramData\Amazon\SSM\Logs\amazon-ssm-agent.log" fullname=true /> <filter levels="error,critical" formatid="fmterror"> <rollingfile type="date" datepattern="200601021504" maxrolls="4" filename="C:\ProgramData\Amazon\SSM\Logs\errors.log" fullname=true /> </filter> </outputs> <formats> <format id="fmterror" format="%Date %Time %LEVEL [%FuncShort @ %File.%Line] %Msg%n" /> <format id="fmtdebug" format="%Date %Time %LEVEL [%FuncShort @ %File.%Line] %Msg%n" /> <format id="fmtinfo" format="%Date %Time %LEVEL %Msg%n" /> </formats> </seelog>
SSM エンドポイントに接続できない
SSM Agent は以下のエンドポイントへの HTTPS (ポート 443) アウトバウンドトラフィックを許可する必要があります。
-
ssm.
region
.amazonaws.com -
ssmmessages.
region
.amazonaws.com
region
は、米国東部 (オハイオ) リージョンの us-east-2
のように、AWS Systems Manager でサポートされている AWS リージョン の識別子を表します。サポートされている region
値の一覧については、「Amazon Web Services 全般のリファレンス」の「Systems Manager サービスエンドポイント」にある Region 列を参照してください。
注記
2024 年以前は ec2messages.
も必要でした。2024 年より前にローンチされた AWS リージョン の場合、region
.amazonaws.comssmmessages.
へのトラフィックの許可は引き続き必要となりますが、region
.amazonaws.comec2messages.
の場合はオプションになります。region
.amazonaws.com
2024 年以降にローンチされたリージョンでは、ssmmessages.
へのトラフィックを許可する必要がありますが、これらのリージョンでは region
.amazonaws.comec2messages.
エンドポイントはサポートされていません。region
.amazonaws.com
説明されているように、SSM Agent は、上記のエンドポイントと通信できない場合、Amazon Linux 2 や Amazon Linux 2023 など AWS が提供する Amazon Machine Images (AMIs) を使用しても動作しません。ネットワーク設定には、オープンなインターネットアクセスが必要です。または、カスタム仮想プライベートクラウド (VPC) エンドポイントが設定されている必要があります。カスタム VPC エンドポイントを作成する予定がない場合は、インターネットゲートウェイまたは NAT ゲートウェイを確認してください。VPC エンドポイントを管理する方法の詳細については、「Systems Manager のために VPC エンドポイントを使用して EC2 インスタンスのセキュリティを強化する」を参照してください。
VPC 設定を検証する
Systems Manager で EC2 インスタンスを管理するには、VPC エンドポイントを、ssm.
、region
.amazonaws.comssmmessages.
、および (SSM エンドポイントに接続できない のこのトピックの前半で説明したいくつかの場合は) region
.amazonaws.comec2messages.
のために適切に設定する必要があります。ネットワーク設定には、オープンなインターネットアクセスが必要です。または、これらの仮想プライベートクラウド (VPC) エンドポイントが設定されている必要があります。region
.amazonaws.com
VPC エンドポイントに関する問題をトラブルシューティングするには、次を実行します:
-
VPC エンドポイントが VPC レベルに含まれているようにします。特定のサービス名を持つ VPC エンドポイントが VPC で見つからない場合は、まず DNS サポートが VPC レベルで有効になっていることを検証します。次に、新しい VPC エンドポイントを作成し、各アベイラビリティーゾーンの 1 つのサブネットに関連付けます。
-
VPC エンドポイントレベルでプライベート DNS 名が有効になっているようにします。プライベート DNS 名はデフォルトで有効になっていますが、ある時点で手動で無効にされている可能性があります。
-
既存の VPC エンドポイントが適切なサブネットに関連付けられているようにします。さらに、VPCE がそのアベイラビリティーゾーンのサブネットに既に関連付けられているようにします。
詳細については、以下の各トピックを参照してください。
-
「AWS PrivateLink ガイド」の「インターフェイス VPC エンドポイントを使用して AWS のサービス にアクセスする」
-
「AWS PrivateLink ガイド」の「プライベート DNS 名を関連付ける」
-
Systems Manager のために VPC エンドポイントを使用して EC2 インスタンスのセキュリティを強化する
VPC DNS 関連の属性を検証する
VPC 設定の検証の一環として、属性 enableDnsSupport
と enableDnsHostnames
が有効になっているようにします。
Amazon EC2 ModifyVPCAttribute API アクションまたは AWS CLI コマンド modify-vpc-attribute を使用して、これらの属性を有効にできます。
Amazon VPC コンソールでこれらの属性を有効にする方法については、「Amazon VPC ユーザーガイド」の「VPC の DNS 属性を表示および更新する」を参照してください。
エンドポイントセキュリティグループでイングレスルールを検証する
ポート 443 でトラフィックの着信を許可するために、設定した VPC エンドポイント (ssm
、ssmmessages
、ec2messages
) に、セキュリティグループでイングレスルールが含まれているようにします。必要に応じて、1 つのイングレスルールを使用して VPC に新しいセキュリティグループを作成し、VPC の Classless Inter-Domain Routing (CIDR) ブロックのためにポート 443 でのトラフィックを許可できます。セキュリティグループを作成したら、それを各 VPC エンドポイントにアタッチします。
詳細については、以下の各トピックを参照してください。
-
AWS re:Post の「インターネットにアクセスしなくても、VPC エンドポイントを作成して、Systems Manager でプライベート EC2 インスタンスを管理するにはどうすればよいですか?
」 -
「Amazon VPC ユーザーガイド」の「VPC CIDR ブロック」
ssm-cli
を使用してマネージドノードの可用性をトラブルシューティングする
SSM Agent バージョン 3.1.501.0 以降では、ssm-cli
を使用して、Systems Manager によって管理されたり、Fleet Manager のマネージドノードのリストに表示されたりするための主な要件をマネージドノードが満たしているかどうかを判断できるようになりました。ssm-cli
は SSM Agent のインストールに含まれるスタンドアロンのコマンドラインツールです。実行中であることを確認した Amazon EC2 インスタンスまたは EC2 以外のマシンが Systems Manager のマネージドノードのリストに含まれていない理由を診断するために必要な情報を収集する、事前設定済みのコマンドが含まれています。get-diagnostics
オプションを指定したときにこれらのコマンドが実行されます。
詳細については、「ssm-cli を使用したマネージドノードの可用性のトラブルシューティング」を参照してください。