Netbox plugin to sync data between LibreNMS and Netbox.
Project description
NetBox LibreNMS Plugin
This plugin provides the ability to sync selected data between Netbox and LibreNMS.
The plugin allows Netbox to remain the source of truth by allowing intentional syncing of data between NetBox and LibreNMS. The intention is to make it easier to maintain accurate data between the two systems.
This is in early development.
Features
The plugin offers the following key features:
Interface Synchronization
Pull interface data from Devices and Virtual Machines from LibreNMS into NetBox. The following interface attributes are synchronized:
- Name
- Description
- Status (Enabled/Disabled)
- Type (with custom mapping support)
- Speed
- MTU
- MAC Address
Set custom mappings for interface types to ensure that the correct interface type is used when syncing from LibreNMS to NetBox. Speed and Type are Device only
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
Sync devices and Interfaces
Virtual Chassis Member Select
Interface 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 |
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
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, # Change to False if needed,
}
}
Apply Database Migrations
Apply database migrations with Netbox manage.py
:
(venv) $ python manage.py migrate
Restart Netbox
Restart the Netbox service to apply changes:
sudo systemctl restart netbox
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file netbox_librenms_plugin-0.2.7.tar.gz
.
File metadata
- Download URL: netbox_librenms_plugin-0.2.7.tar.gz
- Upload date:
- Size: 8.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2052ea7718fbd0d85c850e380c80f9c05ea26a57a4fc9ef0c707dc292bfb002 |
|
MD5 | bdffed1f7b3aba6a16934c3662453a00 |
|
BLAKE2b-256 | 3e8c17d2707a43e52e2f5783dfc460723d245b9a3ca3533707cb6511f55abb8f |
Provenance
The following attestation bundles were made for netbox_librenms_plugin-0.2.7.tar.gz
:
Publisher:
publish-pypi.yaml
on bonzo81/netbox-librenms-plugin
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
netbox_librenms_plugin-0.2.7.tar.gz
- Subject digest:
b2052ea7718fbd0d85c850e380c80f9c05ea26a57a4fc9ef0c707dc292bfb002
- Sigstore transparency entry: 148185294
- Sigstore integration time:
- Predicate type:
File details
Details for the file netbox_librenms_plugin-0.2.7-py3-none-any.whl
.
File metadata
- Download URL: netbox_librenms_plugin-0.2.7-py3-none-any.whl
- Upload date:
- Size: 38.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3162bd0a1652efd7a90f3c14700605139d2fd74000eed8cc345bea56c5d583da |
|
MD5 | e1fee69ff91714210cc5a75c8845ffc7 |
|
BLAKE2b-256 | 6ccba8bb345b3ace4b8f5f95d4483b539a640363062d00957eebf02cf895bb7f |
Provenance
The following attestation bundles were made for netbox_librenms_plugin-0.2.7-py3-none-any.whl
:
Publisher:
publish-pypi.yaml
on bonzo81/netbox-librenms-plugin
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
netbox_librenms_plugin-0.2.7-py3-none-any.whl
- Subject digest:
3162bd0a1652efd7a90f3c14700605139d2fd74000eed8cc345bea56c5d583da
- Sigstore transparency entry: 148185296
- Sigstore integration time:
- Predicate type: