A.3. virt-who のトラブルシューティング方法
virt-who ステータスの確認
Satellite Web UI で virt-who の ステータスを確認するには、Infrastructure > Virt-who configurations に移動して、各 virt-who インスタンスの Status 列を確認します。ステータスが 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