Citrix Virtual Apps and Desktops

AOTログの表示と使用

Director UI経由でのログへのアクセス

ステップ1

StartLogServer.batファイルを編集します

StartLogServer.batファイルには、AOTログサーバーコンテナの起動に使用されるすべての構成パラメーターが含まれており、ログアクセスと動作を制御するいくつかの環境変数も含まれています。主要な設定の1つは、LOCAL_DOWN_ONLYです。

  • LOCAL_DOWN_ONLY=falseの場合、ログサーバーはリモートログ表示要求を受け入れます。これにより、Citrix Director/Monitorがログサーバーに接続し、Monitor UIにAOTログを直接表示できます。

  • LOCAL_DOWN_ONLY=trueの場合、ログサーバーはログアクセスをローカル接続のみに制限します。このモードでは、ログを表示するためにログサーバーマシンに直接接続する必要があり、Citrix Director Monitorはログを取得または表示できません

AOTバッチファイル

ステップ2

Web Studioには、Citrix DirectorがAOTログサーバーに接続し、Monitorコンソールにログを表示できるようにする専用の設定が用意されています。Web Studioの設定が保存されると、デリバリーコントローラーはサイト構成を更新し、Directorはログサーバーのアドレス、ポート、認証キーを含むログサーバーの詳細を受け取ります。Directorはこれらの設定を使用して、ログサーバーへの安全な接続を確立します。

ステップ3

設定が完了すると、

  1. シトリックス ディレクター を開きます。
  2. 左側のナビゲーションパネルに新しいログオプションが表示されます。
  3. ログを選択すると、Get Startedページが表示されます。これらの設定は以前に完了しているため、閉じるをクリックしてスキップしてください。
  4. これで、Directorがログサーバーから直接AOTログを取得して表示するのを確認できます。

シトリックス ディレクター

Directorのログページでは、Delivery Controller、VDA、StoreFrontサーバー、およびその他のCitrixコンポーネントからのAOTイベントを統合的に表示できます。リアルタイムでログを検索、フィルタリング、検査して、問題を迅速にトラブルシューティングできます。

フリーテキスト検索: ログページの上部には、フリーテキスト検索バーがあります。任意のキーワードを入力して、結果を絞り込むことができます。フィルターを適用すると、検索結果は即座に更新されます。例を次に示します。

  • ユーザー名
  • マシン名
  • イベントキーワード(例:登録、認証、STA)
  • トランザクションID
  • エラーメッセージまたは部分文字列

時間フィルター: 時間セレクター(例:過去5分、過去1時間、過去24時間)を使用して、特定の期間内に生成されたログを表示します。これにより、問題が発生した正確な時刻前後のイベントを迅速に特定できます。

カテゴリフィルター: カテゴリフィールドを使用すると、イベントまたはサブシステムの種類に基づいてログをフィルタリングできます。これにより、アプリケーション起動、登録、VDA構成、グラフィック、HDX Direct、ICA接続などに関連するログに焦点を当てることができます。

ログクラスフィルター: ログクラスフィルターは、ログを重大度またはイベントタイプでグループ化します。これにより、トラブルシューティング時にエラーや重要なイベントのみに焦点を当てることができます。一般的なクラスは次のとおりです。

  • 詳細情報
  • 警告
  • エラー
  • 失敗

ホスト名フィルター: ホスト名フィルターを使用すると、VDA、Delivery Controller、CWA、StoreFrontサーバーなどの特定のコンピューターを選択できます。これは、展開全体を検索するのではなく、単一のエンドポイントまたはVMのログを詳細に調べたい場合に役立ちます。

この一元化されたアクセスにより、単一のコンソールからログを迅速に取得および分析できるため、トラブルシューティングが効率化されます。前提条件と開始方法の詳細については、Director - ログを参照してください。

ログサーバー経由でのログへのアクセス

以下のコンテンツはAuthKeyの生成です。ログへのアクセスを有効にするには、ユーザーは以下を行う必要があります。

  1. StartLogServer.batスクリプトのLOCAL_DOWN_ONLY=falseの設定を変更します。

  2. AuthKeyを生成します

ログを安全に保つため、ダウンロードする前にAuthKeyが必要です。以下にその手順を示します。

  1. AuthKeyを取得する – 独自のロール名/名前を使用して生成します。
  2. ローカルで実行する – スクリプトは、Dockerコンテナがインストールされているマシンでのみ実行できます。
  3. Windowsユーザー – シェルスクリプトの代わりにGetAuthKey.batスクリプトを使用してください。
  4. ログをダウンロードする – 認証されると、安全にログを取得できます。

AOTログサーバーの認証キーの生成と管理

提供されている.sh (Linux) または .bat (Windows) スクリプトを使用して、特定のロールまたはユーザーの新しい認証キーを迅速に生成できます。これらのスクリプトは、生成されたキーと関連するロールを返すことでプロセスを簡素化します。

リナックスの場合

./GetAuthKey.sh role-name
<!--NeedCopy-->

ウィンドウズ向け

GetAuthKey.bat role-name
<!--NeedCopy-->

AOTログサーバーは、異なるロールまたはユーザーに関連付けられた認証キーを管理するためのコマンドを提供します。これらのコマンドにより、管理者はコンテナから直接認証キーを追加、一覧表示、検証、および削除できます。利用可能なdocker execコマンドをログサーバーコンテナで直接使用してください。

  • 新しい認証キーを追加: 指定されたロールまたはユーザーの新しい認証キーを作成します。

docker exec logserver /app/authkey add <RoleName>

  • すべての認証キーを一覧表示: 認証キーが作成されているすべての既存のロール/ユーザーを表示します。

docker exec logserver /app/authkey list

  • 認証キーを検証: 指定された認証キーが有効であるかどうかを確認し、関連付けられたロールを識別します。

docker exec logserver /app/authkey validate <key>

  • 認証キーを削除: 特定のロールに関連付けられた認証キーを削除します。

docker exec logserver /app/authkey del <RoleName>

  • コマンドの使用法を表示: 認証キー管理で利用可能なオプションを表示します。

docker exec logserver /app/authkey ??

以下の例は、認証キーの管理方法を示しています。

AOT認証キー

既にAOTログをログサーバーに送信したマシン名を一覧表示する

パラメータはGetAuthKey.shから取得したキーです。

Linux 環境の場合

./ListMachines.sh ebac9b7726cb4be597c92c6769134d25
{"machines":["MachineName"]}
<!--NeedCopy-->

空のマシンはログがないことを意味します。

ウィンドウズの場合

ListMachines.bat ebac9b7726cb4be597c92c6769134d25
{"machines":["MachineName"]}
<!--NeedCopy-->

ログサーバーが「-e LOCAL_DOWN_ONLY=false」で起動する場合のウィンドウズパワーシェル向け:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/ListMachine" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" }
<!--NeedCopy-->

logserver_fqdnをLogServerの実際のFQDNに、8443をLogServerの実際のポートに置き換えます。HTTPモードでインストールされている場合は、httpsをhttpに置き換えます。

空のマシンはログがないことを意味します。

マシン名と時間範囲でログをダウンロードします。

時刻は協定世界時 (UTC) 形式です。書式はYYYY-mm-ddTHH:MM:SSZとなります。

#Usage: ./DownloadLogsByTime.sh [AuthKey] [MachineName] [StartTime|YYYY-mm-ddTHH:MM:SSZ] [EndTime|YYYY-mm-ddTHH:MM:SSZ] [OutputFile]
#Example:
<!--NeedCopy-->

Linuxをご利用の場合

./DownloadLogsByTime.sh ebac9b7726cb4be597c92c6769134d25 MachineName 2025-01-01T00:00:00Z 2025-01-02T00:00:00Z logs.csv
<!--NeedCopy-->

Windows 環境の場合

DownloadLogsByTime.bat ebac9b7726cb4be597c92c6769134d25 MachineName 2025-01-01T00:00:00Z 2025-01-02T00:00:00Z logs.csv
<!--NeedCopy-->

ウィンドウズ PowerShell の場合、ログサーバーが「-e LOCAL_DOWN_ONLY=false」で起動している場合:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/TimeRange?start=2025-01-01T00:00:00Z&end=2025-01-02T00:00:00Z" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" } -OutFile logs.csv
<!--NeedCopy-->

キーワード/複数キーワードフィルターでログをダウンロード(時刻はUTC形式)

注:

  • キーワードは単一の単語でも、複数の単語の組み合わせでも構いません。
  • キーワードはログメッセージ内のどこでも一致させることができます。
  • トランザクションIDもキーワードとして使用できます。
#Usage: ./DownloadLogsByWords.sh [AuthKey] [StartTime|YYYY-mm-ddTHH:MM:SSZ] [EndTime|YYYY-mm-ddTHH:MM:SSZ] [SearchWords] [OutputFile]
#Example:
<!--NeedCopy-->

リナックスの場合

./DownloadLogsByWords.sh authkey 2025-01-01T00:00:00.000Z 2025-12-31T23:59:59.999Z "session launch" logs.csv
<!--NeedCopy-->

ウィンドウズの場合

DownloadLogsByWords.bat authkey 2025-01-01T00:00:00.000Z 2025-12-31T23:59:59.999Z "failed vda" logs.csv
<!--NeedCopy-->

ウィンドウズ PowerShell の場合、ログサーバーが「-e LOCAL_DOWN_ONLY=false」で起動している場合:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/SearchLog?start=2025-01-01T00:00:00Z&end=2025-01-02T00:00:00Z&words=failed vda" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" } -OutFile logs.csv
<!--NeedCopy-->

単語はスペースで区切られます。

AOTログの表示と使用