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 en vedette 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, je vais vous montrer comment installer et configurer l'outil de surveillance open source "LibreNMS" en utilisant Nginx comme serveur Web, MariaDB comme base de données et le serveur Ubuntu 16.04 comme serveur principal. Nous vous guiderons étape par étape sur la façon d'installer et de configurer 'LibreNMS' sur le serveur Ubuntu 16.04 Xenial Xerus.
Ce que nous allons faire
- Installer des packages
- Installer le serveur Web Nginx
- Installer et configurer PHP-FPM
- Installer et configurer MariaDB
- Télécharger et configurer LibreNMS
- Installateur Web LibreNMS
- Configuration finale
Prérequis
- Serveur Ubuntu 16.04
- Privilèges racine
Étape 1 - Installer les packages
La première étape que nous devons faire pour installer les outils de surveillance LibreNMS consiste à installer certains packages nécessaires sur le serveur. Connectez-vous à votre serveur et mettez à jour le référentiel.
ssh [email protected]
sudo apt update
Installez tous les packages requis pour LibreNMS à partir du référentiel Ubuntu à l'aide de la commande suivante.
apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd rrdtool git snmp graphviz
Une fois l'installation terminée, passez à l'étape suivante.
Étape 2 - Installer le serveur Web Nginx
Dans ce didacticiel, nous exécuterons LibreNMS sous le serveur Web Nginx. Nginx est un serveur Web puissant disponible dans les référentiels Ubuntu.
Installez nginx à l'aide de la commande apt à partir du référentiel de la manière suivante.
apt install nginx
Une fois terminé, démarrez le service et activez-le pour qu'il s'exécute automatiquement à chaque démarrage du système.
systemctl start nginx
systemctl enable nginx
Le serveur Web Nginx s'exécute sous le port par défaut 80. Nous pouvons vérifier le port à l'aide de la commande netstat et vérifier Nginx à l'aide de la commande curl pour obtenir le code d'état HTTP, comme indiqué ci-dessous.
netstat -plntu | grep 80
curl -I localhost
L'installation de Nginx est terminée.
Étape 3 - Installer et configurer PHP-FPM
LibreNMS est un outil de surveillance d'applications Web basé sur PHP. Il offre un support pour la nouvelle version PHP 7.0, et nous l'utiliserons pour ce guide.
Installez PHP, PHP-FPM et toutes les extensions/modules nécessaires à l'installation de LibreNMS à l'aide de la commande apt ci-dessous.
apt install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6
Ensuite, nous devons ajouter une configuration aux fichiers php.ini. 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.
Vérifiez le fuseau horaire actuellement utilisé par le système avec la commande suivante.
timedatectl
Vous devriez obtenir un résultat semblable au suivant.
Vous pouvez voir que le serveur utilise le "Europe/Paris ' fuseau horaire.
Accédez maintenant au répertoire de configuration PHP et modifiez les fichiers php.ini pour la configuration cli et fpm.
cd /etc/php/7.0/
vim fpm/php.ini
vim cli/php.ini
Décommentez le 'date.time ' et changez la valeur avec notre fuseau horaire système 'Europe/Paris '.
date.time = Europe/Paris
Décommentez la configuration cgi ci-dessous, changez la valeur en 0.
cgi.fix_pathinfo = 0
Enregistrez et quittez.
Toute la configuration est terminée. Maintenant, démarrez le service et activez-le pour qu'il se lance à chaque démarrage du système à l'aide des commandes systemctl suivantes.
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM s'exécute maintenant sur le serveur ubuntu - il s'exécute sous le fichier chaussette. Vérifiez-le avec la commande netstat.
netstat -pl | grep php
Étape 4 - Installer et configurer MariaDB
Dans cette étape, nous allons installer le serveur mariadb pour la base de données LibreNMS. Nous allons installer, configurer et créer une nouvelle base de données et un nouvel utilisateur pour l'installation de LibreNMS.
Installez mariadb-server à partir du référentiel ubuntu à l'aide de la commande apt ci-dessous.
apt install mariadb-server mariadb-client mariadb
Une fois terminé, démarrez le service et activez-le pour qu'il s'exécute automatiquement au démarrage du système, ce que vous pouvez faire à l'aide des commandes systemctl suivantes.
systemctl start mysql
systemctl enable mysql
Le serveur de base de données mariadb est maintenant en cours d'exécution. Ensuite, nous devons configurer le mot de passe root pour mariadb. Nous pouvons utiliser la commande 'mysql_secure_installation' ci-dessous pour configurer le mot de passe root.
mysql_secure_installation
Le nouveau mot de passe root vous sera demandé - saisissez votre mot de passe et appuyez sur "Entrée" pour continuer.
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
Le mot de passe root pour mariadb a été configuré.
Ensuite, nous devons créer une nouvelle base de données et un nouvel utilisateur pour LibreNMS. Nous allons créer une nouvelle base de données nommée 'librenms', un nouvel utilisateur nommé 'librenms' avec le mot de passe 'hakase-labs123'.
Connectez-vous au shell mariadb à l'aide de la commande suivante.
mysql -u root -p
Type the ROOT Password:
Exécutez les requêtes mariadb ci-dessous pour créer une nouvelle base de données et un nouvel utilisateur, et accordez tous les privilèges sur la base de données au nouvel utilisateur.
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;
Une nouvelle base de données et un nouvel utilisateur pour LibreNMS ont été créés.
Pour l'installation de LibreNMS, nous devons ajouter une configuration au fichier de configuration. Allez dans le répertoire '/etc/mysql/' et éditez le fichier de configuration mariadb.
cd /etc/mysql/
vim mariadb.conf.d/50-server.cnf
Collez la configuration ci-dessous sous '[mysqld] '.
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Enregistrez et quittez.
Appliquez maintenant la nouvelle configuration en redémarrant le service.
systemctl restart mysql
La configuration de la base de données mariadb est terminée.
Étape 5 - Télécharger et configurer LibreNMS
Dans cette étape, nous allons configurer le système pour l'installation de LibreNMS.
- Ajouter un nouvel utilisateur et télécharger LibreNMS
Créez un nouvel utilisateur système nommé 'librenms', définissez '/opt/librenms' comme répertoire d'accueil par défaut pour l'utilisateur et affectez le nouvel utilisateur 'librenms' au groupe www-data.
Exécutez la commande suivante pour tout faire.
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data
Allez maintenant dans le répertoire '/opt/' et téléchargez le code source de LibreNMS à l'aide de la commande git.
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
Ensuite, créez un nouveau répertoire pour les fichiers journaux libreNMS et les fichiers rrd.
mkdir -p /opt/librenms/{logs,rrd}
Changez les permissions de propriété pour le répertoire 'rrd' en '775', et changez le propriétaire du répertoire 'librenms' en utilisateur et groupe 'librenms'.
chmod -R 775 /opt/librenms/rrd/
chown -R librenms:librenms /opt/librenms/
Un nouveau 'librenms' a été créé et le code source LibreNMS a été téléchargé.
- Configurer l'hôte virtuel LibreNMS
Accédez au répertoire de configuration "nginx" et créez un nouveau fichier d'hôte virtuel "librenms" avec vim
cd /etc/nginx/
vim sites-available/librenms
Collez-y la configuration d'hôte virtuel LibreNMS suivante.
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:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Sauvegarder et quitter. Maintenant, activez l'hôte virtuel.
ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
Testez la configuration nginx et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service.
nginx -t
systemctl restart nginx
- Configurer le pare-feu UFW
Ajoutez de nouveaux ports au pare-feu. Ajoutez les nouveaux ssh, http, https et le port utilisé par le type snmpd 161 udp au pare-feu ufw.
Exécutez les commandes ufw suivantes.
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 161/udp
Démarrez le pare-feu ufw avec la commande ufw enable comme indiqué ci-dessous.
ufw enable
Tapez 'y' et appuyez sur 'Entrée' pour confirmer. Démarrez et activez-le pour qu'il se lance à chaque fois au démarrage du système.
Si vous voulez voir l'état du pare-feu, exécutez la commande 'ufw status'.
ufw status
Vous obtiendrez l'état du pare-feu - actif ou inactif - et la liste des ports et services ajoutés au pare-feu.
Étape 6 - Installateur Web LibreNMS
Une fois toutes les étapes ci-dessus terminées, nous devons installer LibreNMS via le navigateur Web. Ouvrez votre navigateur Web, saisissez le nom de domaine LibreNMS "librenms.hakase-labs.co" dans la barre d'adresse et appuyez sur Entrée.
- Vérification des modules PHP
Vous serez redirigé vers la page install.php affichant le résultat des vérifications de prise en charge du module PHP. Assurez-vous que tout le statut est vert comme indiqué ci-dessous.
Cliquez sur 'Étape suivante ' pour continuer.
- Configuration de la base de données
Remplissez toutes les informations de la base de données avec votre propre db.
- Utilisateur de la base de données :librenms
- Pass DB :hakase-labs123
- Nom de la base de données :librenms
Et cliquez sur 'Étape suivante '.
- Importation de la base de données MySQL
Attendez que le script du programme d'installation importe un exemple de base de données dans notre base de données :ne fermez pas l'onglet du navigateur pendant ce processus.
Une fois toutes les bases de données importées, cliquez sur "Goto Add User" '.
- Ajouter un utilisateur administrateur
Ici, saisissez votre utilisateur administrateur, votre adresse e-mail et votre mot de passe.
Cliquez sur 'Ajouter un utilisateur '.
- Générer la configuration LibreNMS
Cliquez sur 'Générer la configuration ' bouton.
Et vous obtiendrez un fichier de configuration similaire à celui présenté ci-dessous.
Copiez le script de configuration php et revenez à votre session ssh. Allez dans le répertoire '/opt/librenms' et créez le fichier 'config.php' manuellement à l'aide de vim.
cd /etc/librenms/
vim config.php
Collez-y la configuration et changez la propriété du fichier en utilisateur et groupe librenms.
chown librenms:librenms config.php
Revenez à votre navigateur Web et cliquez sur 'Terminer l'installation ' bouton.
Vous accédez maintenant à la dernière page du programme d'installation Web librenms - voir ci-dessous.
Étape 7 - Configuration finale
Une fois l'installation via le navigateur Web terminée, nous devons effectuer d'autres étapes.
- Configurer SNMP
Sauvegardez le fichier de configuration par défaut et copiez l'exemple de configuration dans le répertoire '/etc/snmp/'.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.aseli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Modifiez la nouvelle configuration avec vim.
vim /etc/snmp/snmpd.conf
Remplacez la ligne "RANDOMSTRINGGOESHERE" par votre propre nom de communauté "hakaselabs", comme indiqué ci-dessous.
com2sec readonly default hakaselabs
Enregistrez et quittez.
Ensuite, nous devons télécharger le script de détection de distribution. Téléchargez-le en utilisant curl, puis rendez le script exécutable, puis enfin, redémarrez le service snmp.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd
- Configuration de Crontab et Logrotate
Accédez au répertoire librenms et copiez l'exemple de configuration pour Crontab et Logrotate.
cd /opt/librenms/
Copiez la configuration.
cp librenms.nonroot.cron /etc/cron.d/librenms
cp misc/librenms.logrotate /etc/logrotate.d/librenms
Redémarrez maintenant le service cron et rechargez la configuration de logrotate.
systemctl restart cron
logrotate -f /etc/logrotate.conf
- Valider la configuration
Attendez un moment jusqu'à ce que le script cron s'exécute sur le système. Une fois cela fait, validez avec le script 'validate.php'.
Accédez au répertoire librenms et exécutez le script de validation.
cd /opt/librenms/
./validate.php
Si votre installation est correcte, vous obtiendrez le résultat comme indiqué ci-dessous.
L'installation de LibreNMS avec le serveur Web Nginx sur Ubuntu 16.04 est terminée.