Integrations with other OpenWISP modules

If you use OpenWISP Controller or OpenWISP Monitoring and you use OpenVPN, Wireguard or ZeroTier for the management VPN, you can use the integration available in openwisp_network_topology.integrations.device.

This additional and optional module provides the following features:

  • whenever the status of a link changes:

    • the management IP address of the related device is updated straightaway

    • if OpenWISP Monitoring is enabled, the device checks are triggered (e.g.: ping)

  • if OpenWISP Monitoring is installed and enabled, the system can automatically create topology for the WiFi Mesh (802.11s) interfaces using the monitoring data provided by the agent. You can enable this by setting OPENWISP_NETWORK_TOPOLOGY_WIFI_MESH_INTEGRATION to True.

This integration makes the whole system a lot faster in detecting important events in the network.

Note

If you're unsure about what "Django settings" are, you can refer to How to Edit Django Settings in OpenWISP for guidance.

In order to use this module simply add openwisp_network_topology.integrations.device to INSTALLED_APPS in the Django project settings, e.g.:

INSTALLED_APPS.append("openwisp_network_topology.integrations.device")

If you have enabled WiFI Mesh integration, you will also need to update the CELERY_BEAT_SCHEDULE as follow:

CELERY_BEAT_SCHEDULE.update(
    {
        "create_mesh_topology": {
            # This task generates the mesh topology from monitoring data
            "task": "openwisp_network_topology.integrations.device.tasks.create_mesh_topology",
            # Execute this task every 5 minutes
            "schedule": timedelta(minutes=5),
            "args": (
                # List of organization UUIDs. The mesh topology will be
                # created only for devices belonging these organizations.
                [
                    "4e002f97-eb01-4371-a4a8-857faa22fe5c",
                    "be88d4c4-599a-4ca2-a1c0-3839b4fdc315",
                ],
                # The task won't use monitoring data reported
                # before this time (in seconds)
                6 * 60,  # 6 minutes
            ),
        },
    }
)

If you are enabling this integration on a preexisting system, use the create_device_nodes management command to create the relationship between devices and nodes.