第23章 仮想マシンの問題診断
仮想マシンを使用していると、さまざまな重大度の問題が発生する可能性があります。問題によってはすぐ簡単に修正できる可能性がありますが、仮想マシン関連のデータおよびログを取得して、問題を報告または診断しなければならない場合もあります。
以下のセクションでは、ログの生成および一般的な仮想マシンの問題の診断方法と、このような問題の報告方法を説明します。
23.1. libvirt デバッグログの生成
仮想マシンの問題を診断するには、libvirt デバッグログを生成し、確認すると便利です。また仮想マシン関連の問題解決のサポートを受ける場合には、デバッグログを添付すると役立ちます。
次のセクションでは、デバッグログとは何か、デバッグログの永続設定、実行時の有効化、問題報告時の 添付方法 を説明します。
23.1.1. libvirt デバッグログについて
デバッグログは、仮想マシンランタイム時に発生するイベント関連のデータが含まれるテキストファイルです。ログには、ホストライブラリーや libvirt デーモンなどの、サーバー側の基本機能に関する情報が含まれます。ログファイルには、実行中の全仮想マシンの標準エラー出力 (stderr
) も含まれます。
デバッグロギングはデフォルトでは有効ではないので、libvirt の起動時に有効にする必要があります。セッション 1 回分のロギングを有効にしたり、永続的 にロギングを有効にすることができます。また、デーモンのランタイム設定を変更 することにより、libvirt デーモンセッションがすでに実行中の場合にロギングを有効にすることもできます。
仮想マシンの問題のサポートを受ける場合に、libvirt デバッグログ を添付すると役立ちます。
23.1.2. libvirt デバッグログの永続的な設定の有効化
libvirt の起動時に毎回、libvirt デバッグロギングを自動的に有効にするように設定できます。デフォルトでは、virtqemud
は RHEL 9 の主な libvirt デーモンになります。libvirt 設定で永続的な変更を行うには、/etc/libvirt
ディレクトリーにある virtqemud.conf
ファイルを編集する必要があります。
場合によっては、たとえば、RHEL 8 からアップグレードするときに、libvirtd
は依然として有効な libvirt デーモンである可能性があります。この場合は、代わりに libvirtd.conf
ファイルを編集する必要があります。
手順
-
エディターで
virtqemud.conf
ファイルを開きます。 要件に応じてフィルターを置き換えるか、設定します。
表23.1 フィルター値のデバッグ 1
libvirt が生成したすべてのメッセージをログに記録します。
2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
例23.1 ロギングフィルターのデーモン設定例
以下の設定を行います。
-
remote
、util.json
、およびrpc
層からのすべてのエラーメッセージおよび警告メッセージをログに記録します。 -
event
レイヤーからのエラーメッセージのみを記録します。 -
フィルターされたログを
/var/log/libvirt/libvirt.log
に保存します。
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"
-
- 保存して終了します。
libvirt デーモンを再起動します。
$ systemctl restart virtqemud.service
23.1.3. ランタイム時の libvirt デバッグログの有効化
libvirt デーモンのランタイム設定を変更し、デバッグログを有効にして出力ファイルに保存できます。
これは、再起動すると問題が解決するため、libvirt デーモンを再起動できない場合や、マイグレーションやバックアップなどの別のプロセスが同時に実行されている場合などに便利です。設定ファイルを編集したり、デーモンを再起動せずにコマンドを試行したりする場合にも、ランタイム設定を変更すると便利です。
前提条件
-
libvirt-admin
パッケージがインストールされている。
手順
オプション: アクティブなログフィルターのセットをバックアップします。
# virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
注記ログの生成後に復元できるように、アクティブなフィルターセットをバックアップすることが推奨されます。フィルターを復元しないと、メッセージがログに記録され、システムパフォーマンスに影響する可能性があります。
virt-admin
ユーティリティーを使用してデバッグを有効にし、要件に応じてフィルターを設定します。表23.2 フィルター値のデバッグ 1
libvirt が生成したすべてのメッセージをログに記録します。
2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
例23.2 ロギングフィルターの virt-admin 設定の例
以下のコマンドを実行します。
-
remote
、util.json
、およびrpc
レイヤーからのエラーメッセージおよび警告メッセージをすべてログに記録します。 -
イベント
レイヤーからのエラーメッセージのみを記録します。
# virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
-
virt-admin
ユーティリティーを使用して、ログを特定のファイルまたはディレクトリーに保存します。たとえば、以下のコマンドはログ出力を
/var/log/libvirt/
ディレクトリーのlibvirt.log
ファイルに保存します。# virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
オプション: フィルターを削除して、仮想マシン関連のすべての情報を含むログファイルを生成することもできます。ただし、このファイルには libvirt のモジュールが生成した多くの冗長情報が含まれる可能性があるため、推奨されません。
virt-admin
ユーティリティーを使用して空のフィルターのセットを指定します。# virt-admin -c virtqemud:///system daemon-log-filters Logging filters:
-
オプション: バックアップファイルを使用してフィルターを元の状態に復元します。
保存した値を使用して 2 番目の手順を実行し、フィルターを復元します。
23.1.4. サポートリクエストへの libvirt デバッグログの添付
仮想マシンの問題の診断および解決に追加のサポートを依頼する必要がある場合があります。仮想マシン関連の問題を迅速に解決するために、サポートチームが必要な情報すべてにアクセスできるように、サポートリクエストにデバッグログを添付することを強く推奨します。
手順
- 問題およびサポートを報告するには、サポートケースを作成 してください。
発生した問題に応じて、レポートに以下のログを添付します。
-
libvirt サービスに問題がある場合は、ホストから
/var/log/libvirt/libvirt.log
ファイルを添付します。 特定の仮想マシンに関する問題は、該当するログファイルを添付します。
たとえば、仮想マシン testguest1 の場合は、
/var/log/libvirt/qemu/testguest1.log
にあるtestguest1.log
ファイルを添付します。
-
libvirt サービスに問題がある場合は、ホストから
関連情報
- How to provide log files to Red Hat Support?(Red Hat ナレッジベース)