ログ収集
ログメカニズムの概要
次の表は、Linux VDA のログメカニズムの概要を示しています。
| ログモジュール | ログファイル名の形式 | ログファイル名の例 | ログの範囲 | 1ファイルあたりの最大サイズ | ローテーションしきい値 (デフォルト) | 構成 |
|---|---|---|---|---|---|---|
| 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 番目のファイルです。
- 1 つのログファイルの最大サイズはメビバイト (MiB) で測定されます。
- 生成中で、まだ 1 ファイルあたりの最大サイズに達していないログファイルは、「現在の」ログファイルと呼ばれます。 「現在の」ログファイルが 1 ファイルあたりの最大サイズに達すると、ロールオーバーされて「以前の」ログファイルになります。
- ローテーションしきい値は、保持できる「以前の」ログファイルの数を制限するために構成可能です。制限に達すると、最も古いログファイルが削除されます。
ログ構成
このセクションでは、上記の表で概説されている詳細を補完する、ログ構成に関する追加情報を提供します。
Linux VDA でデフォルトで有効になっているログ
ctxlogd デーモンと setlog ユーティリティは、Linux VDA リリースパッケージに含まれています。デフォルトでは、Linux VDA をインストールして構成すると、ctxlogd デーモンが起動します。トレースされる他のすべてのサービスは、ctxlogd デーモンに依存します。Linux VDA のトレースを継続したくない場合は、ctxlogd デーモンを停止できます。
/etc/xdl/brokeragent.conf を介した VDA ログの構成
注:
1 つのログファイルの最大サイズなど、他のログパラメータを詳しく調べずに VDA ログのログレベルのみを構成したい場合は、この記事の後半で説明する setlog ユーティリティを使用できます。それ以外の場合は、/etc/xdl/brokeragent.conf を使用してください。
VDA 上の /etc/xdl/brokeragent.conf ファイルは、VDA ログを構成するために利用できます。例:

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

setlog ユーティリティを介した HDX™ ログの構成
setlog ユーティリティは /opt/Citrix/VDA/bin/ パスにあります。root ユーザーのみが実行する権限を持っています。GUI を使用するか、コマンドを実行して、値(ログファイルパス、単一ファイルサイズ制限、ローテーションしきい値)とログレベルを含む構成オプションを表示および変更できます。setlog ユーティリティのヘルプについては、次のコマンドを実行してください。
setlog help
<!--NeedCopy-->
値
デフォルトでは、HDX ログは /var/log/xdl/hdx.log に保存され、1 つの 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 に設定することをお勧めします。その後、問題を再現し、ログを収集します。
ログレベル(Disabled、Inherited、Trace、Verbose、Information、Warnings、Errors、Fatal Errors を含む)を設定するには、次のコマンドを実行します。
- setlog level <class> [<level>]
<!--NeedCopy-->
| ログレベル | コマンドパラメータ (大文字と小文字を区別しない) |
|---|---|
| Disabled | none |
| Inherited | inherit |
| Trace | trace |
| Verbose | verbose |
| Information | info |
| Warnings | warning |
| Errors | error |
| Fatal Errors | fatal |
<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) ログを収集します。次の機能をサポートしています。
- 再現が困難な問題のトラブルシューティング
- 日常的なヘルスチェック
- 一元化されたログ管理
ログは構造化されたイベントに変換され、クエリと分析のために一元化された ログサーバー にアップロードされます。
構成
グループポリシーの構成
グループポリシー を介してこの機能を有効にするには、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 を認証しません。
トラブルシューティング
ctxlogd デーモンが失敗し、/var/xdl/.ctxlog ファイルが見つからない場合(例えば、誤って削除された場合)、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 サービスを再起動します。