第6章 トラブルシューティング

6.1. デバッグ向けのロギング

デフォルトでは、virt-who はすべてのアクティビティーを /var/log/rhsm/rhsm.log ファイルにロギングします。ログファイルには役立つ情報が含まれている可能性があるため、トラブルシューティングを行う場合はログファイルを確認するようにしてください。詳細のロギングを有効にするには、グローバル設定ファイル /etc/sysconfig/virt-who のデバッグ行を VIRTWHO_DEBUG=1 に変更します。virt-who をサービスとして実行している場合は、再起動して設定を適用する必要があります。 潜在する問題を解決したら、デバッグ行を VIRTWHO_DEBUG=0 に戻し、virt-who を再起動して、診断ロギングを無効にしてください。

6.2. 設定行が重複する場合

グローバルファイルやハイパーバイザー固有のファイルなど、設定ファイルが複数存在する可能性があるため、設定行が重複すると、virt-who が意図したものとは異なる動作をする可能性があります。

virt-who 設定ファイルの重複行を検出するには、以下のコマンドを使用します。このコマンドの出力は、指定ファイルの行を一覧表示し、行頭に重複回数を追加します。2 回以上記載されている行をすべて確認して重複行を削除し、virt-who サービスを再起動します。使用方法は「virt-who サービスの再起動」を参照してください。

cat /etc/sysconfig/virt-who /etc/virt-who.d/* | sort | uniq -c

6.3. 認証情報

認証情報に誤りがあると、virt-who で問題が発生する可能性があります。できる限り、仮想化マネージャーまたはハイパーバイザーにログインして、virt-who が使用するように設定した認証情報をテストするようにしてください。たとえば、VMware vSphere の管理コンソールにログインし、必要なホストが表示され、認証情報が正しいことを確認します。

6.4. 設定オプションのテスト

トラブルシューティング時に問題の根本原因を判断するためには、変更を加えて結果をテストしていくことを必要に応じて繰り返していくのが一般的な方法です。virt-who エージェントは、この手法を使用しやすいようなオプションを提供します。

virt-who --one-shot コマンドを実行すると、全設定ファイルを読み込み、全ソースから仮想マシン一覧を取得し、すぐに終了します。このように、設定ファイル、認証情報、設定済み仮想化プラットフォームへの接続性をテストします。

# virt-who --one-shot

ハイパーバイザーとホストされているゲスト仮想マシンの一覧が JSON 形式で出力されます。以下は、VMware vSphere インスタンスからの virt-who の出力の抜粋です。ハイパーバイザーからの出力はすべて、以下のような構成になっています。

{
    "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12",
    "state": 5,
    "attributes": {
        "active": 0,
        "virtWhoType": "esx",
        "hypervisorType": "vmware"
    }
},

6.5. シナリオ例

6.5.1. Virt-who が仮想化プラットフォームとの接続に失敗した場合

virt-who が仮想化プラットフォームとの接続に失敗した場合は、Red Hat Subscription Manager のログファイル /var/log/rhsm/rhsm.log を確認します。No route to host メッセージが表示された場合は、ハイパーバイザーが予想したのとは異なるポートをリッスンしていることがその原因として考えられます。たとえば、Red Hat Virtualization Manager には、後方互換用にポート 8443 をデフォルト設定していますが、virt-who のデフォルトはポート 443 です。このような場合は、/etc/virt-who.d/ ディレクトリーのハイパーバイザーの設定を編集して、server 行の値に :443 と追加し、server=https://rhevmhost1.example.com:443 とします。