Citrix ADC

配置 AppFlow 功能

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

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

注意

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

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

启用 AppFlow

要使用 AppFlow 功能,必须先启用该功能。

注意

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

使用命令行界面启用 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 操作

在命令提示符下,键入以下命令以配置 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 协议。如果要检查与 HTTP 协议相关的请求的某些方面,请选择该选项。 - SSL

    受保护的网站。如果要检查请求中与请求收件人相关的某些方面,请选择该选项。 -
    CLIENT
    
    The computer that sent the request. Choose the option if you want to examine some aspect of the sender of the request. 当您做出选择时,最右边的列表框会为表达式的下一部分列出相应的术语。
    
  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,单击 更改 AppFlow 设置,然后指定相关的 AppFlow 参数。

支持订阅者 ID 模糊处理

从 Citrix ADC 版本 13.0 版本 35.xx 开始,AppFlow 配置得到了增强,以支持“subscriberiDobfuscation”算法,用于在 AppFlow 记录的第 4 层或第 7 层中混淆 MSISDN。但是,在将算法配置为 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. 单击确定,然后关闭

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

指标收集器上的订阅计数器

指标收集器支持每 30 秒导出不同格式的时间序列分析数据,如 AVRO、Prometheus 格式和 Influx DB 格式。指标收集器支持计数器的动态更新,使您能够将所需的计数器添加到架构文件中。您可以使用 CLI 界面配置架构文件名。指标收集器从架构文件中读取计数器名称并将其导出。默认架构文件 schema.json 位于 /var/metrics_conf/

使用 CLI 将指标收集器配置为订阅计数器

通过配置收集器服务启动指标导出。

在命令提示符下,键入:

’’’

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

’’’

注意: schema.json 是默认的 SchemaFile 配置。

可以使用 CLI 命令配置具有所需计数器集的新模式文件,以便指标收集器导出。架构文件必须存在于 /var/metrics_conf/ 位置。

包含统计信息下文支持的所有计数器列表 (reference_schema.json) 的架构文件位于 /var/metrics_conf/ 位置。此文件可用作构建计数器自定义列表的参考。

在命令提示符下检查 CLI 配置输出:

’’’

show analytics profile ns_analytics_time_series_profile 名称:ns_analytics_time_series_profile 收集器<collector name> Profile-type: timeseries 输出模式:avro 衡量指标:ENABLED 架构文件:schema.json 事件:ENABLED 审核日志:DISABLED 服务模式:Push 引用计数:0

’’’