Installation de LibreNMS | Debian 10 | Apache

LibreNMS est un système de supervision réseaux qui possèdent.

  • Une découverte automatique du réseau en utilisant CDP, FDP, LLDP, OSPF, BGP, SNMP et ARP.
  • Un système d’alerte flexible
  • Une interface très complète pour gérer, représenter et extraire les données (graphiques, tableaux …)
  • Des mises à jour automatique pour corriger des bugs ou ajouter de nouvelles fonctionnalités

Et de nombreuses autre possibilités.

Hello,

Petit tutoriel sur l'installation du logiciel de supervision LibreNMS sous Debian 10 Buster.

L'installation de l'os n'est pas abordée, je suis parti sur une base Debian Net-install standard avec acces ssh root distant autorisé.

Paquets et dépendances

Installation des paquets essentiels

apt install build-essential

Installation des paquets nescessaires pour LibreNMS

apt install curl apache2 composer fping git graphviz imagemagick libapache2-mod-php7.3 mariadb-client mariadb-server mtr-tiny nmap php7.3-cli php7.3-curl php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-snmp php7.3-xml php7.3-zip python-memcache python-mysqldb rrdtool snmp snmpd whois python3-pip

Utilisateur et droits

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

Clonage de Librenms via Git

cd /opt
git clone https://github.com/librenms/librenms.git

Installation du paquet "acl" pour la commande "setfacl"

apt install acl

Application des droits

chown -R librenms:librenms /opt/librenms
chmod 770 /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Installation des dépendance php via "composer"

cd librenms
su librenms
./scripts/composer_wrapper.php install --no-dev
exit

Base de donnée

Configuration de la base de donnée

systemctl restart mysql
mysql -uroot -p

 

NOTE: Pour plus de sécurité, veillez à changer le champ "password"

 

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit

 

Edition du fichier "50-server.cnf"

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ajoutez les lignes ci-dessous dans la section [mysqld]

innodb_file_per_table=1
lower_case_table_names=0

 

systemctl restart mysql

 

Assurez vous que le "timezone" soit parametré dans les fichiers de configuration de php (cli et web/apache), et augmentez les tailles d'upload

nano /etc/php/7.3/apache2/php.ini 
nano /etc/php/7.3/cli/php.ini

 

date.timezone = Europe/Paris

upload_max_filesize = 20M

max_file_uploads = 200

Apache

Activation des modules "apache"

a2enmod php7.3
a2dismod mpm_event
a2enmod mpm_prefork

Creation du Vhost librenms

nano /etc/apache2/sites-available/librenms.conf

Le champ "ServerName" peut etre une adresse ip ou un fqdn (selon votre environement)

<VirtualHost *:80>
  DocumentRoot /opt/librenms/html/
  ServerName  192.168.0.27

  AllowEncodedSlashes NoDecode
  <Directory "/opt/librenms/html/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>
</VirtualHost>

Désactivation du site par défaut et activation du site librenms. (activation du mod rewrite aussi)

a2dissite 000-default

a2ensite librenms.conf
a2enmod rewrite
systemctl restart apache2

SNMP

cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.conf

Remplacer "RANDOMSTRINGGOESHERE" par votre communauté personnalisée

Snmp distro pour librenms:

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

Taches cron librenms

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

 

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

 

Installation de LibreNMS via son interface web

 

http://librenms.example.com/install.php

Les prérequis sont vérifiés

Entrez les informations de base de donnée afin d'initialiser celle ci.

Si "timeout" lors de l'import, recommencer.

Creation de l'administrateur LibreNMS

Renseignez manuelement le fichier "/opt/librenms/.env" avec les informations communiquées par l'installateur.

Done

Installation du plugin WeatherMap

L'intégration de LibreNMS avec Network-Weathermap vous permet de créer des cartes réseau pour aider à visualiser les débits de trafic réseau.

Lien vers le site Web officiel de Network-Wearthermap

Prerequis:

apt install php-pear

Installation du plugin

cd /opt/librenms/html/plugins
git clone https://github.com/librenms-plugins/Weathermap.git
chown -R librenms:librenms Weathermap/
chmod 775 /opt/librenms/html/plugins/Weathermap/configs

Ajout de la tache cron pour raffraichir les maps

nano /etc/cron.d/librenms
*/5 * * * * librenms /opt/librenms/html/plugins/Weathermap/map-poller.php >> /dev/null 2>&1

Activation du plugin dans librenms

Dans "Vue d'ensemble-->plugins-->plugins admin" activez le module "Wheathermap"

Vous avez acces au plugin Wheathermap:

Votre fichier de configuration doit se nommer xxxxx.conf

Dans le parametrage "Map Properties" il faut indiquer le chemin d'acces aux fichiers:

Output Image Filename = /opt/librenms/html/plugins/Weathermap/output/my-map.png

Output HTML Filename = /opt/librenms/html/plugins/Weathermap/output/my-map.html

Il est possible d'obtenir ce genre de map:

Bonus : Installer phpmyadmin sur Debian 10

phpmyadmin, bien que pratique, n'est plus présent dans les paquets officiels de Debian depuis la version 10.

Voici comment l'installer manuelement.

La commande mysql_secure_installation va apporter un minimum de sécurité à notre nouvelle installation. Elle va nous permettre :

  • de changer le mot de passe root,
  • de supprimer les comptes anonymes,
  • de désactiver la connexion du compte root à distance, (je ne l'ai pas fait)
  • de supprimer la base de données « test » à laquelle tout le monde peut avoir accès.

L’outil finit sur un rechargement des privilèges (« Flush privileges ») afin d’appliquer les changements de droits au serveur.

 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Installation de PHPmyadmin

cd /tmp/
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
unzip phpMyAdmin-5.0.4-all-languages.zip
mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown www-data:www-data /var/lib/phpmyadmin/tmp

Configuration de la base de donnée pour phpmyadmin

 

mysql -u root

Attention à remplacer 'motdepasse' par le votre.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'motdepasse';
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
exit

 

Pour Apache:

 

nano  /etc/apache2/conf-available/phpmyadmin.conf

 

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Activation de la configuration apache

a2enconf phpmyadmin.conf
systemctl restart apache2
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
nano  /usr/share/phpmyadmin/config.inc.php

Pour pouvoir se connecter avec root à phpmyadmin, mettre un mot de passe à l'utilisateur "root" de mysql/mariadb:

mysql -u root

Attention à remplacer 'mon-password' par le votre

GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'mon-password';
FLUSH PRIVILEGES;

Une fois connecté à phpmyadmin, il sera peut etre nescessaire de creer des tables supplementaires pour le stockage des configurations, il suffit alors de cliquer sur le message d'erreur puis sur "creer les tables manquantes".

 

Source: 

https://docs.librenms.org/Installation/Installation-Ubuntu-1804-Apache/

https://www.gabinhocity.eu/installer-apache-php7-3-mysql-et-phpmyadmin-sur-debian-10-buster/

Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec une *

Quelle est le troisième caractère du mot azfv9x0u ? :