LibreNMS est un outil de surveillance open source basé sur PHP/MYSQL/SNMP. Il s'agit d'un système de surveillance de réseau complet qui prend en charge une large gamme de matériel réseau et de systèmes d'exploitation, notamment FreeBSD, Cisco, Linux, HP, etc.
Dans ce tutoriel, nous allons vous montrer comment installer et configurer LibreNMS en utilisant Nginx comme serveur Web et MariaDB comme base de données. Nous utiliserons le serveur CentOS 7 comme serveur principal.
Ce que nous allons faire
- Installer les packages requis
- Installer le serveur Web Nginx
- Installer et configurer PHP-FPM
- Installer et configurer MariaDB
- Télécharger et configurer LibreNMS
- Installation basée sur le Web de LibreNMS
- Configuration finale
Prérequis
- Serveur CentOS 7
- Privilèges root
Étape 1 - Installer les packages requis
Avant d'installer LibreNMS sur le serveur, nous devons installer certains packages, dont ImageMagick , rrdtool , SNMP , git , et plus. La commande suivante devrait faire le nécessaire :
yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git
Si tout se passe bien, passez à l'étape suivante.
Étape 2 - Installer le serveur Web Nginx
Dans cette étape, nous allons installer epel-repository pour l'installation du serveur Web nginx. Le référentiel EPEL (Extra Packages for Enterprise Linux) est un référentiel supplémentaire pour les systèmes d'exploitation basés sur rpm, y compris CentOS 7.
Installez le dépôt EPEL en utilisant le yum commande ci-dessous.
yum -y install epel-release
Maintenant, installez nginx.
yum -y install nginx
Après l'installation de nginx, démarrez le service et activez-le pour qu'il s'exécute automatiquement au démarrage à l'aide du systemctl suivant commandes.
systemctl start nginx
systemctl enable nginx
Le serveur Web Nginx a donc été installé sur le système à partir du référentiel EPEL.
Étape 3 - Installer et configurer PHP-FPM
Avant de poursuivre, voici quelques informations qui méritent d'être partagées :
Nous utiliserons PHP-FPM version 7 pour l'installation de LibreNMS. Tous les packages PHP 7 pour CentOS 7 sont disponibles sur un référentiel tiers, et nous utiliserons la version PHP 7 du référentiel "webtatic".
Alors commençons.
Ajoutez le référentiel webtatic PHP 7 au système à l'aide de la commande rpm suivante.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installez PHP 7 et toutes les extensions nécessaires à partir du référentiel wetatic en utilisant yum.
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
Maintenant, mettez à jour le référentiel PEAR et installez certaines extensions PEAR (PHP Extension and Application Repository) à l'aide de pear commande.
pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2
De cette façon, vous pouvez installer tous les packages PHP requis.
Ensuite, configurez PHP-FPM pour l'installation de LibreNMS. Nous devons définir le fuseau horaire par défaut dans le fichier php.ini et nous assurer que le fuseau horaire correspond au fuseau horaire actuel utilisé par le système. Vous pouvez vérifier le fuseau horaire actuel utilisé par votre système via la commande suivante.
timedatectl
La capture d'écran suivante montre la commande ci-dessus en action :
Nous utilisons donc "Europe/Paris ' fuseau horaire.
Maintenant, éditez le fichier '/etc/php.ini' en utilisant vim.
vim /etc/php.ini
Ensuite, décommentez la ligne 'date.timezone' et donnez une valeur avec le fuseau horaire du serveur 'Europe/Paris'.
data.timezone = Europe/Paris
De même, décommentez la ligne cgi et changez la valeur en '0 '.
cgi.fix_pathinfo=0
C'est ça. Enregistrez maintenant les modifications et quittez l'éditeur.
Ensuite, nous devons définir comment PHP-FPM s'exécute sur le système. Dans notre cas, PHP-FPM s'exécutera sous le fichier 'sock' au lieu du port du serveur.
Modifiez le fichier 'www.conf' avec vim pour configurer le PHP-FPM.
vim /etc/php-fpm.d/www.conf
Remplacez la ligne de port 'listen' par le fichier chaussette comme ci-dessous.
listen = /var/run/php-fpm/php7.0-fpm.sock
Décommentez la ligne "écouter" pour le propriétaire, le groupe et l'autorisation du fichier chaussette comme configuration ci-dessous.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
C'est ça. Enregistrez maintenant les modifications et quittez l'éditeur.
La configuration de PHP-FPM est donc maintenant terminée. Démarrez le service et activez-le pour qu'il s'exécute automatiquement au démarrage à l'aide des commandes suivantes.
systemctl start php-fpm
systemctl enable php-fpm
Maintenant, PHP-FPM s'exécute sous le fichier chaussette. Vous pouvez le vérifier avec la commande netstat.
netstat -pl | grep php
Assurez-vous d'avoir le résultat du fichier '/var/run/php-fpm/php7.0-fpm.sock'.
Étape 4 - Installer et configurer MariaDB
LibreNMS utilise la base de données MySQL pour stocker toutes les données. Pour ce guide, nous utiliserons la version de la base de données MariaDB. Il est disponible dans le référentiel, et nous devons installer et ajouter une configuration pour l'installation de LibreNMS, y compris l'ajout de la base de données et de l'utilisateur pour LibreNMS.
Installez MariaDB à l'aide de la commande yum ci-dessous.
yum -y install mariadb mariadb-server
Démarrez le service MariaDB et activez-le pour qu'il démarre automatiquement au démarrage.
systemctl start mariadb
systemctl enable mariadb
Configurez maintenant le mot de passe racine de MariaDB à l'aide de la commande "mysql_secure_installation" ci-dessous.
mysql_secure_installation
On vous demandera le nouveau mot de passe root pour la base de données MariaDB ainsi que d'autres questions.
Tapez 'Y' et appuyez sur Entrée pour confirmer.
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Donc MariaDB a été installé. Nous devons maintenant créer une nouvelle base de données et un nouvel utilisateur pour LibreNMS. Connectez-vous à la ligne de commande du shell mysql à l'aide du client mysql et avec votre nouveau mot de passe.
mysql -u root -p
Créez une nouvelle base de données nommée 'librenms ', un nouvel utilisateur 'librenms ' avec le mot de passe 'hakase-labs123 '.
Créez le tout en utilisant les requêtes MySQL ci-dessous.
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
Un nouvel utilisateur et une nouvelle base de données pour l'installation de LibreNMS ont été créés.
Vous devez maintenant modifier le fichier my.cnf pour ajouter une nouvelle configuration mysql. Modifiez le fichier '/etc/my.cnf' à l'aide de vim.
vim /etc/my.cnf
Collez la configuration supplémentaire suivante sous '[mysqld] '.
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Enregistrez et quittez vim, puis redémarrez le serveur mariadb.
systemctl restart mariadb
Étape 5 - Téléchargez et configurez LibreNMS
Dans cette étape, nous allons configurer le système pour l'installation de LibreNMS.
- Ajouter un utilisateur et télécharger le code source LibreNMS
Créez un nouvel utilisateur système nommé 'librenms', puis définissez le répertoire personnel de l'utilisateur sur le répertoire '/opt/librenms', et enfin ajoutez l'utilisateur 'librenms' au groupe 'nginx'.
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
Allez dans le répertoire '/opt/' et téléchargez le code source LibreNMS en utilisant git clone commande comme ci-dessous.
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
Créez un nouveau répertoire pour les journaux LibreNMS et les fichiers rrd.
mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/
Changez maintenant la propriété de tous les fichiers et répertoires sous le répertoire '/opt/librenms' pour l'utilisateur et le groupe 'librenms'.
chown -R librenms:librenms /opt/librenms/
- Configurer l'hôte virtuel LibreNMS
LibreNMS est une application Web et nous utilisons un serveur Web Nginx pour l'héberger.
Créez un nouveau fichier d'hôte virtuel 'librenms.conf' sous le répertoire nginx 'conf.d'.
vim /etc/nginx/conf.d/librenms.conf
Collez la configuration ci-dessous.
server {
# Add your own domain name
listen 80;
server_name librenms.irsyadf.me;
# LibreNMS Webroot directory
root /opt/librenms/html;
index index.php;
# LibreNMS logs
access_log /opt/librenms/logs/access_log;
error_log /opt/librenms/logs/error_log;
# Enabling Gzip compression on Nginx
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
# PHP-FPM handle all .php files requests
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
C'est ça. Maintenant, enregistrez et quittez Vim.
Testez la configuration nginx et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le serveur Web.
nginx -t
systemctl restart nginx
- Configuration du pare-feu
Assurez-vous que le pare-feu packages sont installés sur votre système. Sinon, vous pouvez installer firewalld en utilisant la commande yum suivante.
yum -y install firewalld
Démarrer firewalld et activez-le au démarrage à l'aide des commandes systemctl suivantes.
systemctl start firewalld
systemctl enable firewalld
Ouvrez les nouveaux ports HTTP, HTTPS et SNMP 161/udp à l'aide de la commande firewall-cmd comme indiqué ci-dessous.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent
Appliquez la configuration en rechargeant firewalld et vérifiez tous les services.
firewall-cmd --reload
firewall-cmd --list-all
Assurez-vous que les services HTTP et HTTPS figurent dans la liste.
Étape 6 - Installation Web de LibreNMS
Ouvrez votre navigateur Web et saisissez l'URL LibreNMS dans la barre d'adresse.
http://librenms.hakase-labs.me/
Vous serez redirigé vers la page d'installation 'install.php'.
- Vérifier la prise en charge du module PHP
Assurez-vous que tous les modules et extensions php requis sont installés sur le système.
Cliquez ensuite sur "Étape suivante" pour continuer.
- Configuration de la base de données
Tapez les détails de la base de données ci-dessous :
- Utilisateur BD :'librenms '
- Nom de la base de données :'librenms '
- Pass DB :'hakase-labs123 '
Et cliquez sur "Étape suivante" pour continuer.
- Importer la base de données MySQL
Ne fermez pas la page d'installation car elle affichera l'importation de la base de données. Assurez-vous qu'il n'y a pas d'erreurs.
Une fois le processus terminé, cliquez sur "Goto Add User" pour ajouter un nouvel utilisateur administrateur.
- Ajouter un utilisateur administrateur
Saisissez votre nom d'utilisateur administrateur, votre adresse e-mail et votre mot de passe.
Cliquez sur "Ajouter un utilisateur" pour continuer l'installation.
- Générer le fichier de configuration
Cliquez sur le bouton "Générer la configuration" et vous verrez une page similaire à la suivante.
Copiez le code php qui se trouve dans la boîte et créez un nouveau fichier 'config.php' dans le répertoire '/opt/librenms/'.
cd /opt/librenms/
vim config.php
Collez dans le nouveau fichier le code que vous venez de copier, puis enregistrez et quittez l'éditeur. Changez maintenant les permissions de propriété du fichier config.php pour l'utilisateur et le groupe 'librenms'.
chown librenms:librenms config.php
Revenez à votre navigateur et cliquez sur le bouton "Terminer l'installation" présent en bas de la page. Vous verrez un message de bienvenue semblable au suivant.
À ce stade, nous en avons terminé avec l'installation basée sur le Web. Retournez au terminal/shell et ajoutez plus de configuration.
Étape 7 - Configuration finale
À cette étape, nous allons ajouter une configuration pour notre installation LibreNMS.
- Définir la commande fping
Définissez la commande 'fping' en éditant le fichier de configuration LibreNMS. Allez dans le répertoire '/opt/librenms/' et modifiez le fichier config.php à l'aide de l'éditeur vim.
cd /opt/librenms/
vim config.php
Ajoutez la ligne suivante au bas du fichier.
$config['fping'] = "/usr/sbin/fping";
Enregistrez et quittez l'éditeur.
- Configuration SNMP
Sauvegardez le fichier snmp.conf par défaut dans le répertoire '/etc/snmp/' et copiez-en un nouveau depuis le répertoire librenms.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Modifiez la nouvelle configuration.
vim /etc/snmp/snmpd.conf
Remplacez le texte "RANDOMSTRINGGOESHERE" par le nom de votre propre communauté comme ci-dessous.
com2sec readonly default hakaselabs
C'est ça. Enregistrez et quittez Vim.
Ensuite, téléchargez le librenms-agent script pour détecter le système d'exploitation que vous avez ajouté. Si vous ajoutez un système d'exploitation Linux, le script détectera également la distribution Linux spécifique.
Téléchargez le script à l'aide de curl et rendez-le exécutable.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
Redémarrez maintenant le service SNMP à l'aide de la commande systemctl suivante.
systemctl restart snmpd
- Configurer Logrotate pour LibreNMS
LibreNMS fournit la configuration pour la configuration de logrotate, et c'est dans le répertoire '/opt/librenms/misc'.
Copiez l'exemple de configuration dans le répertoire '/etc/logrotate.d'.
cp misc/librenms.logrotate /etc/logrotate.d/librenms
- Configuration de la tâche cron LibreNMS
Allez dans le répertoire 'opt/librenms' et copiez le fichier du script crontab 'librenms.nonroot.cron' dans le répertoire 'cron.d'.
cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms
Attendez quelques minutes que le script s'exécute automatiquement.
- Valider la configuration LibreNMS
Pour vérifier l'installation, utilisez le validate.php scénario. Allez dans le répertoire '/opt/librenms/' et exécutez le script.
cd /opt/librenms/
./validate.php
En supposant que vous ne rencontriez aucune erreur, vous devriez voir un résultat semblable à celui-ci :
Ceci termine donc l'installation de LibreNMS avec le serveur Web Nginx sur CentOS 7.