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の設定が保存されると、Delivery Controllerはサイト構成を更新し、Directorはログサーバーのアドレス、ポート、認証キーを含むログサーバーの詳細を受け取ります。Directorはこれらの設定を使用して、ログサーバーへの安全な接続を確立します。

ステップ3

設定が完了した後:

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

シトリックス ディレクター(/ja-jp/citrix-virtual-apps-desktops/2511/2507-ltsr/media/aot-director.png)

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) スクリプトを使用して、特定のロールまたはユーザーの新しい認証キーを迅速に生成できます。これらのスクリプトは、生成されたキーと関連するロールを返すことでプロセスを簡素化します。

Linux環境の場合

./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-->

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

Windows環境の場合

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

ログサーバーが「-e LOCAL_DOWN_ONLY=false」という設定で起動する場合のWindows PowerShellに関する情報:

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-->

リナックス向け

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

ウィンドウズ向け

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

ログサーバーが「-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-->

LogServerが「-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ログの表示と使用