Red Hat Training

A Red Hat training course is available for RHEL 8

第19章 仮想マシンの問題診断

仮想マシンを使用する際に、重大度が異なる場合に問題が発生する可能性があります。一部の問題には、迅速かつ簡単な修正がありますが、仮想マシン関連のデータおよびログを取得して、問題を報告または診断しなければならない場合があります。

以下のセクションでは、ログの生成および一般的な仮想マシンの問題の診断方法の詳細情報と、このような問題の報告方法を説明します。

19.1. 仮想マシンのデバッグログの生成

仮想マシンの問題を診断するには、デバッグログを生成し、確認すると便利です。デバッグログの添付は、仮想マシン関連の問題を解決するためのサポートを要求する場合にも便利です。

次のセクションでは、デバッグログとは何かそれらを永続的に設定し、実行時に有効にして、問題を報告する際に 添付する方法 を説明します。

19.1.1. 仮想マシンのデバッグログについて

デバッグログは、仮想マシンランタイム時に発生するイベントに関するデータが含まれるテキストファイルです。ログは、ホストライブラリーや libvirtd サービスなどのサーバー側の基本的な機能に関する情報を提供します。ログファイルには、実行中のすべての仮想マシンの標準エラー出力 (stderr) も含まれます。

デバッグロギングはデフォルトでは有効にされず、libvirt の起動時に有効にする必要があります。単一セッションのロギングを有効にしたり、永続的 にロギングを有効にすることができます。また、デーモンのランタイム設定を変更 することにより、libvirtd デーモンセッションがすでに実行中の場合にロギングを有効にすることもできます。

libvirt デバッグログの添付は、仮想マシンの問題のサポートを要求する場合にも便利です。

19.1.2. 仮想マシンのデバッグログの永続的な設定の有効化

/etc/libvirt ディレクトリーにある libvirtd.conf 設定ファイルを編集して、libvirt が起動するたびに仮想マシンのデバッグロギングを自動的に有効にできます。

手順

  1. エディターで libvirtd.conf ファイルを開きます。
  2. 要件に応じてフィルターを置き換えるか、または設定します。

    フィルター値を以下のように設定します。

    • 1 - libvirt が生成したすべてのメッセージをログに記録します。
    • 2 - すべての非デバッグ情報をログに記録します。
    • 3 - すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
    • 4 - エラーメッセージのみをログに記録します。

    たとえば、以下のコマンドを実行します。

    • remoteutil.json、および rpc 層からのすべてのエラーメッセージおよび警告メッセージをログに記録します。
    • イベント レイヤーからのエラーメッセージのみを記録します。
    • フィルターされたログを /var/log/libvirt/libvirtd.log に保存します。

      log_filters="3:remote 4:event 3:util.json 3:rpc"
      log_outputs="1:file:/var/log/libvirt/libvirtd.log"
  3. 保存して終了します。
  4. libvirtd サービスを再起動します。

    $ systemctl restart libvirtd.service

19.1.3. ランタイム時の仮想マシンのデバッグログの有効化

libvirt デーモンのランタイム設定を変更して、デバッグログを有効にし、出力ファイルに保存できます。

これは、再起動しないと問題が修正しない、または移行やバックアップなどの別のプロセスを同時に実行するなどの理由で、libvirtd を再起動できない場合に便利です。設定ファイルを編集したり、デーモンを再起動せずにコマンドを試行する場合にも、ランタイム設定を変更すると便利です。

前提条件

  • libvirt-admin パッケージがインストールされていることを確認します。

手順

  1. 必要に応じて、ログフィルターのアクティブなセットのバックアップを作成します。

    # virt-admin daemon-log-filters >> virt-filters-backup
    注記

    ログの生成後に復元できるように、アクティブなフィルターセットをバックアップすることが推奨されます。フィルターを復元しないと、メッセージがログに記録され、システムパフォーマンスに影響する可能性があります。

  2. virt-admin ユーティリティーを使用してデバッグを有効にし、要件に応じてフィルターを設定します。

    フィルター値を以下のように設定します。

    • 1 - libvirt が生成したすべてのメッセージをログに記録します。
    • 2 - すべての非デバッグ情報をログに記録します。
    • 3 - すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
    • 4 - エラーメッセージのみをログに記録します。

    たとえば、以下のコマンドを実行します。

    • remoteutil.json、および rpc 層からのすべてのエラーメッセージおよび警告メッセージをログに記録します。
    • イベント レイヤーからのエラーメッセージのみを記録します。

      # virt-admin daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
  3. virt-admin ユーティリティーを使用してログを特定のファイルまたはディレクトリーに保存します。
    たとえば、以下のコマンドはログ出力を /var/log/libvirt/ ディレクトリーの libvirt.log ファイルに保存します。

    # virt-admin daemon-log-outputs "1:file:/var/log/libvirt/libvirtd.log"
  4. 必要に応じて、フィルターを削除して、仮想マシン関連の情報をすべて含むログファイルを生成することもできます。ただし、このファイルには libvirt のモジュールが生成した多くの冗長情報が含まれる可能性があるため、推奨されません。

    • virt-admin ユーティリティーを使用して空のフィルターのセットを指定します。

      # virt-admin daemon-log-filters
        Logging filters:
  5. 必要に応じて、バックアップファイルを使用して、フィルターを元の状態に復元します。
    保存した値を使用して 2 番目の手順を実行し、フィルターを復元します。

19.1.4. サポートリクエストに仮想マシンのデバッグログを添付

仮想マシンの問題を診断し、解決するために追加のサポートが必要になる場合があります。仮想マシン関連の問題の迅速な解決に必要なすべての情報にサポートチームがアクセスできるように、デバッグログをサポートリクエストに添付することが強く推奨されます。

手順

  • 問題およびサポートを報告するには、サポートケースを作成してください。
  • 発生した問題に応じて、以下のログとレポートを添付します。

    • libvirt サービスに関する問題は、ホストから /var/log/libvirt/libvirtd.log ファイルを添付します。
    • 特定の仮想マシンに関する問題がある場合は、対応するログファイルを割り当てます。

      たとえば、仮想マシン testguest1 の場合は、/var/log/libvirt/qemu/testguest1.log にある testguest1.log ファイルを添付します。

関連情報