Linux Virtual Delivery Agent

ログ収集

ログメカニズムの概要

次の表は、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/brokeragent.conf ファイル

/etc/xdl/log4j2.xml を介した Jproxy ログの構成

注:

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

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

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)ログサーバー が適切に構成されていることを確認してください。手順は次のとおりです。

  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 を認証しません。

トラブルシューティング

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 サービスを再起動します。