VMインスタンスへの突然のSSH接続の失敗

VMインスタンスへの突然のSSH接続の失敗

今日突然、VM インスタンスへの SSH 接続が成功せず、非常に長い時間がかかるようになりました。

新しいインスタンスを作成してすべての作業を繰り返すのは嫌です。また、問題がディスク容量に関連しているかどうかはわかりません。

誰か助けてくれませんか。

答え1

まず、ログを収集する:

  1. に移動Compute Engine-> VM instances-> NAME_OF_YOUR_VM をクリック ->VM instance details検索セクションログクリックしてSerial port 1 (console)
  2. VM インスタンスを再度再起動します。
  3. 完全なブート ログをチェックして、エラーや警告がないか確認します。

ディスク容量に関するエラーや警告が見つかった場合ドキュメントに従ってサイズを変更してみてくださいゾーン永続ディスクのサイズ変更記事によると、アクセスできないインスタンスまたは完全なブートディスクの回復:

インスタンスのディスク容量が完全に不足している場合、またはインスタンスが Linux ゲスト環境を実行していない場合は、ルート ファイルシステムのバックアップとなる永続ディスクのサイズを増やした後でも、ルート ファイルシステムのサイズを自動的に変更することはできません。インスタンスに接続できない場合、またはブート ディスクがいっぱいでサイズを変更できない場合は、新しいインスタンスを作成し、スナップショットからブート ディスクを再作成してサイズを変更する必要があります。

そうでなければシリアルコンソール経由でVMインスタンスのトラブルシューティングを行う:

  1. シリアルコンソール接続を有効にするコマンドgcloud:

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
     --metadata serial-port-enable=TRUE
    

または、Compute Engine-> VM instances-> クリックNAME_OF_YOUR_VM_INSTANCE-> クリックEDIT-> セクションに移動Remote accessチェックEnable connecting to serial ports

  1. ログインするための一時的なユーザーとパスワードを作成します。VMをシャットダウンして、起動スクリプトセクションに追加することでCustom metadataキーstartup-scriptと値:

     #!/bin/bash
     useradd --groups google_sudoers tempuser
     echo "tempuser:password" | chpasswd
    

その後、VM を起動します。

  1. シリアルポート経由でVMに接続するコマンドgcloud:

     gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
    

    またはCompute Engine-> VM instances-> をクリックしてNAME_OF_YOUR_VM_INSTANCE-> をクリックしConnect to serial console

  2. 何が悪かったのか確認してください。

  3. シリアルポート経由のアクセスを無効にするコマンドgcloud:

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
     --metadata serial-port-enable=FALSE
    

または、Compute Engine-> VM instances-> クリックNAME_OF_YOUR_VM_INSTANCE-> クリックEDIT-> セクションに移動Remote accessチェックを外しますEnable connecting to serial ports。ドキュメントに従ってシリアルコンソールとのやり取り:

注意: インタラクティブ シリアル コンソールは、IP ホワイトリストなどの IP ベースのアクセス制限をサポートしていません。インスタンスでインタラクティブ シリアル コンソールを有効にすると、クライアントは任意の IP アドレスからそのインスタンスへの接続を試みることができます。正しい SSH キー、ユーザー名、プロジェクト ID、ゾーン、インスタンス名を知っていれば、誰でもそのインスタンスに接続できます。ファイアウォール ルールを使用して、ネットワークと特定のポートへのアクセスを制御します。

シリアルコンソール経由で接続できなかった場合ドキュメントに従ってみてくださいSSH のトラブルシューティングセクションVMインスタンスをシャットダウンせずに検査するそして別のVMでVMのディスクを検査する同じ方法で、データを別の稼働中の VM インスタンスに転送できます。

答え2

私の場合は、VMインスタンスにアクセスしてリセットすることでうまくいきました。何も失われず、WordPressサイトはリセット後も適切に構成されており、VMインスタンスに再度ログインできました。

関連情報