Citrix ADC

配置 AppFlow 功能

您可以使用与大多数其他基于策略的功能相同的方式配置 AppFlow。首先,启用 AppFlow 功能。然后,您可以指定向其发送流记录的收集器。之后,您可以定义操作,这些操作是一组已配置的收集器。然后配置一个或多个策略并将操作与每个策略关联。该策略通知 Citrix ADC 设备选择将其流记录发送到关联操作的请求。最后,您可以将每个策略全局绑定或绑定到特定虚拟服务器以使其生效。

您可以进一步设置 AppFlow 参数以指定模板刷新间隔,并启用 HttpPURL、Httpcookie 和 HttpPREFER 信息的导出。在每个收集器上,必须指定 Citrix ADC IP 地址作为导出器的地址。

注意

有关将 Citrix ADC 配置为收集器上的导出器的信息,请参阅特定收集器的文档。

配置实用程序提供了帮助用户定义策略和操作的工具。它确切确定 Citrix ADC 设备如何将特定流的记录导出到一组收集器(操作)。命令行界面为喜欢命令行的有经验的用户提供了一组相应的基于 CLI 的命令。

启用 AppFlow

要能够使用 AppFlow 功能,您必须首先启用它。

注意

AppFlow 只能在 nCore Citrix ADC 设备上启用。

使用命令行界面启用 AppFlow 功能

在命令提示符下,键入以下命令之一:

enable ns feature AppFlow
<!--NeedCopy-->

使用配置实用程序启用 AppFlow 功能

导航到“系统”>“设置”,单击“配置高级功能”,然后选择“AppFlow”选项。

指定收集器

收集器接收由 Citrix ADC 设备生成的 AppFlow 记录。要发送 AppFlow 记录,您必须至少指定一个收集器。默认情况下,收集器侦听 UDP 端口 4739 上的 IPFIX 消息。配置收集器时,您可以更改默认端口。同样,默认情况下,NSIP 用作 AppFlow 流量的源 IP。配置收集器时,您可以将此默认源 IP 更改为 SNIP 地址。您还可以删除未使用的收藏家。

使用命令行界面指定收集器

重要

从 Citrix ADC 版本 12.1 版本 55.13 开始,您可以指定要使用的收集器类型。 add appflow collector 命令中引入了一个新的参数 “传输”。默认情况下,收集器会监听 IPFIX 消息。您可以使用 “传输” 参数将收集器的类型更改为 logstreamipfix 或休息。有关配置的更多信息,请参阅示例。

在命令提示符处,键入以下命令以添加收集器并验证配置:

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

使用配置实用程序指定一个或多个收集器

导航到“系统”>“应用流”>“收集器”,然后创建 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 策略基于由一个或多个表达式组成的规则。

注意

为了创建和管理 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 协议有关的请求的某些方面,请选择该选项。
    • SSL

      受保护的网站。如果要检查与请求收件人有关的请求的某些方面,请选择该选项。

    • 客户端证书

      发送请求的计算机。如果要检查请求发件人的某些方面,请选择该选项。 当您做出选择时,最右侧的列表框会列出表达式下一部分的相应术语。

  2. 在第二个列表框中,选择表达式的第二个术语。这些选择取决于您在上一步中所做的选择,并且适合上下文。第二个选择后,“构造表达式”窗口下方的“帮助”窗口(该窗口为空)显示了描述刚刚选择的术语的用途和用法的帮助。
  3. 继续从上一列表框右侧显示的列表框中选择术语,或者在出现提示您输入值的文本框中键入字符串或数字,直到表达式完成。

绑定 AppFlow 策略

要使策略生效,您必须将策略全局绑定,以便将其应用于流经 Citrix ADC 的所有流量,或应用到特定虚拟服务器,以便该策略仅应用于与该虚拟服务器相关的流量。

绑定策略时,您将为其分配优先级。优先级决定了您定义的策略的评估顺序。可以将优先级设置为任何正整数。

在 Citrix ADC 操作系统中,策略优先级以相反的顺序工作-数值越高,优先级越低。例如,如果您有三个优先级为 10、100 和 1000 的策略,则首先执行分配优先级 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。您可以为负载平衡、内容切换、缓存重定向、SSL VPN、GSLB 和身份验证虚拟服务器启用 AppFlow。

使用命令行界面为虚拟服务器启用 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 开始,您可以使用 NSIP 发送 Logstream 记录而不是 SNIP。 set appflow param 命令中引入了一个新的参数 “logstream OvernSIP”。默认情况下,“日志流程序 Versip”参数处于禁用状态,您必须“启用”它。有关配置的更多信息,请参阅示例。

  • 从 Citrix ADC 13.0 Build 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”,单击“更改应用流设置”,然后指定相关的应用流参数。

支持订阅者 ID 模糊处理

从 Citrix ADC 13.0 版本生成 35.xx 开始,AppFlow 配置已增强,以支持 AppFlow 记录的第 4 层或第 7 层中的 MSISDN 的 “订阅beridobFusSION” 算法。但是,在将算法配置为 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 模糊处理 Algo。选择算法类型作为 MD5 或 SHA256。
  4. 单击确定关闭

    订阅者 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 收集器。