先日、Azure上のLinuxサーバがssh接続できず、そもそもOSが上がっているのかどうなのかわからない、という事があった。
AWSしかり、Azureしかり、こういったクラウドサービスの場合だと仮想マシンのコンソールに接続できず、こういった事が発生すると非常に困る事になる。
で、こういったOSが起動しているのかどうかもわからない状態の場合、基本的にはOSの起動ログを取得して起動していないのか、起動中なのか切り分けを行ったり、もし起動していない場合は対象の仮想マシンのHDDイメージを取得して手元で仮想マシン作って確認したり…といった対応が必要になってくるようだ(後はサポートかな?)。
AWSではもともと起動ログの取得方法が用意されていたのだが、Azureの場合は新しいポータル画面(2015年12月現在)で接続しないと取得設定出来ないみたいなので、念のため備忘として残しておく。
といっても特に難しいものではない。まずは新しいポータル画面(https://portal.azure.com/)にアクセスし、左メニューから仮想マシン(クラシック)を選択する。
で、お目当ての仮想マシンを選択して「設定」>「ブート診断」>「設定」で、以下のように状態を「オン」、ストレージアカウントを選択して「ブート診断」にチェックを入れて保存するだけだ。
保存すると診断情報の更新が行われるので、これが完了以降、ブート時のログを閲覧できるようになる。
地味にコンソールのスクリーンショットを取得することも出来るようだ。
というか正直な所、AWSもAzureもシリアルコンソール操作を出来るようにしてくれりゃいいんだけど…
技術的には可能な気もするのだけど、なんでダメなんだろ?負荷が高くなりすぎるのかな?
別の仮想マシンとシリアル接続をさせるようにして、そいつをコンソールサーバとして使えるようになればいいのになぁ
OS側の設定変更しないとだったり、Windowsの場合だと操作内容が限られるけど。