ログ収集
ログメカニズムの概要
次の表は、Linux VDAのログメカニズムの概要を示しています。
| ログモジュール | ログファイル名の形式 | ログファイル名の例 | ログの範囲 | 最大単一ファイルサイズ | ローテーションしきい値 (デフォルト) | 構成情報 |
|---|---|---|---|---|---|---|
| HDX | hdx.log[.n] | hdx.log, hdx.log.1 | グラフィック、ログイン、オーディオ、キーボード、マウス | 200 MiB | 現在1つ、過去2つ | setlog ユーティリティで構成可能 |
| Jプロキシ | 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.log | VDA 登録 | 50 MiB | 現在1つ、過去1つ | 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ログ記録の構成に利用できます。例:

Jproxyロギングを/etc/xdl/log4j2.xmlを使用して設定する
注:
単一ログファイルの最大サイズなど、他のロギングパラメーターに深く踏み込まずにJproxyロギングのログレベルのみを構成したい場合は、この記事の後半で説明するsetlogユーティリティを使用できます。それ以外の場合は、/etc/xdl/log4j2.xmlを使用してください。
以下は、/etc/xdl/log4j2.xmlを介してJproxyロギングを構成する例です。この例では、SizeBasedTriggeringPolicyパラメーターが単一のJproxyログファイルの最大サイズを指定し、DefaultRollerStrategyパラメーターが保持できるJproxyログファイルの総数を設定します。
Jproxyロギングを構成する(/ja-jp/linux-virtual-delivery-agent/2511/media/log4j2-xml.png)
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 ファイルを使用して構成されます。他のユーザーはこのファイルへの書き込み権限を持っていません。ルートユーザーが他のユーザーに書き込み権限を与えないことをお勧めします。これに従わない場合、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にアップロードされます。
設定方法
グループポリシーの構成
この機能をグループポリシー経由で有効にするには、Log ServerがDelivery Controller (DDC)で適切に構成されていることを確認してください。手順は次のとおりです。
- Citrix Studioで、[設定] -> [ログサーバー] -> [編集] をクリックします。

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

ローカルレジストリの構成
ローカルレジストリはポリシーよりも優先されます。ローカルレジストリ経由でこの機能を有効にするには、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サービスを再起動します。