Per poter aggiungere in LibreNMS nuovi OS con relative immagini basta seguire i semplici steps elencati di seguito.
ATTENZIONE: questa modifica è applicabile solo ai device che vengono moinitorati con un semplice ping e non tramite SNMP
PRE-REQUISITI
– LibreNMS installato e configurato ( durante la stesusra del tutorial la versione di LibreNMS è 1.62-28-g5f2eab0 – Mon Apr 06 2020 21:12:24 GMT+0200)
– Connessione Internet
INSERIMENTO DELL’IMMAGINE ASSOCIATA ALL’OS
Tutte le immagini relative agli OS risiedono nel seguente path del server LibreNMS
0 |
/opt/librenms/html/images/os/ |
Da una console SSH posizionamoci in questo path con il comando:
0 |
cd /opt/librenms/html/images/os/ |
All’interno vedremo tantissime immagini con estensioni varie ed eventuali.
L’estensione dell’immagine da caricare deve essere .SVG
Per convertire l’immagine in nostro possesso in formato .SVG possiamo avvalerci di un qualsiasi servizio online.
Io ho utilizzato Convertio richiamabile al seguente link
https://convertio.co/it/jpg-svg/
In questo tutorial caricherò l’immagine del logo del device Shelly in formato .SVG come mostrato nell’immagine sovrastante
Dopo aver convertito l’immagine in .SVG copiarla nel path
0 |
/opt/librenms/html/images/os/ |
Per fare questa operazione se non si ha molta dimestichezza con la riga di comando è possibile utilizzare WinSCP e quindi fare un drag&drop dal proprio desktop
CREAZIONE E INSERIMENTO DEL FILE DI CONFIGURAZIONE .YAML
Perchè l’immagfine venga caricata nelle pagine web di LibreNMS è necessario creare un file .YAML
Creare quindi un file .yaml (nel mio caso avrà il seguente nome shelly.yaml) e all’interno copiare le seguenti righe di codice
0 1 2 3 |
os: shelly text: 'Shelly' type: appliance icon: shelly |
NOTA BENE: Solola variabile text deve avere il valore tra apici
Chiudere e salvare il file
Sempre con WinSCP copiare il file nel seguente path:
0 |
includes/definitions/ |
MODIFICA DEL FILE CONFIG.PHP
Come prima cosa dobbiamo modificare il nostro file config.php
Collegarsi in SSH al server e andare nel seguente path /opt/librenms/ con il comando
0 |
cd /opt/librenms/ |
Adesso editare il file config.php con il comando:
0 |
sudo nano config.php |
Dovremmo vedere un listato come quello riportato di seguito:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = 'port'; $config['db_user'] = 'pippo'; $config['db_pass'] = 'pluto'; $config['db_name'] = 'paperino'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("paperino"); ### Authentication Model #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates |
Ipotizziamo di voler aggiungere l’OS Shelly e la relativa immagine.
Al fondo di questo file aggiungere le seguenti righe di codice:
0 1 2 3 4 5 |
$config['os']['shelly'] = [ 'os' => 'shelly', 'text' => 'Shelly', 'type' => 'appliance', 'icon' => 'shelly', ]; |
Impostiamo quindi il nome dell’OS, la tipologia e il nome dell’icona tutto in minuscolo. Invece il text è quello che vediamo a livello di GUI quindi possiamo usare anche maiusacole e spazi senza nessun problema.
Quindi il nuovo listato del file config.php sarà il seguente:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = 'port'; $config['db_user'] = 'pippo'; $config['db_pass'] = 'pluto'; $config['db_name'] = 'paperino'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("paperino"); ### Authentication Model #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates <strong>$config['os']['shelly'] = [ 'os' => 'shelly', 'text' => 'Shelly', 'type' => 'appliance', 'icon' => 'shelly', ];</strong> |
Salviamo e chiudiamo il file.
NOTA BENE: E’ ovvio che se abbiamo la necessità di aggiungere più OS dobbiamo aggiungere più blocchi di codice uno di seguito all’altro tanti quanti sono i .SVG e i .YAML creati in LibreNMS.
CONFIGURAZIONE DEVICE DA INTERFACCIA WEB
Collegarsi all’interfaccia web di LibreNMS quindi selezionare il dispositivo dove è attivo solo il ping-only
Come si può vedere dall’immagine sovrastante il dispositivo ha un sistema operativo generico Ping Only ed un immagine generica
Cliccare sulla rotella posta all’estrema destra della pagina quindi selezionare Edit
Selezionare il tab SNMP come mostrato nella figura sovrastante
Posizionarsi in corrispondenza del parametro OS quindi scrivere il nome del dispositivo (nel mio caso è Shelly come definito nel parametro text del file .yaml)
Cliccare su Save per salvare le impostazioni
Facendo un refresh della pagina web noteremo che l’icona del nostro device e il campo OS sono cambiati.
Ripetere la procedura per tutti i device che intendiamo customizzare.
FIX DI EVENTUALI ERRORI DI VALIDATE CONFIG
Per concedere a tutti i files copiati/creati nel server i permessi di accesso all’utente Librenms e quindi avere una configurazione configurazione per poter ricevere gli updates del software correttamente è necessario eseguire da una console SSH i seguenti comandi:
0 1 2 |
sudo chown -R librenms:librenms /opt/librenms sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ sudo chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ |
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 Comments