Linux Virtual Delivery Agent

ログ収集

ログメカニズムの概要

次の表は、Linux VDAのログメカニズムの概要を示しています。

ログモジュール ログファイル名の形式 ログファイル名の例 ログの範囲 最大単一ファイルサイズ ローテーションしきい値(デフォルト) 設定項目
HDX hdx.log[.n] hdx.log, hdx.log.1 グラフィック、ログイン、オーディオ、キーボード、マウス 200 MiB 現在1つ、過去2つ setlogユーティリティで構成可能
ジェイプロキシ jproxy.log[.n.log] jproxy.log, jproxy.log.1.log VDA登録、ユーザー認証 20 MiB 現在1つ、過去10個 setlogユーティリティまたは/etc/xdl/log4j2.xmlで構成可能
VDA vda.YYYY-MM-DD.hh.mm.ss.log vda.2024-05-06.20.18.40.ログ VDA登録 10 MiB 現在1つ、過去100個 setlog ユーティリティ、または /etc/xdl/brokeragent.conf を使用して、設定を行うことができます。

注:

  • 最初のログファイルには名前に番号がなく、後続のファイルには「.n」(「n」はファイル番号を表す)が付加されます。たとえば、「hdx.log」は最初のHDXログファイルで、「hdx.log.1」は2番目のファイルです。
  • 単一のログファイルの最大サイズは、メビバイト(MiB)で測定されます。
  • 生成中で、単一ファイルの最大サイズに達していないログファイルは、「現在の」ログファイルと呼ばれます。「現在の」ログファイルが単一ファイルの最大サイズに達すると、ロールオーバーされて「古い」ログファイルになります。
  • 保持できる「古い」ログファイルの数を制限するために、ローテーションしきい値を構成できます。制限に達すると、最も古いログファイルが削除されます。

ログ記録の構成

このセクションでは、上記の表に示されている詳細を補完する、ログ構成に関する追加情報を提供します。

Linux VDAでデフォルトで有効になっているログ記録

ctxlogdデーモンとsetlogユーティリティは、Linux VDAリリースパッケージに含まれています。デフォルトでは、Linux VDAをインストールして構成すると、ctxlogdデーモンが起動します。トレースされる他のすべてのサービスは、ctxlogdデーモンに依存します。Linux VDAのトレースを維持したくない場合は、ctxlogdデーモンを停止できます。

/etc/xdl/brokeragent.conf を使用して VDA のログ記録機能を設定する

注:

単一ログファイルの最大サイズなどの他のログパラメータを深く掘り下げずに、VDAログ記録のログレベルのみを構成したい場合は、この記事の後半で説明するsetlogユーティリティを使用できます。それ以外の場合は、/etc/xdl/brokeragent.confを使用してください。

VDA上の/etc/xdl/brokeragent.confファイルは、VDAログ記録の構成に利用できます。例:

/etc/xdl/brokeragent.conf ファイルの内容を示す画面のスクリーンショットです。(/ja-jp/linux-virtual-delivery-agent/2402-ltsr/media/brokeragent-conf.png)

注記:

デフォルトでは、保持できる「古い」VDAログファイルの最大数は100です。必要に応じて調整してください。

/etc/xdl/log4j2.xml を使用してJproxyロギングを構成する

注記:

Jproxyログのログレベルのみを構成し、単一ログファイルの最大サイズなどの他のログパラメータに深く立ち入らない場合は、この記事の後半で説明するsetlogユーティリティを使用できます。それ以外の場合は、/etc/xdl/log4j2.xmlを使用してください。

以下は、/etc/xdl/log4j2.xmlを介してJproxyログを構成する例です。この例では、SizeBasedTriggeringPolicyパラメータが単一のJproxyログファイルの最大サイズを指定し、DefaultRollerStrategyパラメータが保持できるJproxyログファイルの総数を設定します。

Jproxyログの構成

setlogユーティリティによるHDX™ログの構成

setlogユーティリティは/opt/Citrix/VDA/bin/パスにあります。rootユーザーのみが実行する権限を持っています。GUIを使用するか、コマンドを実行して、値(ログファイルのパス、単一ファイルのサイズ制限、ローテーションしきい値)やログレベルを含む構成オプションを表示および変更できます。setlogユーティリティのヘルプについては、次のコマンドを実行してください。

setlog help
<!--NeedCopy-->

デフォルトでは、HDXログは/var/log/xdl/hdx.logに保存され、単一のHDXログファイルのサイズ制限は200 MiBです。また、最大2つの「古い」HDXログファイルを/var/log/xdl/hdx.logに保存できます。

現在のすべてのsetlog値を表示するには、次のコマンドを実行します。

setlog values

log_path (Log Output Path) = /var/log/xdl/hdx.log

log_size (Max Log Size (MiB)) = 200

log_count (Max Old Log Files) = 2
<!--NeedCopy-->

単一のsetlog値を表示または設定するには、次のコマンドを実行します。

setlog value <name> [<value>]
<!--NeedCopy-->

以下に例を示します。

setlog value log_size 100
<!--NeedCopy-->

レベル

デフォルトでは、ログレベルはinfo(大文字と小文字を区別しない)に設定されています。

トラブルシューティングが必要な問題が発生した場合、ほとんどのシナリオでログレベルをverboseに設定することをお勧めします。その後、問題を再現し、ログを収集してください。

ログレベル(無効、継承、トレース、詳細、情報、警告、エラー、致命的なエラーを含む)を設定するには、次のコマンドを実行します。

setlog level <class> [<level>]
<!--NeedCopy-->
ログレベル コマンドパラメータ(大文字と小文字を区別しない)
無効 なし
継承された 継承
トレース トレース
詳細 詳細
情報ログ 情報
警告 警告
エラー エラー
致命的なエラー 致命的

<class> 変数は、Linux VDA のコンポーネントを指定します。すべてのコンポーネントを対象とするには、「all」に設定します。例:

setlog level all error
<!--NeedCopy-->

サポートされているすべてのクラスまたはコンポーネントを表示するには、次のコマンドを実行します。

setlog levels
<!--NeedCopy-->

デフォルトに戻す

すべてのレベルと値をデフォルト設定に戻します。

setlog default
<!--NeedCopy-->

重要:

ctxlogd サービスは /var/xdl/.ctxlog ファイルを使用して構成されますが、このファイルは root ユーザーのみが作成できます。他のユーザーはこのファイルへの書き込み権限を持っていません。root ユーザーは他のユーザーに書き込み権限を与えないことをお勧めします。これに従わないと、ctxlogd に任意または悪意のある構成が適用され、サーバーのパフォーマンス、ひいてはユーザーエクスペリエンスに影響を与える可能性があります。

ログの収集

ログを収集するには、bash /opt/Citrix/VDA/bin/xdlcollect.sh コマンドを実行します。ログの収集に使用される xdlcollect Bash スクリプトは、Linux VDA ソフトウェアに統合されており、/opt/Citrix/VDA/bin にあります。

ログの収集が完了すると、VDA 上の /tmp/xdlcollect に ZIP ファイルが生成されます。

AOTログ収集とアップロード

概要

この機能は、Virtual Delivery Agent (VDA) 上のコンポーネントからAlways-On Tracing (AOT) ログを収集します。次の用途をサポートします。

  • 再現が困難な問題のトラブルシューティング
  • 日次ヘルスチェック
  • ログの一元管理

ログは構造化イベントに変換され、クエリと分析のために一元化されたLog Serverにアップロードされます。

構成について

グループポリシー構成

グループポリシーを介してこの機能を有効にするには、Delivery Controller (DDC)Log Serverが適切に構成されていることを確認してください。手順は次のとおりです。

  1. Citrix Studioで、[設定] -> [ログサーバー] -> [編集] をクリックします

AOTログサーバー

  1. ログサーバーのアドレスとポートを設定して、ログサーバーへのログ転送を有効にします

AOTログ構成

ローカルレジストリ構成

ローカルレジストリはポリシーよりも優先度が高くなります。ローカルレジストリを介してこの機能を有効にするには、VDAで次のコマンドを実行します(<ip><port>を独自のものに置き換えてください):

AOTデータ収集を有効にする:

ログサーバーのエンドポイントを設定する:

sudo /opt/Citrix/VDA/bin/ctxreg create \
  -k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \
  -t "REG_DWORD" \
  -v "EnableAotDataCollection" \
  -d "0x00000001" --force

sudo /opt/Citrix/VDA/bin/ctxreg create \
  -k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \
  -t "REG_SZ" \
  -v "AotDataStoreEndpoint" \
  -d "<http/https>://<fqdn-or-ip-address>:<port>" --force
<!--NeedCopy-->

Studioからプッシュされたポリシー設定が変更された場合、またはローカルレジストリ設定が変更された場合、ctxvectorサービスは1分以内に自動的に変更を適用します。手動で再起動する必要はありません。

TLS認証

この機能は、ログサーバーへのHTTPおよびHTTPS接続をサポートします。HTTPSの場合、ルートCA証明書をLinuxシステムキーストアにインストールします。VDAは、ログサーバー証明書を認証した後にのみHTTPS接続を正常に確立できます。ログサーバーはVDAを認証しません。

トラブルシューティング

/var/xdl/.ctxlogファイルが見つからない場合(誤って削除された場合など)、ctxlogdデーモンが失敗し、ctxlogdサービスを再起動できません。

/var/log/messages:

Apr 1 02:28:21 RH72 citrix-ctxlogd[17881]: Failed to open logging configuration file.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service: main process exited, code=exited, status=1/FAILURE

Apr 1 02:28:21 RH72 systemd: Unit ctxlogd.service entered failed state.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service failed.
<!--NeedCopy-->

この問題を解決するには、rootユーザーとしてsetlogを実行して/var/xdl/.ctxlogファイルを再作成します。その後、他のサービスが依存するctxlogdサービスを再起動します。