6.7. virt-who のトラブルシューティング方法


virt-who ステータスの確認

virt-who サービスのステータスを確認します。

# systemctl status virt-who.service

デバッグロギング

/var/log/rhsm/rhsm.log ファイルを確認してください。デフォルトでは、virt-who はすべてのアクティビティーをログに記録します。

より詳細なログを取るためには、/etc/virt-who.conf ファイルでデバッグオプションを有効にしてください。

[global]
debug=True

変更を反映するために virt-who サービスを再起動します。

根本的な問題が解決したら、/etc/virt-who.conf ファイルを変更してデバッグを無効にしてから、virt-who サービスを再起動します。

設定オプションのテスト

必要に応じて変更を加え、結果をテストします。virt-who は、設定ファイル、認証情報、仮想化プラットフォームへの接続のテストに役立つ 3 つのオプションを提供します。

  • virt-who --one-shot コマンドは設定ファイルを読み取り、仮想マシンのリストを取得してサブスクリプション管理システムに送信し、直ちに終了します。
  • virt-who --print コマンドは設定ファイルを読み取り、仮想マシンのリストを出力しますが、サブスクリプション管理システムには送信されません。
  • RHEL 9 Beta 以降では、virt-who --status コマンドが設定ファイルを読み込んで、ソースシステムと宛先システムの両方の接続状態の概要を出力します。

    • virt-who --status コマンドに --json オプションを付けると、各設定の追加の接続性データが JSON 形式で提供されます。

virt-who --one-shot コマンドおよび virt-who --print コマンドの期待される出力は、ハイパーバイザーとその仮想マシンのリストで、JSON 形式です。以下は、VMware vSphere インスタンスからの抜粋です。すべてのハイパーバイザーからの出力は以下の設定になっています。

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

virt-who --status コマンドの期待される出力は、virt-who の各設定の接続ステータスのプレーンテキストの要約です。

+-------------------------------------------+
           Configuration Status
+-------------------------------------------+
Configuration Name: esx_config1
Source Status: success
Destination Status: success

Configuration Name: hyperv-55
Source Status: failure
Destination Status: failure

virt-who --status コマンドに --json オプションを付けた場合の期待される出力は、最後に成功した実行を含む各設定に関する追加情報を JSON 形式で提供します。この出力には、各設定の成功または失敗のステータスの詳細も含まれています。

  • ステータスレポートが設定の成功を示す場合、JSON 出力には、最後に成功した実行サイクルで virt-who が報告したハイパーバイザーおよびゲストの数が含まれます。
  • ステータスレポートが設定の失敗を示す場合は、JSON 出力に関連するエラーメッセージが表示されます。
"configurations": [
    {
        "name":"esx-conf1",
        "source":{
            "connection":"https://esx_system.example.com",
            "status":"success",
            "last_successful_retrieve":"2020-02-28 07:25:25 UTC",
            "hypervisors":20,
            "guests":37
        },
        "destination":{
            "connection":"candlepin.example.com",
            "status":"success",
            "last_successful_send":"2020-02-28 07:25:27 UTC",
            "last_successful_send_job_status":"FINISHED"
        }
    },
    {
        "name":"hyperv-55",
        "source":{
            "connection":"windows10-3.company.com",
            "status":"failure",
            "message":"Unable to connect to server: invalid credentials",
            "last_successful_retrieve":null
        },
        "destination":{
            "connection":"candlepin.company.com",
            "status":"failure",
            "message":"ConnectionRefusedError: [Errno 111] Connection refused",
            "last_successful_send":null,
            "last_successful_send_job_status":null
        }
    }
]
}

virt-who --status コマンドは、--debug オプションおよび --config オプションとともに使用して、設定ファイルに関する追加情報を提供することもできます。

複数の virt-who 設定ファイルを使用する場合の問題の特定

1 つのサーバーに virt-who 設定ファイルが複数ある場合は、1 度に 1 つのファイルを別のディレクトリーに移動し、各ファイルの移動後にテストを行います。問題が発生しなくなった場合、問題の原因は直近で移動したファイルにあることになります。問題の解決後、virt-who 設定ファイルを元の場所に戻します。

または、--config オプションを使用して場所を指定することにより、各ファイルを移動後にテストできます。以下に例を示します。

# virt-who --debug --one-shot --config /tmp/conf_name.conf

RHEL 9 Beta 以降では、virt-who --status--debug および --config オプションを付けて入力すると、ディレクトリーから他のファイルを削除することなく、問題の原因となっている設定ファイルを特定することができます。以下に例を示します。

#virt-who --debug --status --config /tmp/conf_name.conf

また、--json オプションを付けてコマンドを入力すると、各設定のより詳細な情報を JSON 形式で表示することができます。以下に例を示します。

#virt-who --debug --status --json --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

RHEL 9 Beta 以降では、以下のコマンドを入力して、virt-who が最後に成功した実行サイクルで報告したハイパーバイザーの数を確認します。

# virt-who --status --json

仮想マシン数の確認

以下のコマンドを入力し、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

RHEL 9 Beta 版では、次のコマンドを入力して、virt-who が最後に成功した実行サイクルで報告したゲスト数を確認します。

# virt-who --status --json
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.