Linux Virtual Delivery Agent

ログの収集

ログメカニズムの概要

次の表は、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登録 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ログの設定に利用できます。例:

The /etc/xdl/brokeragent.conf file

注:

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

/etc/xdl/log4j2.xmlによるJproxyログの設定

注:

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

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

Configure Jproxy logging

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-->
ログレベル コマンドパラメーター(大文字と小文字を区別しない)
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サービスは、rootユーザーのみが作成できる/var/xdl/.ctxlogファイルを使用して構成されます。他のユーザーはこのファイルへの書き込み権限を持っていません。rootユーザーが他のユーザーに書き込み権限を与えないことをお勧めします。これに従わないと、ctxlogdに恣意的または悪意のある構成が適用され、サーバーのパフォーマンス、ひいてはユーザーエクスペリエンスに影響を与える可能性があります。

ログの収集

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

ログ収集が完了すると、スクリプトと同じフォルダーに圧縮ログファイルが生成されます。xdlcollect Bashスクリプトは、圧縮ログファイルをCitrix Insight Services(CIS)にアップロードするかどうかを尋ねることができます。同意すると、アップロード完了後にxdlcollectはupload_IDを返します。アップロードしても、圧縮ログファイルがローカルマシンから削除されることはありません。他のユーザーはupload_IDを使用してCISのログファイルにアクセスできます。

トラブルシューティング

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

ログの収集