A.3. virt-who のトラブルシューティングの方法
virt-who のステータスの確認
Satellite Web UI で virt-who の ステータスを確認するには、インフラストラクチャー > Virt-who 設定 に移動して、各 virt-who インスタンスの ステータス 列をチェックします。ステータスが OK
の場合は、virt-who が Satellite Server に正常に接続されており、各ハイパーバイザーによって管理されている仮想マシンをレポートしていることを示します。
CLI を使用してすべての virt-who インスタンスのステータスを一覧表示するには、Satellite Server で以下のコマンドを実行します。
# hammer virt-who-config list
このコマンドの出力には、virt-who の各インスタンスが Satellite Server にレポートした日時が含まれます。
デバッグロギング
/var/log/rhsm/rhsm.log
ファイルをチェックします。このファイルに、virt-who はデフォルトでアクティビティーすべてをログに記録します。
詳細なロギングを有効にするには、virt-who 設定を変更します。
- Satellite Web UI で Enable debugging output チェックボックスを選択します。
-
Hammer CLI で、
--debug true
オプションを追加します。
変更を有効にするには、設定を再デプロイします。
根本的な問題が解決したら、virt-who 設定を変更してデバッグを無効にし、設定を再デプロイします。
設定オプションのテスト
必要に応じて変更を加え、結果をテストします。virt-who は、設定ファイル、認証情報、仮想化プラットフォームへの接続のテストに役立つ 2 つのオプションを提供します。
-
virt-who --one-shot
コマンドは、設定ファイルを読み取り、仮想マシンの一覧を取得し、その一覧を Satellite Server に送信してから、直ちに終了します。 -
virt-who --print
コマンドは設定ファイルを読み取り、仮想マシンの一覧を出力しますが、その一覧を Satellite Server には送信しません。
ハイパーバイザーとその仮想マシンの一覧は JSON 形式で出力されます。以下は、VMware vSphere インスタンスからの抜粋です。すべてのハイパーバイザーからの出力は以下の設定になっています。
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },
複数の virt-who 設定ファイルを使用する場合の問題の特定
1 つのサーバーに virt-who 設定ファイルが複数ある場合は、1 度に 1 つのファイルを別のディレクトリーに移動し、各ファイルの移動後にテストを行います。問題が発生しなくなった場合は、問題の原因は直近で移動したファイルにあることになります。問題の解決後、virt-who 設定ファイルを元の場所に戻します。
または、--config
オプションを使用して場所を指定することにより、各ファイルを移動後にテストできます。以下に例を示します。
# virt-who --debug --one-shot --config /tmp/conf_name.conf
重複するハイパーバイザーの特定
ハイパーバイザーが重複すると、サブスクリプションとエンタイトルメントにエラーが発生する可能性があります。以下のコマンドを入力して、重複したハイパーバイザーの有無を確認します。
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | sort -nr | head -n10 3 "name": "localhost" 1 "name": "rhel1.example.com" 1 "name": "rhel2.example.com" 1 "name": "rhel3.example.com" 1 "name": "rhel4.example.com" 1 "name": "rhvh1.example.com" 1 "name": "rhvh2.example.com" 1 "name": "rhvh3.example.com" 1 "name": "rhvh4.example.com" 1 "name": "rhvh5.example.com"
この例では、3 つのハイパーバイザーに同じ FQDN (localhost
) があり、これらは固有の FQDN を使用するように修正される必要があります。
重複した仮想マシンの特定
以下のコマンドを入力して、重複した仮想マシンを確認します。
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | sort -nr | head -n10
ハイパーバイザーの数の確認
以下のコマンドを入力して、現在報告されているハイパーバイザーの virt-who の数を確認します。
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | wc -l
仮想マシン数の確認
以下のコマンドを入力し、virt-who が現在報告している仮想マシンの数を確認します。
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | wc -l