Skip to main content Link Menu Expand (external link) Document Search Copy Copied

LibreNMS Network Manager Configuration

Seattle Community Networks uses SNMP to monitor network nodes. LibreNMS is used for Network Management, Dashboard generation and Alerting.

LibreNMS Manager Installation:

Install LibreNMS Install and Configure LibreNMS on Ubuntu with nginx

Network-Specific Configuration:

Change active user to librenms: sudo su - librenms

Edit /opt/librenms/config.php:

<?php

$config['user'] = 'librenms';
$config['base_url'] = "/";
$config['snmp']['community'] = array('<SNMP COMMUNITY STRING>');
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
$config['nets'][] = "10.0.0.0/24"; # Replace with your Management Network Subdomain
$config['rrd_purge'] = 0;
$config['enable_billing'] = 1;
$config['show_services'] = 1;

As user ‘librenms’, run /opt/librenms/snmp-scan.php, to scan the configured network for snmp hosts

Adding Baicells OS configuration to LibreNMS

As user ‘librenms’ on the librenms server, create the following files and update their contents accordingly:

  • For OS detection, ~librenms/includes/definitions/rts.yaml:
      os: rts
          text: 'Baicells RTS'
          type: network
          icon: rts
          over:
          - { graph: device_bits, text: 'Device Traffic' }
          - { graph: device_processor, text: 'CPU Usage' }
          - { graph: device_mempool, text: 'Memory Usage' }
          discovery:
          - sysDescr:
              - 'CELL'
    
  • For defining custom RTS OS sensors, ~librenms/includes/definitions/discovery/rts.yaml:
mib: BAICELLS-MIB
modules:
	os:
    	hardware: BAICELLS-MIB::hardwareVersion.0
    	serial: BAICELLS-MIB::sn.0
    	version: BAICELLS-MIB::softwareVersion.0
	sensors:
    	count:
        	data:
            	-
                	oid: ulThroughput
                	num_oid: '.1.3.6.1.4.1.53058.190.7.'
                	descr: 'Upload Throughput'
                	group: 'Throughput'
                	index: 'ulthroughput.'
            	-
                	oid: dlThroughput
                	num_oid: '.1.3.6.1.4.1.53058.190.8.'
                	descr: 'Download Throughput'
                	group: 'Throughput'
                	index: 'dlThroughput.'
            	-
                	oid: ulPrbUtilization
                	num_oid: '.1.3.6.1.4.1.53058.190.9.'
                	descr: 'Upload PRB Utilization'
                	group: 'Utilization'
                	index: 'ulPrbUtilization'
            	-
                	oid: dlPrbUtilization
                	num_oid: '.1.3.6.1.4.1.53058.190.10.'
                	descr: 'Download PRB Utilization'
                	group: 'Utilization'
                	index: 'dlPrbUtilization.'
    	frequency:
        	data:
            	-
                	oid: carrierBwMhz
                	num_oid: '.1.3.6.1.4.1.53058.100.7.'
                	divisor: 5
                	descr: 'Carrier Bandwidth'
                	index: 'carrierBwMhz.'
    	percent:
        	data:
            	-
                	oid: eRABEstablishSuccessRate
                	num_oid: '.1.3.6.1.4.1.53058.190.3.'
                	descr: 'ERAB Establishment Success Rate'
                	group: 'LTE'
                	index: 'eRABEstablishSuccessRate.'
            	-
                	oid: hoSuccInterEnbS1Rate
                	num_oid: '.1.3.6.1.4.1.53058.190.4.'
                	descr: 'Inter MME S1 Handover Success Rate'
                	group: 'LTE'
                	index: 'heSuccInterEnbS1Rate.'
            	-
                	oid: hoSuccInterEnbRate
                	num_oid: '.1.3.6.1.4.1.53058.190.5.'
                	descr: 'Inter MME Handover Success Rate'
                	group: 'LTE'
                	index: 'hoSuccInterEnbRate.'
            	-
                	oid: rrcBuildSuccessRate
                	num_oid: '.1.3.6.1.4.1.53058.190.6.'
                	descr: 'RRC Build Success Rate'
                	group: 'LTE'
                	index: 'rrcBuildSuccessRate.'
  • For defining a custom OS class to use Wireless sensors, ~librenms/LibreNMS/OS/Rts.php (note: pay attention to capitalization)
<?php
namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessUtilizationDiscovery;
use LibreNMS\OS;

class Rts extends OS implements WirelessClientsDiscovery
{
	public function discoverWirelessClients()
	{
    	$oid = '.1.3.6.1.4.1.53058.100.11.0'; //BAICELLS-MIB::ueConnections.0
    	return array(
        	new WirelessSensor('clients', $this->getDeviceId(), $oid, 'rts', 1, 'UE Connections')
    	);
	}
}