Citrix ADC

AppFlow機能の構成

AppFlowは、他のほとんどのポリシーベースの機能と同じ方法で構成できます。まず、AppFlow 機能を有効にします。次に、フローレコードの送信先となるコレクタを指定します。その後、構成済みコレクターのセットであるアクションを定義します。次に、1つ以上のポリシーを構成し、アクションを各ポリシーに関連付けます。このポリシーは、Citrix ADCアプライアンスに、フローレコードが関連付けられたアクションに送信される要求を選択するように指示します。最後に、各ポリシーをグローバルに、または特定の仮想サーバーにバインドして、ポリシーを有効にします。

さらに、AppFlow パラメーターを設定して、テンプレートの更新間隔を指定し、httpURL、HttpCookie、および HttpReferer 情報のエクスポートを有効にすることができます。各コレクターで、エクスポーターのアドレスとしてCitrix ADC IPアドレスを指定する必要があります。

Citrix ADCをコレクターのエクスポーターとして構成する方法については、特定のコレクターのドキュメントを参照してください。

構成ユーティリティは、ユーザーがポリシーとアクションを定義するのに役立つツールを提供します。Citrix ADCアプライアンスが特定のフローのレコードを一連のコレクタにエクスポートする方法を正確に決定します(アクション)。コマンドラインインターフェイスは、コマンドラインを好む経験豊富なユーザー向けに、対応する CLI ベースのコマンドセットを提供します。

AppFlow の有効化

AppFlow機能を使用するには、まずAppFlow機能を有効にする必要があります。

AppFlowは、nCore Citrix ADCアプライアンスでのみ有効にできます。

コマンドラインインターフェイスを使用してAppFlow機能を有効にする

コマンドプロンプトで、次のコマンドのいずれかを入力します。


enable ns feature AppFlow

<!--NeedCopy-->

構成ユーティリティを使用してAppFlow機能を有効にする

[ システム] > [設定] に移動し、[ 高度な機能の構成] をクリックして、[ AppFlow ] オプションを選択します。

コレクターを指定する

コレクターは、Citrix ADCアプライアンスによって生成されたAppFlowレコードを受信します。AppFlowレコードを送信するには、少なくとも1つのコレクターを指定する必要があります。デフォルトでは、コレクターはUDPポート4739でIPFIXメッセージをリスンします。コレクターを構成するときに、デフォルトのポートを変更できます。同様に、デフォルトでは、NSIPはAppFlowトラフィックのソースIPとして使用されます。コレクタを設定するときに、このデフォルトの送信元 IP を SNIP アドレスに変更できます。未使用のコレクターを削除することもできます。

コマンドラインインターフェイスを使用してコレクタを指定する

重要

Citrix ADCリリース12.1ビルド55.13以降、使用するコレクターのタイプを指定できます。add appflow collectorコマンドに新しいパラメータ「Transport」が導入されました。デフォルトでは、コレクターはIPFIXメッセージをリッスンします。「Transport」パラメータを使用して、コレクタのタイプをlogstreamまたはipfixまたはリセットのいずれかに変更できます。構成の詳細については、例を参照してください。

コマンドプロンプトで次のコマンドを入力してコレクタを追加し、構成を確認します。


-  add appflow collector <name> -IPAddress <ipaddress> -port <port_number> -netprofile <netprofile_name> -Transport <Transport>

-  show appflow collector <name>

<!--NeedCopy-->


add appflow collector col1 -IPaddress 10.102.29.251 -port 8000 -netprofile n2 -Transport ipfix

<!--NeedCopy-->

コマンドラインインターフェイスを使用して複数のコレクターを指定する

コマンドプロンプトで次のコマンドを入力して、同じデータを追加して複数のコレクタに送信します。

add appflow collector <collector1> -IPAddress <IP>

add appflow collector <collector2> -IPAddress <IP>

add appflow action <action> -collectors <collector1> <collector2>

add appflow policy <policy> true <action>

bind lbvserver <lbvserver> -policy <policy> -priority <priority>
<!--NeedCopy-->

構成ユーティリティを使用して 1 つ以上のコレクタを指定します

[ システム] > [AppFlow] > [コレクター] に移動し、AppFlow コレクターを作成します。

AppFlowアクションを構成する

AppFlowアクションはセットコレクターであり、関連付けられたAppFlowポリシーが一致した場合のフローレコードの送信先です。

コマンドラインインターフェイスを使用してAppFlowアクションを構成する

コマンドプロンプトで、次のコマンドを入力してAppFlowアクションを構成し、構成を確認します。


add appflow action <name> --collectors <string> ... [-clientSideMeasurements (Enabled|Disabled) ] [-comment <string>]

show appflow action

<!--NeedCopy-->


add appflow action apfl-act-collector-1-and-3 -collectors collector-1 collecter-3

<!--NeedCopy-->

構成ユーティリティを使用してAppFlowアクションを構成する

[ システム] > [AppFlow] > [アクション] に移動し、AppFlow アクションを作成します。

AppFlowポリシーを構成する

AppFlowアクションを構成した後、AppFlowポリシーを構成する必要があります。AppFlowポリシーは、1つ以上の式で構成される規則に基づいています。

AppFlowポリシーを作成および管理するために、構成ユーティリティは、コマンドラインインターフェイスでは利用できない支援を提供します。

コマンドラインインターフェイスを使用してAppFlowポリシーを構成する

コマンドプロンプトで次のコマンドを入力し、AppFlowポリシーを作成して構成を確認します:


add appflow policy <name> <rule> <action>

show appflow policy <name>

<!--NeedCopy-->


add appflow policy apfl-pol-tcp-dsprt client.TCP.DSTPORT.EQ(22) apfl-act-collector-1-and-3

<!--NeedCopy-->

構成ユーティリティを使用してAppFlowポリシーを構成する

[ システム] > [AppFlow] > [ポリシー] に移動し、AppFlowポリシーを作成します。

[式の追加] ダイアログボックスを使用して式を追加する

  1. [式の追加] ダイアログボックスの最初のリストボックスで、式の最初の用語を選択します。

    - HTTP HTTP プロトコル。HTTP プロトコルに関連するリクエストのいくつかの側面を調べる場合は、このオプションを選択します。 - SSL

    保護された Web サイト。リクエストの受信者に関連するリクエストのいくつかの側面を調べる場合は、このオプションを選択します。 -
    CLIENT
    
    The computer that sent the request. Choose the option if you want to examine some aspect of the sender of the request. 選択すると、右端のリストボックスに、式の次の部分に適した用語がリストされます。
    
  2. 2 番目のリストボックスで、式の 2 番目の用語を選択します。選択肢は、前のステップで行った選択によって異なり、コンテキストに適切です。2 番目の選択を行った後、[式の構築] ウィンドウの下のヘルプウィンドウ (空白) に、選択した用語の目的と使用法を説明するヘルプが表示されます。
  3. 式が終了するまで、前のリストボックスの右側に表示されるリストボックスから用語を選択するか、値の入力を求めるテキストボックスに文字列または数値を入力します。

AppFlowポリシーをバインドする

ポリシーを有効にするには、ポリシーをグローバルにバインドしてCitrix ADCを通過するすべてのトラフィックに適用するか、特定の仮想サーバーにバインドして、その仮想サーバーに関連するトラフィックにのみポリシーを適用する必要があります。

ポリシーをバインドするときは、そのポリシーにプライオリティを割り当てます。プライオリティによって、定義したポリシーが評価される順序が決まります。優先度は、任意の正の整数に設定できます。

Citrix ADCオペレーティングシステムでは、ポリシーの優先順位は逆の順序で機能します。数値が大きいほど優先度は低くなります。たとえば、優先順位が 10、100、1000 の 3 つのポリシーがある場合、優先度 10 が割り当てられたポリシーが最初に実行されます。その後、ポリシーに優先度100が割り当てられ、最後にポリシーに1000の順序が割り当てられました。

他のポリシーを任意の順序で追加する余地を十分に残しておき、希望する順序で評価するように設定できます。グローバルにバインドするときに、各ポリシー間に50または100の間隔で優先順位を設定することで実現できます。これにより、既存のポリシーの優先度を変更しなくても、いつでもポリシーを追加できます。

コマンドラインインターフェイスを使用してAppFlowポリシーをグローバルにバインドする

コマンドプロンプトで次のコマンドを入力して、AppFlowポリシーをグローバルにバインドし、構成を確認します。


bind appflow global <policyName> <priority> [<gotoPriorityExpression [-type <type>] [-invoke (<labelType> <labelName>)]

show appflow global

<!--NeedCopy-->


bind appflow global af_policy_lb1_10.102.71.190 1 NEXT -type REQ_OVERRIDE -invoke vserver google

<!--NeedCopy-->

コマンドラインインターフェイスを使用してAppFlowポリシーを特定の仮想サーバーにバインドする

コマンドプロンプトで次のコマンドを入力して、AppFlowポリシーを特定の仮想サーバーにバインドし、構成を確認します。


bind lb vserver <name> -policyname <policy_name> -priority <priority>

<!--NeedCopy-->


bind lb vserver google -policyname af_policy_google_10.102.19.179 -priority 251

<!--NeedCopy-->

構成ユーティリティを使用してAppFlowポリシーをグローバルにバインドする

[ システム] > [AppFlow] に移動し、[ AppFlowポリシーマネージャー] をクリックし、関連するバインドポイント (デフォルトグローバル) と接続タイプを選択して、AppFlowポリシーをバインドします。

構成ユーティリティを使用してAppFlowポリシーを特定の仮想サーバーにバインドする

[ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを選択して [ ポリシー] をクリックし、AppFlowポリシーをバインドします。

仮想サーバーでAppFlowを有効にする

特定の仮想サーバーを経由するトラフィックのみを監視する場合は、その仮想サーバー専用にAppFlowを有効にします。AppFlowは、負荷分散、コンテンツスイッチング、キャッシュリダイレクト、SSL VPN、GSLB、および認証仮想サーバーに対して有効化できます。

コマンドラインインターフェイスを使用して仮想サーバーのAppFlowを有効にする

コマンドプロンプトで入力します。


set cs vserver <name> <protocol> <IPAddress> <port> -appflowLog ENABLED

<!--NeedCopy-->


set cs vserver Vserver-CS-1 HTTP 10.102.29.161 80 -appflowLog ENABLED

<!--NeedCopy-->

構成ユーティリティを使用して仮想サーバーのAppFlowを有効にする

[ トラフィック管理] > [コンテンツスイッチング] > [仮想サーバー] に移動し、仮想サーバーを選択して [AppFlow ロギング] オプションを有効にします。

サービスに対して AppFlow を有効にする

負荷分散仮想サーバーにバインドされるサービスに対してAppFlowを有効にできます。

コマンドラインインターフェイスを使用してサービスの AppFlow を有効にする

コマンドプロンプトで入力します。


set service <name> -appflowLog ENABLED

<!--NeedCopy-->


set service ser -appflowLog ENABLED

<!--NeedCopy-->

構成ユーティリティを使用してサービスのAppFlowを有効にする

[ トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを選択して [AppFlow ログ] オプションを有効にします。

AppFlow パラメーターを設定する

AppFlow パラメーターを設定して、コレクターへのデータのエクスポートをカスタマイズできます。

コマンドラインインターフェイスを使用して AppFlow パラメーターを設定する

重要

  • Citrix ADCリリース12.1ビルド55.13から、SNIPの代わりにNSIPを使用してLogstreamレコードを送信できます。set appflow paramコマンドに新しいパラメータ「LogStreamOvernSip」が導入されました。デフォルトでは、「logstreamOverNSIP」パラメーターは「無効」になっているため、「有効」にする必要があります。構成の詳細については、例を参照してください。

  • Citrix ADCリリース13.0ビルド58.xリリースから、AppFlow機能でWeb SaaSアプリケーションオプションを有効にできます。Citrix Gateway サービスからWebアプリケーションまたはSaaSアプリケーションのデータ使用量を受け取ることができます。構成の詳細については、例を参照してください。

コマンドプロンプトで、次のコマンドを入力してAppFlowパラメーターを設定し、設定を確認します。


-  set appflow param [-templateRefresh <secs>] [-appnameRefresh <secs>] [-flowRecordInterval <secs>] [-udpPmtu <positive_integer>] [-httpUrl ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpCookie ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpReferer ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpMethod ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpHost ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpUserAgent ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-httpXForwardedFor ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )][-clientTrafficOnly ( \*\*YES\*\* | \*\*NO\*\*)] [-webSaaSAppUsageReporting ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )] [-logstreamOverNSIP ( \*\*ENABLED\*\* | \*\*DISABLED\*\* )]

-  show appflow Param

<!--NeedCopy-->


set appflow Param -templateRefresh 240 -udpPmtu 128 -httpUrl enabled -webSaaSAppUsageReporting ENABLED -logstreamOverNSIP ENABLED

<!--NeedCopy-->

構成ユーティリティを使用してAppFlowパラメーターを設定する

[ システム] > [AppFlow] に移動し、[ AppFlow 設定の変更] をクリックして、関連するAppFlowパラメーターを指定します。

加入者 ID の難読化のサポート

Citrix ADCリリース13.0ビルド35.xx以降、AppFlow構成は、レイヤー4またはレイヤー7のAppFlowレコードでMSISDNを難読化するための「subscriberIDObfuscation」アルゴリズムをサポートするように拡張されています。ただし、アルゴリズムをMD5またはSHA256として構成する前に、まずAppFlowパラメーターとして有効にする必要があります。このパラメーターはデフォルトでは無効になっています。

CLI を使用して加入者 ID の難読化アルゴリズムを設定する

コマンドプロンプトで入力します。


set appflow param [-subscriberIdObfuscation ( ENABLED | DISABLED )  [-subscriberIdObfuscationAlgo ( MD5 | SHA256 )]]

<!--NeedCopy-->


set appflow param –subscriberIdObfuscation ENABLED – subscriberIdObfuscationAlgo SHA256

<!--NeedCopy-->

GUI を使用して加入者 ID 難読化アルゴリズムを設定する

  1. [ システム] > [AppFlow] に移動します。
  2. AppFlowの詳細ペインで、[設定] の [ **AppFlow設定の変更**] をクリックします。
  3. [AppFlow 設定の構成] ページで、次のパラメーターを設定します。

    • 加入者 ID の難読化。L4/L7 AppFlow レコードで難読化 MSISDN のオプションを有効にします。
    • 購読者 ID 難読化アルゴ。アルゴリズムタイプとして [MD5] または [SHA256] を選択します。
  4. OKをクリックして閉じます

    加入者 ID の難読化

例:DataStream用にAppFlowを構成する

次の例は、コマンドラインインターフェイスを使用して DataStream の AppFlow を構成する手順を示しています。


enable feature appflow

add db user sa password freebsd

add lbvserver lb0 MSSQL 10.102.147.97 1433 -appflowLog ENABLED

add service sv0 10.103.24.132 MSSQL 1433 -appflowLog ENABLED

bind lbvserver lb0 sv0

add appflow collector col0 -IPAddress 10.102.147.90

add appflow action act0 -collectors col0

add appflow policy pol0 "mssql.req.query.text.contains("select")" act0

bind lbvserver lb0 -policyName pol0 -priority 10

<!--NeedCopy-->

Citrix ADCアプライアンスがデータベース要求を受信すると、アプライアンスは構成されたポリシーに対して要求を評価します。一致が見つかると、その詳細がポリシーで構成されているAppFlowコレクタに送信されます。

メトリクスコレクターの設定

メトリクスコレクターは、AVRO、Prometheus 形式、Influx DB 形式などのさまざまな形式で、30 秒ごとの時系列分析データのエクスポートをサポートします。

メトリクスのエクスポートを開始するための CLI 設定

CLI インターフェイスを使用して、IP、プロトコル、およびポートの詳細を使用してコレクタサービスを設定できます。

例:

ログプロキシサーバー IP、タイプ HTTP、ポート 5563 の Logproxy サービス

コマンドプロンプトで入力します。


set analytics profile ns_analytics_time_series_profile -collectors <use the service configured in step 1> -type timeseries -metrics ENABLED -outputMode <avro/influx/prometheus>

<!--NeedCopy-->

コマンドプロンプトで CLI 設定出力を確認します。


show analytics profile ns_analytics_time_series_profile
    Name: ns_analytics_time_series_profile
    \*\*Collector\*\*: `<collector name>`
    Profile-type: timeseries
    Output Mode: avro
    \*\*Metrics\*\*: ENABLED
    \*\*Schema File\*\*: schema.json
    Events: ENABLED
    Auditlog: DISABLED
    Serve mode: Push
    Reference Count: 0\

<!--NeedCopy-->

デバッグメトリックスコレクター

必要なデバッグログは、/var/nslog/metricscollector.logの場所に保存されます。

メトリックスファイルの生成

metrics_<format>_log.*ファイルは/var/nslog/フォルダーの場所に生成されます。

メトリクスコレクターでの動的スキーマのサポート

動的スキーマカウンターのサポートにより、カウンターのリストを含むスキーマファイルを、必要に応じて実行時に更新できます。デフォルトでは、 /var/metrics_conf/schema.json ファイルにはカウンタのリストが設定されます。

注:

メトリックコレクターのデフォルトスキーマファイル/var/metrics_conf/schema.json は、installns手順でCitrix ADCアプライアンスにインストールできます。

CLI を使用してカウンターをサブスクライブするようにメトリクスコレクターを構成する

コレクターサービスを構成して、メトリクスのエクスポートを開始します。

コマンドプロンプトで入力します。


set analytics profile ns_analytics_time_series_profile -metrics ENABLED -collectors <collector_name> -schemaFile <schema file_name> schema.json -outputMode <avro | influx | prometheus>

<!--NeedCopy-->

注:

schema.json はデフォルトの SchemaFile 構成です。

必要なカウンターのセットを含む新しいスキーマファイルは、CLIコマンドを使用してメトリックコレクターがエクスポートするように構成できます。スキーマファイルは/var/metrics_conf/の場所に存在する必要があります。

stats infra でサポートされるカウンタのリスト (reference_schema.json) をすべて含むスキーマファイルが、/var/metrics_conf/の場所に存在します。このファイルは、カウンターのカスタムリストを作成するための参照として使用できます。

CLI を使用してスキーマファイルを設定します

set analytics profile ns_analytics_time_series_profile -metrics ENABLED -collectors <collector name> -schemaFile schema.json -outputMode <avro | influx | prometheus>

<!--NeedCopy-->

必要なカウンタを含む新しいスキーマファイルは、前述の CLI コマンドを使用してメトリックコレクターがエクスポートできるように追加および設定できます。

統計インフラでサポートされているすべてのカウンタのリスト (reference_schema.json) を含む参照スキーマファイルが/var/metrics_conf/の場所にあります。このファイルは、カウンターのカスタムリストを作成するための参照として使用できます。

コマンドプロンプトで CLI 設定出力を確認します。


show analytics profile ns_analytics_time_series_profile

    Name: ns_analytics_time_series_profile
    Collector: <collector_name>
    Profile-type: timeseries
    Output Mode: avro
    Metrics: ENABLED
    Schema File: schema.json
    Events: ENABLED
    Auditlog: DISABLED
    Serve mode: Push
    Reference Count: 0

<!--NeedCopy-->

エクスポートされたカウンタのリストを更新する手順

次の手順では、エクスポートされたカウンタのリストを更新する手順について説明します。

  1. カスタム/新しいスキーマファイルを更新します。
  2. 使用する更新されたスキーマファイルの CLI設定に表示される-metricsオプションを使用して、メトリクスを無効または有効にします。

複数の時系列プロファイルのサポート

メトリックコレクターは、Citrix ADCアプライアンスで最大3つの時系列プロファイル構成をサポートします。 各時系列を次のように構成できます。

  • コレクター。

  • エクスポートに必要なカウンタのセットを含むスキーマファイル。

  • メトリックをエクスポートするデータ形式。

  • メトリクスの監査ログとイベントを有効または無効にするオプション。

複数の時系列プロファイルがサポートされているため、メトリックコレクターは(構成されたスキーマファイルに基づいて)メトリックの異なるセットを異なるフォーマット(AVRO、Prometheus、Influx)のさまざまなコレクターに同時にエクスポートできます。

CLI を使用して時系列プロファイルを追加する

コマンドプロンプトで入力します。

add analytics profile <profile_name> -type timeseries
<!--NeedCopy-->

CLI を使用して時系列プロファイルを設定する

コマンドプロンプトで入力します。

set analytics profile <profile_name> -metrics <DISABLED|ENABLED> -auditlogs <DISABLED|ENABLED> -events <DISABLED|ENABLED> -collectors <collector_name> -schemaFile schema.json -outputMode <avro | influx | prometheus>

<!--NeedCopy-->

複数の時系列プロファイルをサポートするログファイルの命名規則

  • Avro ログファイルはmetrics_avro_<profile_name>_log.*として生成されます。
  • Prometheus のログファイルは次のように生成されます。metrics_prom_<profile_name>.log

注:

  • 設定したすべての時系列プロファイルでメトリクスを有効にできますが、イベントと監査ログは 1 つのプロファイルでのみ有効化できます。
  • 動的スキーマ機能は、バージョン 13.1 ビルド 23.16 以降でサポートされています。
  • 複数の時系列プロファイルは、バージョン13.1ビルド33.6以降でサポートされています。