第20章 仮想マシンの問題診断
仮想マシンを使用していると、さまざまな重大度の問題が発生する可能性があります。問題によってはすぐ簡単に修正できる可能性がありますが、仮想マシン関連のデータおよびログを取得して、問題を報告または診断しなければならない場合もあります。
以下のセクションでは、ログの生成および一般的な仮想マシンの問題の診断方法と、このような問題の報告方法を説明します。
20.1. libvirt デバッグログの生成 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の問題を診断するには、libvirt デバッグログを生成して確認することが役立ちます。また仮想マシン関連の問題解決のサポートを受ける場合には、デバッグログを添付すると役立ちます。
20.1.1. libvirt デバッグログについて リンクのコピーリンクがクリップボードにコピーされました!
デバッグログは、仮想マシンランタイム時に発生するイベント関連のデータが含まれるテキストファイルです。ログには、ホストライブラリーや libvirt デーモンなどのサーバー側の基本機能に関する情報が記録されます。ログファイルには、実行中の全仮想マシンの標準エラー出力 (stderr) も含まれます。
デバッグロギングはデフォルトでは有効になっていないため、libvirt の起動時に有効にする必要があります。
-
現在のセッションの
libvirtデバッグログを収集するには、実行時の libvirt デバッグログの有効化 を参照してください。 -
デフォルトで
libvirtデバッグログを収集するには、libvirt デバッグログの永続的な有効化 を参照してください。
その後、仮想マシンの問題に関するサポートをリクエストするときにログを添付できます。詳細は、サポートリクエストへの libvirt デバッグログの添付 を参照してください。
20.1.2. libvirt デバッグログの永続的な有効化 リンクのコピーリンクがクリップボードにコピーされました!
libvirt の起動時に常に libvirt デバッグログが自動的に有効になるように設定できます。デフォルトでは、virtqemud が RHEL 10 のメインの libvirt デーモンです。libvirt の設定に永続的な変更を加えるには、/etc/libvirt ディレクトリーにある virtqemud.conf ファイルを編集する必要があります。
手順
-
エディターで
virtqemud.confファイルを開きます。 要件に応じてフィルターを置き換えるか、設定します。
Expand 表20.1 フィルター値のデバッグ 1
libvirtによって生成されたすべてのメッセージをログに記録します。2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
例20.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"
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- 保存して終了します。
libvirtデーモンを再起動します。systemctl restart virtqemud.service
$ systemctl restart virtqemud.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
20.1.3. 実行時の libvirt デバッグログの有効化 リンクのコピーリンクがクリップボードにコピーされました!
libvirt デーモンの実行時の設定を変更し、デバッグログを有効にして出力ファイルに保存できます。
これは、再起動すると問題が解決してしまうため、または移行やバックアップなどの別のプロセスが同時に実行されているため、libvirt デーモンを再起動できない場合に役立ちます。設定ファイルを編集したり、デーモンを再起動せずにコマンドを試行したりする場合にも、ランタイム設定を変更すると便利です。
前提条件
-
libvirt-adminパッケージがインストールされている。
手順
オプション: アクティブなログフィルターのセットをバックアップします。
virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
# virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、ログを生成した後にアクティブなフィルターセットを復元できるようになります。フィルターを復元しないと、メッセージが引き続きログに記録され、システムのパフォーマンスに影響が生じる可能性があります。
virt-adminユーティリティーを使用してデバッグを有効にし、要件に応じてフィルターを設定します。Expand 表20.2 フィルター値のデバッグ 1
libvirt が生成したすべてのメッセージをログに記録します。
2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
例20.2 ロギングフィルターの virt-admin 設定の例
以下のコマンドを実行します。
-
remote、util.json、およびrpcレイヤーからのエラーメッセージおよび警告メッセージをすべてログに記録します。 -
eventレイヤーからのエラーメッセージのみをログに記録します。
virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
# virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
virt-adminユーティリティーを使用して、ログを特定のファイルまたはディレクトリーに保存します。たとえば、以下のコマンドはログ出力を
/var/log/libvirt/ディレクトリーのlibvirt.logファイルに保存します。virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
# virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: フィルターを削除して、仮想マシン関連のすべての情報を含むログファイルを生成することもできます。ただし、このファイルには libvirt のモジュールが生成した多くの冗長情報が含まれる可能性があるため、推奨されません。
virt-adminユーティリティーを使用して空のフィルターのセットを指定します。virt-admin -c virtqemud:///system daemon-log-filters Logging filters:
# virt-admin -c virtqemud:///system daemon-log-filters Logging filters:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション: 以前に作成したバックアップファイルを使用して、フィルターを元の状態に復元します。
virt-admin -c virtqemud:///system daemon-log-filters "<original-filters>"
# virt-admin -c virtqemud:///system daemon-log-filters "<original-filters>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの
<original-filters>は、virt-filters-backupの内容に置き換えます。フィルターを復元しないと、メッセージが引き続きログに記録され、システムのパフォーマンスに影響が生じる可能性があることに注意してください。
20.1.4. サポートリクエストへの libvirt デバッグログの添付 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンの問題の診断および解決に追加のサポートを依頼する必要がある場合があります。仮想マシン関連の問題を迅速に解決するために、サポートチームが必要な情報すべてにアクセスできるように、サポートリクエストにデバッグログを添付することを強く推奨します。
手順
- 問題およびサポートを報告するには、サポートケースを作成 してください。
発生した問題に応じて、レポートに以下のログを添付します。
-
libvirtサービスに関する問題の場合は、ホストからの/var/log/libvirt/libvirt.logファイルを添付します。 特定の仮想マシンに関する問題の場合は、該当するログファイルを添付します。
たとえば、仮想マシン testguest1 の場合は、
/var/log/libvirt/qemu/testguest1.logにあるtestguest1.logファイルを添付します。
-