[Technique] – LibreNMS


Prérequis

  • Raspberry Pi 4 (2Go ou 4Go) avec Raspbian ou Ubuntu préchargé sur la carte SD et configuré avec une IP statique, un accès à internet (avec enregistrements dans votre DNS) avec serveur SSH activé.
  • Quelques connaissances des outils Linux Apache MySQL PHP (LAMP)
  • Savoir naviguer dans un système de fichier Linux en ligne de commande et connaitre les outils édition de texte (exemple : vim, nano etc..)
  • Notions de ‘système de fichier’ (FSTAB)
  • Accès root ou sudo

Installations et configurations (coté serveur)

La documentation officielle est assez complète, je vous invite à vous y référer :

Disponible ici

Par habitude j’installe mes applications dans /srv donc dans notre cas /srv/librenms (à adapter selon votre environnement, gardez au besoin /opt si vous voulez être en accord avec la documentation officielle)

Petites subtilités à mon sens mal présentées dans la documentation officielle :

ACLs

LibreNMS utilise les ACL pensez à mettre à jour votre fichier /etc/fstab et d’ajouter l’option ‘acl’ à votre point de montage.

[simterm]apt install acl –yes[/simterm]

Éditez votre fichier /etc/fstab et ajoutez les options « acl » suivant l’exemple

Pensez à démonter puis remonté votre volume afin que ces options soient appliquées

/dev/sda1            /srv             ext4    defaults,acl      0       1

Puis appliquez vos permissions (comme précisé dans la documentation)

[simterm]chown -R librenms:librenms /srv/librenms[/simterm]

[simterm]setfacl -d -m g::rwx /srv/librenms/rrd /srv/librenms/logs /srv/librenms/bootstrap/cache/ /srv/librenms/storage/[/simterm]

[simterm]setfacl -R -m g::rwx /srv/librenms/rrd /srv/librenms/logs /srv/librenms/bootstrap/cache/ /srv/librenms/storage/[/simterm]

Configuration de PHP (7.2 et +)

Assurez-vous que date.timezone est défini dans les fichiers php.ini sur votre fuseau horaire préféré :

  • /etc/php/7.2/apache2/php.ini
  • /etc/php/7.2/cli/php.ini
date.timezone = Europe/Paris

Configurations avancées

Comme tout outil de supervision, LibreNMS remonte beaucoup d’informations (presque trop), faire le tri peux s’avérer parfois utile comme:

  • Ignorer les points de montage (qui on peux de sens d’être surveillé)
  • Ignorer certains ports réseau et interfaces

Modification du fichier config.php (ajout en fin de fichier)

Selon mes besoins domestiques, j’ai adapté la configuration en conséquence.

#Ignored FS
$config['ignore_mount'][] = "/boot";
$config['ignore_mount'][] = "/dev";
$config['ignore_mount'][] = "/mnt/cdrom";
$config['ignore_mount'][] = "/tmp";
$config['ignore_mount'][] = "/run";
$config['ignore_mount'][] = "/sys";

$config['storage_perc_warn'] = 80;
 
#Ignored Net
$config['bad_if'][] = "voip-null";
$config['bad_iftype'][] = "voiceEncap";
$config['bad_if_regexp'][] = '/^lo[0-9].*/';    // loopback
$config['bad_if_regexp'][] = '/^tun[0-9].*/';    // tunnel
Notifications et alertes

Coté notifications, alertes et envois de mails je vous invite fortement à regarder coté du module ‘Transport’ , pour mes besoins domestiques j’ai opté pour Discord (qui par extension permet via l’application mobile de recevoir directement vos alertes sur votre smartphone)

LibreNMS me notifie via une « room » dédiée et me pousser les alertes directement dans une fenêtre de Chat

Capture d’écran

https://docs.librenms.org/Alerting/Transports/

Dépannage

Si vous rencontrez des problèmes avec votre installation, exécutez validate.php en tant que root dans le répertoire librenms

[simterm]cd /srv/librenms[/simterm]

[simterm]./validate.php[/simterm]


Installations et configurations (coté client)

C’est ici que le gros du travail s’effectue et surtout à adapter en fonction du serveur que vous souhaitez superviser et aux services qu’il héberge.

Deux choix s’offre à vous et pour le coup la doc officielle est très claire :

Si vous optez pour SNMP, voici un script bash qui vous mâchera un grande partie du travail pour Ubuntu/Débian (à adapter selon votre environnement)

disponible ici

Récupérer et exécuter ce script comme comme suivant :

[simterm]wget https://raw.githubusercontent.com/picardflo/fpicard.tech/master/LibreNMS/snmpd_config.sh && chmod +x snmpd_config.sh [/simterm]

[simterm]./snmpd_config.sh [/simterm]