Skip to main content

Netbox plugin to sync data between LibreNMS and Netbox.

Project description

NetBox LibreNMS Plugin

The NetBox LibreNMS Plugin enables integration between NetBox and LibreNMS, allowing you to leverage data from both systems. NetBox remains the Source of Truth (SoT) for you network, but this plugin allows you to easily onboard device objects from existing data in LibreNMS. The plugin does not automatically create objects in NetBox to ensure only verified data is used to populate NetBox.

This is in early development.

Features

The plugin offers the following key features:

Interface Sync

Pull interface data from Devices and Virtual Machines from LibreNMS into NetBox. The following interface attributes are synchronized:

Set custom mappings for interface types to ensure that the correct interface type is used when syncing from LibreNMS to NetBox.

Cable Sync

Create cable connection in NetBox from LibreNMS links data.

Add device to LibreNMS from Netbox

  • Add device to LibreNMS from Netbox device page. Only SNMP v2c available.

Site & Location Synchronization

The plugin also supports synchronizing NetBox Sites with LibreNMS locations:

  • Compare NetBox sites to LibreNMS location data
  • Create LibreNMS locations to match NetBox sites
  • Update existing LibreNMS locations langitude and longitude values based on NetBox data
  • Sync device site to LibreNMS location

Screenshots/GIFs

Site & Location Sync

Site Location Sync

Sync devices and Interfaces

Add device and interfaces

Virtual Chassis Member Select

Virtual Chassis Member Selection

Interface Type Mappings

Interfaces Type Mappings

Contributing

There's more to do! Coding is not my day job. Bugs will exist and imporvements will be needed. So contributions are very welcome! I've got more ideas for new features and imporvements but please contribute if you can!

Or just share your ideas for the plugin over in discussions.

Compatibility

NetBox Version Plugin Version
4.1 0.2.x - 0.3.x

Installing

Netbox 4.1+ is required.

Standard Installation

Activate your virtual environment and install the plugin:

source /opt/netbox/venv/bin/activate

Install with pip:

(venv) $ pip install netbox-librenms-plugin

Add to your local_requirements.txt to ensure it is automatically reinstalled during future upgrades.

 "netbox-librenms-plugin" >> /opt/netbox/local_requirements.txt

Docker

For adding to a NetBox Docker setup see how to create a custom Docker image. the general instructions for using netbox-docker with plugins.

Add the plugin to plugin_requirements.txt (netbox-docker):

# plugin_requirements.txt
netbox-librenms-plugin

Configuration

1. Enable the Plugin

Enable the plugin in /opt/netbox/netbox/netbox/configuration.py, or if you use netbox-docker, your /configuration/plugins.py file :

PLUGINS = [
    'netbox_librenms_plugin'
]

PLUGINS_CONFIG = {
    'netbox_librenms_plugin': {
        'librenms_url': 'https://your-librenms-instance.com',
        'api_token': 'your_librenms_api_token',
        'cache_timeout': 300,
        'verify_ssl': True, # Optional: Change to False if needed,
        'interface_name_field': 'ifDescr', # Optional: LibreNMS field used for interface name. ifName used as default
    }
}

2. Apply Database Migrations

Apply database migrations with Netbox manage.py:

(venv) $ python manage.py migrate

3. Collect Static Files

The plugin includes static files that need to be collected by NetBox. Run the following command to collect static files:

(venv) $ python manage.py collectstatic --no-input

4. Restart Netbox

Restart the Netbox service to apply changes:

sudo systemctl restart netbox

5. Custom Field

It is recommended (but not essential) to add a custom field librenms_id to the Device, Virtual Machine and Interface models in NetBox. Use the following settings:

  • Object Types:
    • Check dcim > device
    • Check virtualization > virtual machine
    • Check dcim > interface
  • Name: librenms_id
  • Label: LibreNMS ID
  • Description: (Optional) Add a description like "LibreNMS ID for LibreNMS Plugin".
  • Type: Integer
  • Required: Leave unchecked.
  • Default Value: Leave blank.

For more info check out custom field docs

Uninstall

See the instructions for uninstalling plugins.

Credits

Based on the NetBox plugin tutorial and docs:

This package was created with Cookiecutter. Thanks to the netbox-community/cookiecutter-netbox-plugin for the project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_librenms_plugin-0.3.1.tar.gz (8.8 MB view details)

Uploaded Source

Built Distribution

netbox_librenms_plugin-0.3.1-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

Details for the file netbox_librenms_plugin-0.3.1.tar.gz.

File metadata

File hashes

Hashes for netbox_librenms_plugin-0.3.1.tar.gz
Algorithm Hash digest
SHA256 9a74d6f6063c68bb7cc326060a76c87576dd685980cffa1957b2ab803deab53a
MD5 765a5651328ba7869e8beb493513aa1f
BLAKE2b-256 911ce644656d1548a26c6f51ca4ac49e14a610eba9314f0ad12384f2f8776654

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_librenms_plugin-0.3.1.tar.gz:

Publisher: publish-pypi.yaml on bonzo81/netbox-librenms-plugin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file netbox_librenms_plugin-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_librenms_plugin-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 59a09f6d4b437cb899f064072601685b3030202f175c47ed86a9ee0aab6c7918
MD5 e8df8ab5edafdf874bc8a104a261a51e
BLAKE2b-256 722b7235f690e8cd044113dbcfc7d9de1076dd97a7b671cce434b84f69a0b5ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_librenms_plugin-0.3.1-py3-none-any.whl:

Publisher: publish-pypi.yaml on bonzo81/netbox-librenms-plugin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page