Citrix ADC

配置 AppFlow 功能

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

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

注意

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

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

启用 AppFlow

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

注意

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

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

在命令提示窗口中,键入以下命令之一:

enable ns feature AppFlow

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

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

指定收集器

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

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

重要

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

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

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

-  show appflow collector <name>  

示例

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

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

在命令提示符处,键入以下命令以添加和发送相同的数据到多个收集器:

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>

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

导航到系统”>“应用流”>“收集器”,然后创建 AppFlow 收集器。

配置 AppFlow 操作

AppFlow 操作是一个集合收集器,如果关联的 AppFlow 策略匹配,流记录将发送到该集合器。

使用命令行界面配置 AppFlow 操作

在命令提示符处,键入以下命令以配置 AppFlow 操作并验证配置:

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

show appflow action  

示例

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

使用配置实用程序配置 AppFlow 操作

导航到系统”>“AppFlow”>“操作”,然后创建 AppFlow 操作。

配置应 AppFlow 策略

配置 AppFlow 操作后,您必须接下来配置 AppFlow 策略。AppFlow 策略基于由一个或多个表达式组成的规则。

注意

为了创建和管理 AppFlow 策略,配置实用程序提供命令行界面不可用的帮助。

使用命令行界面配置 AppFlow 策略的步骤

在命令提示符下,键入以下命令以添加 AppFlow 策略并验证配置:

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

show appflow policy <name>

示例

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

使用配置实用程序配置 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  

示例

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

使用命令行界面将 AppFlow 策略绑定到特定虚拟服务器

在命令提示符处,键入以下命令以将 AppFlow 策略绑定到特定虚拟服务器并验证配置:

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

示例

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

使用配置实用程序全局绑定 AppFlow 策略

导航到系统 > AppFlow,单击 AppFlow 策略管理器,然后选择相关的绑定点(默认全局)和连接类型,然后绑定 AppFlow 策略。

使用配置实用程序将 AppFlow 策略绑定到特定虚拟服务器

导航到流量管理”>“负载平衡”>“虚拟服务器,选择虚拟服务器,然后单击略”,然后绑定 AppFlow 策略。

为虚拟服务器启用 AppFlow

如果您只想监视通过某些虚拟服务器的流量,请专门为这些虚拟服务器启用 AppFlow。您可以为负载平衡、内容切换、缓存重定向、SSL VPN、GSLB 和身份验证虚拟服务器启用 AppFlow。

使用命令行界面为虚拟服务器启用 AppFlow 的步骤

在命令提示窗口中,键入:

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

示例

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

使用配置实用程序为虚拟服务器启用 AppFlow 的步骤

导航到流量管理 > 内容切换 > 虚拟服务器,选择虚拟服务器,然后启用 AppFlow 日志记录选项。

为服务启用 AppFlow

您可以为要绑定到负载平衡虚拟服务器的服务启用 AppFlow。

使用命令行界面为服务启用 AppFlow 的步骤

在命令提示窗口中,键入:

set service <name> -appflowLog ENABLED

示例

set service ser -appflowLog ENABLED

使用配置实用程序为服务启用 AppFlow 的步骤

导航到流量管理 > 负载平衡 > 服务,选择服务,然后启用 AppFlow 日志记录选项。

设置 AppFlow 参数

您可以设置 AppFlow 参数以自定义将数据导出到收集器。

使用命令行界面设置 AppFlow 参数

重要

  • 从 Citrix ADC 12.1—55.13 版开始,您可以使用 NSIP 来发送日志流记录,而不是 SNIP。在 set appflow param 命令中引入了一个新的参数 logstreamOverNSIP。默认情况下,“日志流程序 Versip”参数处于禁用状态,您必须“启用”它。有关配置的详细信息,请参阅示例。

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

示例

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

使用配置实用程序设置 AppFlow 参数

导航到系统”>“AppFlow,单击更改应用流设置,然后指定相关的应用流参数。

示例:为 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

Citrix ADC 设备收到数据库请求时,设备会根据配置的策略评估请求。如果找到匹配项,详细信息将发送到策略中配置的 AppFlow 收集器。