Table of Contents
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 :
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
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)
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]