Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail Insights JTI (UDP) Monitoring

Configure JTI Device

Contrail Insights supports UDP-based Junos Telemetry Interface (JTI) from network devices. With network devices supporting UDP-based JTI, Contrail Insights is able to stream data from the devices.

When configuring JTI devices, you can select all the sensors that need to be monitored. Using the required and optional configuration parameters that you input in the Configure Network Device page, Contrail Insights will push the configuration to the device and enable the device to stream data to collectors.

To configure a JTI device:

  1. Select Settings in the top right of the Dashboard, then select Network Devices.

  2. Click +Add Device and complete the configuration parameter fields. See Figure 1.

    Figure 1: JTI Configuration Parameters in Configure Network Device PageJTI Configuration Parameters in Configure Network Device Page
  3. To allow Contrail Insights to configure the network device, have the following settings on your device and supply the device username and password:

    Following is an example configuration that Contrail Insights adds on the device:

  4. In addition, you need to enable JTI plug-ins in your group_vars/all to enable JTI monitoring in Contrail Insights and define appformix_install_jti_dependencies:

JTI Monitoring Special Requirements

Traffic from JTI sensors is injected into the forwarding path, so the collector must be reachable by means of in-band connectivity. JTI sensor traffic does not get forwarded through the router’s management interface (for example, fxp0). Contrail Insights Collector in Figure 2 includes Contrail Insights Agent and network devices.

Figure 2: Traffic from JTI Sensors through In-Band ConnectivityTraffic from JTI Sensors through In-Band Connectivity

In Contrail Insights, you can edit ManagementIp and MetaData.JtiConfig.LocalAddress in the device JSON file. If MetaData.JtiConfig.LocalAddress is not specified, Contrail Insights uses the ManagementIp as the device in-band IP setting in device. In addition, Contrail Insights configures the device so that it streams its JTI data to one of the appformix_network_agents nodes.

You can specify jti_inband_ip in the Ansible inventory files to specify the in-band IP address of the collector (server). See Figure 2.

Note:

If the jti_inband_ip is not specified in the Ansible inventory file, Contrail Insights uses the hostname of the appformix_network_agents node.

JTI Out of Band Configuration

Contrail Insights configures the devices properly based on user input including sensor name, sensor path, collector IP address, and device source IP address.

In some scenarios, user does not want to share credentials with Contrail Insights. As a result, Contrail Insights does not have the device credentials to configure the devices. Alternatively, you can use out of band JTI configuration scripts in SDK instead. Contrail Insights will discover all JTI network devices in your environment and push configurations to your devices using the script. This script only works when you have only one JTI collector in your setup.

Example out_of_band_jti_configuration.py script:

Troubleshooting

  1. On the Contrail Insights Platform host, check if the Agent is listening on UDP port 42596 by running the following command.

    If not, check if plug-in is posted. Check the jti_network_device plug-in from plugin_definition endpoint in the Contrail Insights Platform API to see if the distribution_map in Config > ObjectList is correct.

  2. Check the network device configuration. On the device, from the CLI Configuration mode, running show service analytics should have:

    • A streaming server named "appformix-telemetry”

    • An export profile named “appformix”

    • And a sensor named “Interface_Sensor”

    If any of these items are missing, look at the following file and check the log for authentication failures.

  3. Check if data is being received at Contrail Insights Platform host. Run tcpdump to check if data is received by the Contrail Insights Platform host on UDP port 42596. If data is not being received from the network device on UDP port 42596, then it is likely that the in-band connectivity is not working. The local-address configured in streaming server "appformix-telemetry" must be able to reach the Contrail Insights Platform host address configured in the export profile.

  4. Check if data is being dropped by kernel. Following is an example output of tcpdump:

    If your output is similar to the following example, it indicates AppFormix-VM is dropping packets coming from the device, which can be a maximum transmission unit (MTU) issue:

  5. If you are using CentOS or Red Hat software, check your IPtables rules if they block the traffic. You can run the following commands to remove IPtables rules in your AppFormix-VM:

    These commands will remove all IPtables rules blocking the traffic and add rules accepting traffic.

  6. You might also need to disable rp_filter on the collector side:

  7. Further debugging can be done using the following script bundled with Contrail Insights. This script should be run on the Contrail Insights Agent that is monitoring the affected network device:

    This script will print out data if Contrail Insights receives JTI messages from the socket. If you do see tcpdump in the port 42596 but no data from this script, it means message has been dropped by the kernel.

Packages Needed for JTI Network Device Monitoring

Currently, you need to specify on which Agents JTI network devices should stream their metrics to. On those Contrail Insights Agents, you need to install the following three packages:

These packages are needed for receiving and decoding JTI messages.