ログ収集
ログ記録メカニズムの概要
次の表は、Linux VDAのログ記録メカニズムの概要を示しています。
ログモジュール | ログファイル名の形式 | ログファイル名の例 | ログスコープ | 単一ファイルの最大サイズ | ローテーションのしきい値(デフォルト) | 構成 |
---|---|---|---|---|---|---|
HDX | hdx.log[.n] | hdx.log, hdx.log.1 | グラフィック、ログイン、オーディオ、キーボード、マウス | 200MB | 1(current)、2(old) | setlogユーティリティで構成可能 |
Jproxy | jproxy.log[.n.log] | jproxy.log、jproxy.log.1.log | VDA登録、ユーザー認証 | 20MB | 1(current)、10(old) | setlogユーティリティまたは/etc/xdl/log4j2.xmlで構成可能 |
VDA | vda.YYYY-MM-DD.hh.mm.ss.log | vda.2024-05-06.20.18.40.log | VDA登録 | 10MB | 1(current)、100(old) | setlogユーティリティまたは/etc/xdl/brokeragent.confで構成可能 |
注:
- 最初のログファイルの名前には番号が含まれず、以降のファイルには「.n」または「n」という番号が付けられ、これがファイル番号を表します。たとえば、「hdx.log」は最初のHDXログファイルであり、「hdx.log.1」は2番目のHDXログファイルです。
- 単一ログファイルの最大サイズは、メビバイト(MiB)単位で測定されます。
- 生成中であり、単一ファイルの最大サイズにまだ達していないログファイルは、「current」のログファイルと呼ばれます。 「current」のログファイルが単一ファイルの最大サイズに達すると、ロールオーバーされて「old」ログファイルになります。
- ローテーションのしきい値は、保持できる「old」ログファイルの数を制限するように構成できます。この制限に達すると、最も古いログファイルが削除されます。
ログ構成
このセクションでは、上記の表で概説した詳細を補足するために、ログ構成に関する追加情報を提供します。
Linux VDAではデフォルトでログが有効
Linux VDAパッケージに、ctxlogdデーモンおよびsetlogユーティリティが追加されました。ctxlogdデーモンは、Linux VDAをインストールして構成すると、デフォルトで開始されます。トレースされた他のサービスはすべてctxlogdデーモンに依存しています。Linux VDAをトレースしない場合は、ctxlogdデーモンを停止できます。
/etc/xdl/brokeragent.confでVDAログを構成する
注:
単一のログファイルの最大サイズなど、他のログパラメーターについて詳しく確認する必要がなく、VDAログのログレベルのみを構成する場合は、この記事の後半で説明するsetlogユーティリティを使用できます。それ以外の場合は、 /etc/xdl/brokeragent.confを使用します。
VDAの/etc/xdl/brokeragent.confファイルは、VDAログの構成に利用できます。例:
注:
デフォルトでは、保持できる「old」VDAログファイルの最大数は100です。必要に応じて調整してください。
/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/パスにあります。このユーティリティを実行する権限があるのは、ルートユーザーのみです。GUIを使用するかコマンドを実行して、値(ログファイルのパス、単一ファイルのサイズ制限、ローテーションのしきい値)やログレベルなどの構成オプションを表示および変更できます。setlogユーティリティのヘルプを表示するには、次のコマンドを実行します:
setlog help
<!--NeedCopy-->
値
デフォルトでは、HDXログは/var/log/xdl/hdx.logに保存され、単一のHDXログファイルのサイズ制限は200MiBです。/var/log/xdl/hdx.logには、最大2つの「old」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の1つのコンポーネントを指定します。すべてのコンポーネントをカバーするには、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ファイルが生成されます。
トラブルシューティング
/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-->
この問題を解決するには、ルートユーザーとしてsetlogを実行して、/var/xdl/.ctxlog ファイルを再度作成します。次に、他のサービスが依存するctxlogdサービスを再起動します。