ADC

配置 AppFlow 功能

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

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

注意

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

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

启用 AppFlow

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

注意

只能在 nCore NetScaler 设备上启用 AppFlow。

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

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


enable ns feature AppFlow

<!--NeedCopy-->

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

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

指定收集器

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

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

重要

从 NetScaler 版本 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 策略

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

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

在 NetScaler 操作系统中,策略优先级的工作顺序相反,即数字越高,优先级越低。例如,如果您有三个优先级分别为 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 参数

重要

  • 从 NetScaler 版本 12.1 版本 55.13 开始,您可以使用 NSIP 发送 Logstream 记录而不是 SNIP。set appflow param 命令中引入了一个新的参数“logstreamOverNSIP”。默认情况下,“logstreamOverNSIP”参数处于禁用状态,您必须“启用”它。有关配置的更多信息,请参阅示例。

  • 从 NetScaler 版本 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 模糊处理

从 NetScaler 版本 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-->

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

配置指标收集器

指标收集器是一项服务,您可以在 NetScaler 上启用该服务,以便从 NetScaler 收集指标并将其导出到各个端点。您可以以两种格式导出指标:Avro 和 Prometheus。可以对导出的指标进行处理和可视化,以获得有意义的见解。默认情况下,指标收集器支持每 30 秒导出一次时间序列分析数据。但是,您可以将其配置为 30 到 300 秒之间的值,以便可以决定导出时间序列分析配置文件数据的间隔。

执行以下操作以使用 CLI 配置指标收集器。

  1. 使用以下命令为 IP 地址、协议和端口配置收集器服务。

    add service <metrics_service_name> <ip-address> <protocol> <port>
    

    示例:

    add service metrics_service1 192.168.1.1 HTTP 5563   
    
  2. 配置分析时间序列配置文件以将指标数据发送到收集器服务。指定收集器服务、导出指标的频率和输出模式。

    set analytics profile ns_analytics_time_series_profile -collectors <metrics_service_name> -type timeseries -metrics ENABLED metricsExportFrequency <30-300> -outputMode <avro/prometheus>
    

    示例:

    set analytics profile ns_analytics_time_series_profile -collectors metrics_service1 -type timeseries -metrics Enabled metricsExportFrequency 90 -outputMode prometheus --serveMode PUSH 
    

    注意:

    此示例使用默认的时间序列配置文件 ns_analytics_time_series_profile。如果要创建时间序列配置文件,则可以使用 add analytics profile 命令。

    在此示例中,指标导出频率设置为 90 秒,将导出模式指定为 Prometheus。

    使用 show analytics profile <analytics-profile-name> 以下命令验证指标收集器配置:

    show analytics profile ns_analytics_time_series_profile
    
        Name: ns_analytics_time_series_profile
        Collector: metrics_service1
        Profile-type: timeseries
            Output Mode: Prometheus
            Metrics: ENABLED
              Schema File: schema.json
              Metrics Export Frequency: 90
            Events: DISABLED
            Auditlog: DISABLED
            Serve mode: Pull
        Reference Count: 0
    

调试指标收集器

所需的调试日志存储在 /var/nslog/metricscollector.log 位置。

指标文件生成

metrics_<format>_log.* 文件在 /var/nslog/ 文件夹位置下生成。

指标收集器中的动态架构支持

在动态架构计数器的支持下,可以根据要求在运行时更新包含计数器列表的架构文件。默认情况下, /var/metrics_conf/schema.json 文件使用计数器列表进行配置。

注意:

指标收集器的默认架构文件/var/metrics_conf/schema.json 可以通过安装程序安装在 NetScaler 设备上。

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

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

在命令提示符下,键入:


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

<!--NeedCopy-->

注意:

schema.json 是默认的 SchemaFile 配置。

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

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

使用 CLI 配置架构文件

set analytics profile ns_analytics_time_series_profile -metrics ENABLED -collectors <collector name> -schemaFile <schema file_name> -outputMode <avro | 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 选项禁用或启用指标,以便使用更新的架构文件。

多时间序列配置文件支持

指标收集器在 NetScaler 设备上最多支持三个时间序列配置文件配置。 您可以将每个时间序列配置为具有以下内容。

  • 收集器。

  • 包含要导出的所需计数器集的架构文件。

  • 要导出指标的数据格式。

  • 启用或禁用指标审核日志和事件的选项。

通过支持多时间序列配置文件,指标收集器可以同时将不同的指标集(基于配置的架构文件)以不同的格式(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

备注:

  • 尽管可以在所有配置的时间序列配置文件上启用指标,但只能在一个配置文件上启用事件和审计日志。
  • 从版本 13.1 版本 23.16 开始支持动态架构功能。
  • 从版本 13.1 版本 33.6 开始支持多时间序列配置文件。