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

/etc/xdl/log4j2.xmlを介したJproxyロギングの設定
注:
単一ログファイルの最大サイズなどの他のロギングパラメータを深く掘り下げずに、Jproxyロギングのログレベルのみを構成したい場合は、この記事の後半で説明するsetlogユーティリティを使用できます。それ以外の場合は、/etc/xdl/log4j2.xmlを使用してください。
以下は、/etc/xdl/log4j2.xmlを介してJproxyロギングを構成する例です。この例では、SizeBasedTriggeringPolicyパラメータが単一Jproxyログファイルの最大サイズを指定し、DefaultRollerStrategyパラメータが保持できるJproxyログファイルの総数を設定します。

setlogユーティリティを介したHDX™ロギングの設定
setlogユーティリティは、/opt/Citrix/VDA/bin/パスの下にあります。rootユーザーのみが実行する権限を持っています。GUIを使用するか、コマンドを実行して、値(ログファイルパス、単一ファイルサイズ制限、ローテーションしきい値)やログレベルを含む構成オプションを表示および変更できます。setlogユーティリティのヘルプについては、次のコマンドを実行してください。
setlog help
<!--NeedCopy-->
値
デフォルトでは、HDXログは/var/log/xdl/hdx.logの下に保存され、単一HDXログファイルのサイズ制限は200 MiBで、/var/log/xdl/hdx.logの下に最大2つの「古い」HDXログファイルを保存できます。
現在のすべての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に設定することをお勧めします。その後、問題を再現し、ログを収集してください。
ログレベル(Disabled、Inherited、Trace、Verbose、Information、Warnings、Errors、Fatal Errorsを含む)を設定するには、次のコマンドを実行します。
setlog level <class> [<level>]
<!--NeedCopy-->
| ログレベル | コマンドパラメータ (大文字と小文字を区別しない) |
|---|---|
| 無効 | none |
| 継承 | inherit |
| トレース | trace |
| 詳細 | verbose |
| 情報 | info |
| 警告 | warning |
| エラー | error |
| 致命的なエラー | fatal |
<class>変数はLinux VDAのコンポーネントを指定します。すべてのコンポーネントを対象とするには、allに設定します。例:
setlog level all error
<!--NeedCopy-->
サポートされているすべてのクラスまたはコンポーネントを表示するには、次のコマンドを実行します。
setlog levels
<!--NeedCopy-->
デフォルトへの復元
すべてのレベルと値をデフォルト設定に戻します。
setlog default
<!--NeedCopy-->
重要:
ctxlogdサービスは、rootユーザーのみが作成できる/var/xdl/.ctxlogファイルを使用して構成されます。他のユーザーはこのファイルへの書き込み権限を持っていません。rootユーザーは他のユーザーに書き込み権限を与えないことをお勧めします。これに従わない場合、ctxlogdに恣意的な、または悪意のある構成が引き起こされ、サーバーのパフォーマンス、ひいてはユーザーエクスペリエンスに影響を与える可能性があります。
ログ収集
ログを収集するには、bash /opt/Citrix/VDA/bin/xdlcollect.shコマンドを実行します。ログ収集に使用されるxdlcollect Bashスクリプトは、Linux VDAソフトウェアに統合されており、/opt/Citrix/VDA/binの下にあります。
ログ収集が完了すると、VDA上の/tmp/xdlcollectの下にZIPファイルが生成されます。
トラブルシューティング
/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サービスを再起動します。