drakelid/isp-service-impact-manager

ISP Service & Customer Impact Manager - customer/service dependency, impact and blast-radius intelligence for LibreNMS

Maintainers

Package info

github.com/Drakelid/ISP-Service-Customer-Impact-Manager

Homepage

Issues

pkg:composer/drakelid/isp-service-impact-manager

Transparency log

Statistics

Installs: 14

Dependents: 0

Suggesters: 0

Stars: 0

v1.1.8 2026-08-14 13:31 UTC

This package is auto-updated.

Last update: 2026-08-14 13:31:50 UTC


README

drakelid/isp-service-impact-manager adds customer, service, circuit, path, dependency, blast-radius, and monitoring-derived SLA context to LibreNMS. It keeps LibreNMS devices and ports authoritative and does not modify core files.

It provides deterministic redundancy-aware health, cached customer impact, safe what-if simulation, probable shared failure domains, risk analysis, topology, reconciliation, import/export, audit history, and SLA reports. Missing telemetry is UNKNOWN, never automatically an outage.

Requirements

  • A currently supported LibreNMS installation
  • PHP 8.2, 8.3, or 8.4
  • A LibreNMS-supported MariaDB/MySQL database
  • LibreNMS's scheduler running every minute

Installation

For an automated production install/update, copy tools/install-latest.sh to the LibreNMS host and run:

sudo bash tools/install-latest.sh
# Optional exact version or alternate installation directory:
sudo LIBRENMS_DIR=/opt/librenms bash tools/install-latest.sh 1.0.0

The default constraint is ^1.0, so it installs the newest compatible 1.x release and records that constraint in composer.plugins.json.

For a manual installation, run the following from the LibreNMS directory.

Run from the LibreNMS directory as the LibreNMS service account:

cd /opt/librenms
./scripts/composer_wrapper.php require drakelid/isp-service-impact-manager
php artisan migrate --force
php artisan plugin:enable isp-service-impact-manager
php artisan isim:install-check
php artisan isim:health

If your LibreNMS release uses the web plugin manager, enable the plugin there instead. Grant view isim and the narrower management abilities through LibreNMS role management. Composer installation survives daily.sh; do not copy the package into LibreNMS core directories.

Publish deployment configuration only when local overrides are needed:

php artisan vendor:publish --tag=isim-config

Open /plugin/isp-service-impact-manager/setup, add or import inventory, then:

php artisan isim:reindex
php artisan isim:evaluate
php artisan isim:refresh-impact

Import and export

Imports preview by default and never delete records absent from a file:

php artisan isim:import customers customers.csv
php artisan isim:import customers customers.csv --apply
php artisan isim:export all --format=json --out=/secure/backup/directory

Supported kinds are customers, services, endpoints, circuits, paths, and path_components. Contacts are excluded from exports by default.

NetBox source of truth

Administrators can open Settings → NetBox, enter a read-only NetBox API token, test the connection, and enable automatic synchronization. The token is encrypted with LibreNMS's application key and never returned to the browser or audit log. Synchronization is queued and runs at the configured interval.

NetBox tenants become customers. Every tenant-owned NetBox circuit becomes a circuit-backed service with an indexed path; isim_service_ref and the other custom fields optionally override the generated defaults. NetBox-owned rows carry a durable source ID: upstream changes update them, upstream removals disable rather than delete them, and local-only inventory remains untouched.

The connector also indexes sites, locations, devices, interfaces, cables, prefixes, IP addresses, VLANs, VRFs, IPAM services, L2VPNs, tunnels, virtual circuits, and their termination records. IPAM services, L2VPNs, tunnels, and virtual circuits assigned to a tenant become ISIM services. NetBox devices are matched to existing LibreNMS devices by exact name, display name, or primary IP; interfaces are then matched by exact interface name. Ambiguous identities are kept as source context but never attached to monitoring paths automatically.

Useful NetBox custom fields are:

Tenant:  isim_customer_ref, isim_customer_type, isim_priority, isim_sla_class
Circuit: isim_circuit_ref, isim_service_ref, isim_service_name,
         isim_service_type, isim_criticality, isim_redundancy_mode,
         isim_required_paths, isim_path_role, isim_sla_class

CLI preview and synchronization:

php artisan isim:netbox-sync --dry-run
php artisan isim:netbox-sync

See Operations, Upgrading, Development, and Security.

The standalone suite contains 225 tests and 685 assertions. CI covers PHP 8.2-8.4, Pint, PHPStan, MariaDB migrations, and advisory LibreNMS integration.

Licensed under GPL-3.0-or-later.