9.6. Analyzing and Monitoring Network Connectivity

9.6.1. Introducing Skydive

Skydive can be used to monitor logical networks, including Open Virtual Networks (OVN) that have been defined as an External Network Provider. Skydive provides a live view of your network topology, dependencies, and flows, generates reports, and performs configuration audits.

You can use the data presented by Skydive to:

  • Detect packet loss
  • Check that your deployment is working correctly, by capturing a cluster’s network topology, including bridges and interfaces
  • Review whether the expected MTU settings are correctly applied
  • Capture network traffic between virtual machines or between virtual machines and hosts

For more information about Skydive’s feature set, see http://skydive.network.

Note

Skydive is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs), might not be functionally complete, and Red Hat does not recommend to use them for production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

For more information on Red Hat Technology Preview features support scope, see https://access.redhat.com/support/offerings/techpreview/.

9.6.2. Installing Skydive

Procedure

  1. Install skydive-ansible on the Manager machine:

    # yum --disablerepo="*" --enablerepo="rhel-7-server-rpms,rhel-7-server-extras-rpms,rhel-7-server-rh-common-rpms,rhel-7-server-openstack-14-rpms" install skydive-ansible
  2. Copy /usr/share/ovirt-engine/playbooks/install-skydive.inventory.sample to the current directory and rename it to inventory.
  3. Modify the inventory/01_hosts file as follows (see below for full contents):

    1. Update skydive_os_auth_url with the Manager’s FQDN. This is used by the OVN, which uses the same FQDN as the Manager.
    2. Update ovn_provider_username with the username used for the OVN provider. The default is defined in /etc/ovirt-provider-ovn/ovirt-provider-ovn.conf.
    3. Update ovn_provider_password.
    4. Under [agents:children] <host_group> define the hosts, clusters, or data center on which you are installing the Skydive agents.

      You can view a list of valid groups by running:

       /usr/share/ovirt-engine-metrics/bin/ovirt-engine-hosts-ansible-inventory | python -m json.tool
      Note

      There is no need to list each host explicitly. To install the agent on all hosts in the cluster, add ovirt_cluster_Default. Alternatively, to install the agent on all hosts in the data center, add ovirt_datacenter_Default.

      Sample Inventory File

      [agents]
      [analyzers]
      [skydive:children]
       analyzers
       agents
      
      [skydive:vars]
      skydive_listen_ip=0.0.0.0
      skydive_deployment_mode=package
      skydive_extra_config={'agent.topology.probes': ['ovsdb', 'neutron'], 'agent.topology.neutron.ssl_insecure': true}
      
       skydive_fabric_default_interface=ovirtmgmt
      
       skydive_os_auth_url=https://MANAGERS_FQDN:35357/v2.0
       skydive_os_service_username=ovn_provider_username
       skydive_os_service_password=ovn_provider_password
       skydive_os_service_tenant_name=service
       skydive_os_service_domain_name=Default
       skydive_os_service_region_name=RegionOne
      
      [agents:vars]
      ansible_ssh_private_key_file=/etc/pki/ovirt-engine/keys/engine_id_rsa
      
      [agents:children]
      host_group
      
      [analyzers]
      localhost ansible_connection=local
  4. Run the playbook:

    # ansible-playbook -i inventory /usr/share/ovirt-engine/playbooks/install-skydive.yml /usr/share/skydive-ansible/playbook.yml.sample
  5. Verify that Skydive recognizes the virtual machine’s port by going to http://MANAGERS_FQDN:8082, selecting a virtual machine, and checking the following fields in the Metadata section of the Capture tab:

    • Manager: Neutron
    • NetworkName: network_name
    • IPV4: IP_address, if a subnet is used

See Section 9.6.3, “Using Skydive to Test Network Connection” to view an example of how you can use Skydive to capture your network’s activity.

9.6.3. Using Skydive to Test Network Connection

This example tests the connection between two hosts that have NICs with IPv4 addresses. The NICs are connected to a logical network that is tagged as VLAN 4. For information on assigning an IP address to a logical network, see Section 9.4.2, “Editing Host Network Interfaces and Assigning Logical Networks to Hosts”.

Procedure

  1. Install Skydive.
  2. Open Skydive from http://MANAGERS_FQDN:8082.
  3. Select network_4 on rhv-host1 in the network map.
  4. Click Create in the Capture tab and click Start.
  5. Repeat the previous steps for network_4 on rhv-host0.
  6. Click the Generate tab.
  7. Select eth0 on rhv-host0 as the Source and eth0 on rhv-host1 as the Destination.
  8. Select ICMPv4/Echo Request from the Type drop-down list.
  9. Click Inject to inject a packet.
  10. Open the Flows tab. The results of the ping are displayed in a table. If the ping was successful, a row containing ICMPv4 and the source and destination IP addresses is displayed. When you move your cursor over that row, network_4 is highlighted with a yellow circle on the network map.

For more information on using Skydive, see the Skydive documentation.

For installation is :Testing!: