Configuring AppFlow on a NetScaler CPX instance
You can configure AppFlow feature on a NetScaler CPX instance to collect webpage performance data, flow and user-session level information, and database information required for application performance monitoring and analytics. These data records are sent to Citrix ADM where you can view real-time and historical reports for all your applications.
To configure AppFlow, first, you must enable the AppFlow feature. Then, you specify the collectors to which the flow records are sent. After that, you define actions, which are sets of configured collectors. Then you configure one or more policies and associate an action to each policy. The policy tells the NetScaler CPX to select requests the flow records of which are sent to the associated action. Finally, you bind each policy either globally or to the specific virtual server to put it into effect.
You can further set AppFlow parameters to specify the template refresh interval and to enable the exporting of httpURL
, httpCookie
, and httpReferer
information. On each collector, you must specify the NetScaler CPX IP address as the address of the exporter.
The configuration utility provides tools that help users define the policies and actions. It determines exactly how the NetScaler CPX export records for a particular flow to a set of collectors(action.) The command line interface provides a corresponding set of CLI-based commands for experienced users who prefer a command line.
Before you can monitor the records, you must add the NetScaler CPX instance to the Citrix ADM. For more information about adding a NetScaler CPX instance to Citrix ADM, see Installing a NetScaler CPX Instance by Using Citrix ADM.
Enable AppFlow
To use the AppFlow feature, you must first enable it.
To enable the AppFlow feature by using the command line interface:
Run the following commands:
enable ns feature AppFlow
enable ns mode ulfd
Specify a Collector
A collector receives AppFlow records generated by the Citrix ADC. To send the AppFlow records, you must specify at least one collector. By default, the collector listens to IPFIX messages on UDP port 4739. You can change the default port, when configuring the collector.
To specify a collector by using the command line interface:
Use the following commands to add a collector:
add appflow collector <name> -IPAddress <ipaddress> -port <port_number> -netprofile <netprofile_name> -Transport Logstream
To verify the configuration, use the following command:
show appflow collector <name>
To specify multiple collectors by using the command line interface:
Use the following commands to add and send the same data to multiple collectors:
add appflow collector <collector1> -IPAddress <IP> -Transport Logstream
add appflow collector <collector2> -IPAddress <IP> -Transport Logstream
add appflow action <action> -collectors <collector1> <collector2> -Transport Logstream
add appflow policy <policy> true <action> -Transport Logstream
bind lbvserver <lbvserver> -policy <policy> -priority <priority> -Transport Logstream
Configuring an AppFlow Action
An AppFlow action is a set collector, to which the flow records are sent if the associated AppFlow policy matches.
Use the following commands to configure an AppFlow action:
add appflow action <name> --collectors <string> ... \[-clientSideMeasurements \(Enabled|Disabled) ] \[-comment <string>]
To verify the configuration, use the following command:
show appflow action
Configuring an AppFlow Policy
After you configure an AppFlow action, you must next configure an AppFlow policy. An AppFlow policy is based on a rule, which consists of one or more expressions.
To configure an AppFlow policy by using the command line interface:
At the command prompt, type the following command to add an AppFlow policy and verify the configuration:
add appflow policy <name> <rule> <action>
show appflow policy <name>
Binding an AppFlow Policy
To put a policy into effect, you must bind it either globally, so that it applies to all traffic that flows through the NetScaler CPX.
To globally bind an AppFlow policy by using the command line interface:
Use the following command to globally bind an AppFlow policy:
bind appflow global <policyName> <priority> [<gotoPriorityExpression [-type <type>] [-invoke (<labelType> <labelName>)]
Verify the configuration using the following command:
show appflow global