第6章 トラブルシューティング
6.1. デバッグ向けのロギング
デフォルトでは、virt-who はすべてのアクティビティーを /var/log/rhsm/rhsm.log
ファイルにロギングします。トラブルシューティングする際は、役立つ情報が含まれている可能性がありますので、ログファイルを確認するようにしてください。詳細のロギングを有効にするには、グローバル設定ファイル /etc/sysconfig/virt-who
のデバッグの行を VIRTWHO_DEBUG=1
に変更してください。virt-who がサービスとして実行されている場合は、設定を適用するために再起動する必要があります。 潜在する問題を解決したら、デバッグの行を VIRTWHO_DEBUG=0
に変更し、virt-service を再起動して、診断ロギングを無効にしてください。
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 サブスクリプションマネージャーのログファイル (/var/log/rhsm/rhsm.log
) を確認してください。No route to host
とのメッセージが表示された場合は、考えられる理由の 1 つとして、ハイパーバイザーが予想どおりのポートをリッスンしていないことが挙げられます。たとえば、Red Hat Virtualization Manager には、後方互換用にポート 8443 をデフォルト設定していますが、virt-who のデフォルトは 443 のポートを使用します。このような場合は、/etc/virt-who.d/
のハイパーバイザーの設定を編集して、server=https://rhevmhost1.example.com:443
になるように、server
の行の値に :443
と追記してください。
6.5.2. ハイパーバイザーが Satellite web UI にホスト名ではなく UUID で表示されている場合
デフォルトでは、ハイパーバイザーは Satellite Web UI で UUID で特定します。ホスト名で特定できるように、これを変更することができますが、ハイパーバイザーが重複してしまいますので、設定は Satellite を起動する前に行う必要があります。変更の必要がある場合には、Red Hat サポートでサポートチケットを起票してください。
6.5.3. Virt-who がローカルネットワークで HTTP プロキシーを介して仮想化マネージャーに接続しようとする場合
Satellite が HTTP プロキシー経由で Red Hat カスタマーポータルに接続されており、Satellite Server と仮想化マネージャーが同じネットワークセグメントにある場合に、virt-who はプロキシー経由で仮想マシン一覧を取得使用とします。推奨の回避策として、ローカルのトラフィックが通過できるようにプロキシーを設定してください。このような設定ができない場合には、他の回避策として、Satellite Server に Squid プロキシーサーバーをインストールしてください。詳しい情報は、「Bypassing proxy for some repository URLs on Satellite 6」を参照してください。