GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer l'outil de surveillance SNMP Cacti sur Debian 9

Ce didacticiel vous montrera comment installer et configurer l'outil de surveillance réseau Cacti à partir de la source pour vous assurer que vous disposez de la dernière version sur Debian 9, nom de code Stretch.

Cacti est un outil de surveillance de réseau basé sur le Web, entièrement open source, conçu pour afficher les graphiques du réseau et du système via RRDtool. Il utilise le protocole SNMP (Simple Network Management Protocol) pour collecter et surveiller le trafic réseau des périphériques réseau, tels que les commutateurs, les routeurs, les serveurs Linux, Unix et Windows ou d'autres types de périphériques réseau prenant en charge SNMP.

Exigences

  • Installation minimale de Debian 9 sur une machine sans système d'exploitation ou sur un serveur privé virtuel.
  • Une adresse IP statique configurée pour l'une des cartes d'interface réseau de votre système.
  • Accès au compte root ou à un utilisateur avec des privilèges de compte root via sudo.

Configuration initiale

Avant de commencer à installer Cacti à partir de la source, assurez-vous d'abord que votre système répond à toutes les exigences logicielles pour compiler et installer Cacti. Dans la première étape, ouvrez le fichier de liste des sources Debian pour le modifier avec les privilèges root et ajoutez les dépôts contrib et non-free comme indiqué dans l'extrait de fichier ci-dessous.

nano /etc/apt/sources.list

Exemple de fichier sources.list :

deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
 
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main

Une fois la modification du fichier terminée, enregistrez et fermez le fichier et mettez à jour vos référentiels système et packages logiciels pour incorporer les nouveaux packages, en exécutant les commandes ci-dessous.

apt update
apt upgrade

 

Ensuite, lancez une nouvelle commande afin d'installer certains utilitaires nécessaires qui seront utilisés pour gérer davantage votre système à partir de la ligne de commande.

apt install wget patch unzip zip bash-completion

Cacti est un outil de surveillance basé sur le Web principalement écrit en langage de programmation côté serveur PHP. Pour exécuter les scripts de fichier Cacti php, un serveur Web, tel qu'un serveur HTTP Apache, et un interpréteur PHP doivent être installés et fonctionnels dans le système. Afin d'installer le serveur Web Apache et l'interpréteur PHP avec tous les modules PHP requis par Cacti pour fonctionner correctement, exécutez la commande suivante dans la console de votre serveur.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt

 

Une fois Apache et PHP installés, testez si le serveur Web est opérationnel et écoute les connexions réseau sur le port 80 en exécutant la commande suivante avec les privilèges root.

netstat –tlpn

Dans le cas netstat L'utilitaire de réseau n'est pas installé par défaut sur votre système Debian, exécutez la commande ci-dessous pour l'installer.

apt install net-tools

En inspectant le netstat sortie de la commande, vous pouvez voir que le démon apache écoute les connexions réseau entrantes sur le port 80.

 

Si un pare-feu est activé sur votre système, tel qu'une application de pare-feu UFW, vous devez ajouter une nouvelle règle pour autoriser le trafic HTTP à traverser le pare-feu en exécutant la commande suivante.

ufw allow WWW

ou

ufw allow 80/tcp

Enfin, testez si la page Web par défaut du serveur Web Apache peut être affichée dans le navigateur de votre client en visitant l'adresse IP de votre machine Debian via le protocole HTTP, comme indiqué dans l'image ci-dessous. Si vous ne connaissez pas l'adresse IP de votre machine, exécutez 'ifconfig' ou 'ip a' commandes. Mon IP dans cette configuration est :http://192.168.1.14

Dans l'étape suivante, nous devons apporter d'autres modifications au fichier de configuration par défaut de PHP afin de nous assurer que les file_uploads la variable est activée et le PHP fuseau horaire est correctement configuré et correspond à l'emplacement physique de votre système. Ouvrez /etc/php/7.0/apache2/php.ini fichier à modifier et assurez-vous que les lignes suivantes sont configurées comme suit.

file_uploads = On
date.timezone = Europe/London

Remplacez la variable timezone en fonction de votre fuseau horaire physique en consultant la liste des fuseaux horaires fournie par les docs PHP au lien suivant http://php.net/manual/en/timezones.php

Après avoir apporté les modifications requises, créez un fichier d'informations php et redémarrez le démon apache pour appliquer les modifications en exécutant les commandes suivantes.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
systemctl restart apache2

  Vérifiez si le fuseau horaire PHP a été correctement configuré en visitant le script d'informations php à partir d'un navigateur à l'URL suivante (comme illustré dans l'image ci-dessous). Faites défiler jusqu'au réglage de la date pour vérifier le réglage du fuseau horaire php.

http://192.168.1.14/info.php

L'outil de surveillance Cacti stocke les configurations et les données collectées dans une base de données RDBMS. Dans ce didacticiel, nous allons configurer Cacti avec le backend de base de données MariaDB. Exécutez la commande ci-dessous pour installer la base de données MariaDB et le module PHP nécessaire pour accéder à la base de données mysql.

apt install mariadb-server php7.0-mysql

Après avoir installé MariaDB, vérifiez que le démon est en cours d'exécution et écoute les connexions réseau sur localhost, port 3306, en exécutant netstat commande.

netstat –tlpn | grep mysql

Connectez-vous ensuite à la console MySQL et sécurisez MariaDB racine compte en lançant les commandes suivantes.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

 

À l'étape suivante, sécurisez MariaDB en exécutant le script mysql_secure_installation fourni par le package d'installation du référentiel Debian Stretch. Lors de son exécution, le script posera une série de questions pour sécuriser la base de données MariaDB, telles que :changer le mot de passe root MySQL, supprimer les utilisateurs anonymes, désactiver les connexions root à distance et supprimer la base de données de test. Exécutez le script en exécutant la commande ci-dessous et assurez-vous de taper oui à toutes les questions posées afin de sécuriser complètement le démon MySQL. Utilisez la sortie de script ci-dessous, sauf comme guide.

sudo mysql_secure_installation
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] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 
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] y
 ... Success!
 
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!

Afin de tester la sécurité de MariaDB, essayez de vous connecter à la base de données depuis la console sans racine le mot de passe. L'accès à la base de données doit être refusé si aucun mot de passe n'est fourni pour la racine Compte. Si le mot de passe est fourni, le processus de connexion doit être accordé à la console MySQL, comme indiqué dans la capture d'écran ci-dessous.

mysql -h localhost -u root
mysql -h localhost -u root –p

Une fois connecté à la base de données MariaDB, continuez et créez une base de données pour l'installation de Cacti et créez l'utilisateur qui sera utilisé pour gérer cacti base de données, en exécutant les commandes suivantes. Remplacez les cactus utilisateur et mot de passe de la base de données en conséquence.

create database cacti;
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';
flush privileges;
exit

Accordez également des autorisations de sélection à l'utilisateur de la base de données cactus pour le fuseau horaire MySQL en exécutant les commandes ci-dessous. Il s'agit d'une nouvelle exigence pour installer et exécuter la dernière version de Cacti.

mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
mysql -u root -p -e 'grant select on mysql.time_zone_name to [email protected]'

À l'étape suivante, ouvrez le fichier de configuration par défaut du serveur MySQL et ajoutez les lignes suivantes, comme indiqué dans l'exemple ci-dessous.

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

Ajoutez les lignes suivantes en bas du 50-server.cnf fichier :

max_heap_table_size              = 98M
tmp_table_size               = 64M
join_buffer_size             = 64M
innodb_buffer_pool_size   = 485M
innodb_doublewrite           = off
innodb_additional_mem_pool_size  = 80M
innodb_flush_log_at_timeout  = 3
innodb_read_io_threads    = 32
innodb_write_io_threads   = 16

Afin d'appliquer toutes les modifications que nous avons apportées jusqu'à présent, redémarrez les démons MySQL et Apache et vérifiez que les démons sont en cours d'exécution en exécutant les commandes suivantes.

systemctl restart mysql apache2
systemctl status mysql apache2

Configurer le service SNMP

Le service de surveillance Web Cacti utilise le protocole SNMP afin de collecter les données et les statistiques de l'appareil. Pour installer le programme SNMP, le service démon SNMP et le MIBS SNMP dans votre système Debian 9 local, lancez la commande suivante avec les privilèges root.

apt install snmp snmpd snmp-mibs-downloader

Installez également l'outil d'enregistrement de données standard de l'industrie RRDtool, qui est utilisé par Cacti pour afficher la fonctionnalité graphique.

apt install rrdtool

Ensuite, modifiez le fichier de configuration SNMP /etc/snmp/snmp.conf et commentez les "mibs" ligne en ajoutant un hashtag (#) devant la ligne comme décrit dans l'image ci-dessous.

Configurez également l'accès distant et localhost au démon SNMP en ouvrant le fichier snmpd.conf fichier  pour modifier, rechercher et mettre à jour les lignes ci-dessous comme suit :

nano /etc/snmp/snmpd.conf

Décommentez la ligne pour écouter les connexions sur toutes les interfaces

agentAddress udp:161,udp6:[::1]:161

Ajoutez les lignes suivantes pour autoriser la requête SNMP pour votre réseau local via snmp_string le mot de passe. Remplacez la chaîne de communauté SNMP snmp_string votre mot de passe et votre adresse CIDR réseau en conséquence.

rocommunity snmp_string localhost
rocommunity snmp_string 192.168.1.0/25

 

En option, vous pouvez également modifier les variables de contact et de localisation afin de fournir des informations sur votre serveur. Ces informations sont affichées dans la zone de notification Cacti lorsque vous vérifiez les détails de votre serveur. En outre, le nom d'hôte de votre système, la version du noyau et la disponibilité du système sont affichés dans la zone de notification de Cacti.

Pour modifier ces informations, éditez le sysLocation et sysContact lignes sous la section des informations système et ajoutez vos propres valeurs. Par défaut, les valeurs suivantes sont configurées pour sysLocation et sysContact .

sysLocation Sitting on the Dock of the Bay
sysContact Me <[email protected]>

Après avoir apporté les modifications appropriées à snmpd.conf fichier, enregistrez et fermez le fichier et redémarrez le démon snmp pour refléter les modifications en exécutant les commandes ci-dessous. Vérifiez ensuite l'état du démon snmpd et les ports détenus en état d'écoute.

systemctl restart snmpd.service
systemctl status snmpd.service
netstat -tulpn| grep snmp

Ouvrir le port du pare-feu pour SNMP :

ufw allow 161/udp

Afin de vérifier que le démon SNMP fonctionne comme prévu et récupère toutes les valeurs SNMP sous l'arborescence de la mémoire pour localhost, exécutez la commande ci-dessous.

snmpwalk -v 2c -c snmp_string localhost memory

Installer Cactus-Spine

Cacti-Spine remplace le poller cmd.php par défaut, écrit en C pour un temps d'exécution plus rapide. Afin de compiler et d'installer le pooler Cacti-Spine à partir des sources de Debian 9, exécutez d'abord la commande suivante afin d'installer toutes les dépendances requises dans le système.

apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-dev

Ensuite, téléchargez la dernière version de l'archive compressée Cacti-Spine tar avec wget , extrayez l'archive tarball et entrez le répertoire extrait de cacti-spine en exécutant les commandes suivantes.

wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz
cd cacti-spine-1.1.24/

Maintenant, compilez et installez l'utilitaire Cacti-Spine à partir des sources en exécutant les commandes ci-dessous.

./bootstrap
./configure
make
make install

Cacti-Spine sera installé dans /usr/local/spine/ chemin du système. Spine vous recommande de définir le bit SUID pour le binaire spine afin de prendre en charge les requêtes ping ICMP.

chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine

Vous devez également connecter Spine à la base de données de cactus en éditant le fichier de configuration avec comme indiqué dans l'extrait de fichier ci-dessous.

nano /usr/local/spine/etc/spine.conf

spine.conf exemple de dossier. Remplacez les informations d'identification en conséquence. Utilisez les mêmes identifiants de base de données que ceux configurés pour Cacti.

DB_Host localhost
DB_Database cacti
DB_User user_cacti
DB_Pass pass_cacti
DB_Port 3306
DB_PreG 0

Installer Cactus

Afin d'installer Cacti à partir de sources dans Debian 9, téléchargez et extrayez d'abord la dernière version de l'archive compressée Cacti tarball, puis copiez tous les fichiers extraits dans le chemin racine Web apache, en exécutant les commandes suivantes.

wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz
cp -rf cacti-1.1.24/* /var/www/html/

À l'étape suivante, ouvrez le fichier de configuration de cactus et mettez à jour les lignes suivantes pour refléter le nom d'utilisateur, le mot de passe, l'hôte et le chemin d'URL de la base de données MySQL cactus en conséquence, comme illustré dans l'exemple ci-dessous.

nano /var/www/html/include/config.php

  Cactus config.php exemple de fichier :

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti_user';
$database_password = 'cacti_pass';
$database_port     = '3306';
$database_ssl      = false;

Faites défiler vers le bas et modifiez la variable de chemin de "/cacti ” à “/

$url_path = '/';

Ensuite, vous devez remplir la base de données de cactus en chargeant le cacti.sql script situé dans l'emplacement racine du document de votre serveur Web et vérifiez les tables cacti mysql en exécutant les commandes ci-dessous.

mysql -u cacti_user cacti -p < /var/www/html/cacti.sql 
mysql -u cacti_user cacti -p -e 'show tables'

Enfin, avant de commencer à installer Cacti à partir de l'interface Web, exécutez les commandes ci-dessous afin de supprimer le fichier index.html par défaut installé par le serveur Web Apache, créez le fichier journal pour Cacti et autorisez l'utilisateur d'exécution Apache avec des autorisations d'écriture complètes sur le chemin d'installation de cacti. .

rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/

  Commencez à installer Cacti via l'interface Web en visitant l'adresse IP ou le nom de domaine de votre système à partir d'un navigateur et en ouvrant l'URL suivante.

http://192.168.1.14/installer

Au premier écran, cochez Accepter le contrat de licence GPL et cliquez sur le bouton Suivant pour continuer comme indiqué dans la capture d'écran ci-dessous.

Sur l'écran suivant, faites défiler vers le bas et vérifiez si toutes les exigences du système sont satisfaites par le programme d'installation et appuyez sur le bouton Suivant pour poursuivre le processus d'installation.

Ensuite, choisissez Nouveau serveur principal comme type d'installation et cliquez sur le bouton Suivant pour continuer.

Vérifiez maintenant si tous les emplacements et versions binaires critiques sont correctement détectés par le programme d'installation de cacti. En outre, vous devez mettre à jour le chemin binaire de Spine vers /usr/local/spine/bin/spine . Vous pouvez choisir le thème Classique et appuyer sur le bouton Suivant pour continuer.

Sur l'écran suivant, le programme d'installation vérifiera les autorisations du répertoire racine Web Apache afin de vérifier si le serveur Web est autorisé à effectuer des écritures sur le chemin d'installation de cacti. Si tous les chemins requis sont accessibles en écriture, cliquez sur le bouton Suivant pour continuer.

Sélectionnez tous les modèles dans la liste fournie et appuyez sur le bouton Terminer pour terminer l'installation.

Une fois le processus d'installation terminé, connectez-vous à l'interface Web de Cacti avec les informations d'identification par défaut suivantes et remplacez le mot de passe par défaut de l'administrateur par un nouveau mot de passe fort, comme illustré dans les captures d'écran suivantes.

Nom d'utilisateur :admin
Mot de passe :admin

Après vous être connecté à l'interface Web de Cacti, accédez à Console -> Configuration -> Paramètres -> Interrogateur et changez le type de poller de cmd.php à spine binaire, comme le montre l'image ci-dessous. Faites défiler vers le bas et cliquez sur Enregistrer bouton pour appliquer les modifications.

Accédez ensuite à Console -> Configuration -> Paramètres -> Chemins et mettez à jour Cacti-Spine et définissez le chemin du fichier de configuration sur le chemin suivant /usr/local/spine/etc/spine.conf et appuyez sur le bouton Enregistrer pour appliquer la configuration, comme illustré dans l'image ci-dessous.

Pour ajouter un nouvel appareil à surveiller via SNMP, allez dans Console -> Gestion -> Appareils et appuyez sur + icône, comme illustré dans l'image ci-dessous. À des fins de démonstration, nous ajouterons la machine localhost à surveiller par Cacti via le protocole SNMP.

Pour le périphérique Linux nouvellement ajouté qui sera surveillé via SNMP, ajoutez une description du périphérique, le nom d'hôte, le FQDN ou l'adresse IP du périphérique surveillé et sélectionnez Machine Linux locale comme modèle d'appareil. Dans les options SNMP, sélectionnez la version SNMP appropriée (dans ce cas, nous utiliserons la version 2) et écrivez la chaîne de communauté SNMP de votre appareil, comme décrit dans les images ci-dessous. Si le port SNMP n'a pas été modifié, laissez la valeur du port par défaut et, lorsque vous avez terminé, faites défiler vers le bas et appuyez sur le bouton Créer pour ajouter l'appareil à la base de données Cacti afin d'être surveillé.

Une fois l'appareil ajouté à la base de données Cacti, un résumé SNMP s'affichera en haut de la page de l'appareil au cas où l'appareil aurait été correctement détecté et interrogé. Afin de créer des graphiques SNMP RRDTool pour cet appareil, cliquez sur Créer des graphiques pour cet appareil lien, cochez les modèles de graphique que vous souhaitez examiner plus en détail et appuyez sur le bouton Créer pour passer à l'écran suivant, puis appuyez à nouveau sur le bouton Créer pour terminer, comme illustré dans les images suivantes.

Pour visualiser les graphiques, accédez à Console -> Gestion -> Périphériques, cochez le périphérique sur lequel vous souhaitez effectuer une action supplémentaire et sélectionnez Placer sur un arbre (arborescence par défaut) dans le menu d'action.

Sur le nouvel écran, laissez la branche de destination par défaut et appuyez sur le bouton Continuer pour terminer le processus, comme décrit dans l'image ci-dessous.

Enfin, pour que Cacti poller commence à collecter des données sur les appareils surveillés, vous devez ajouter une nouvelle tâche cron qui interrogera les appareils via SNMP toutes les 5 minutes. Ajoutez la tâche planifiée qui sera détenue et exécutée par l'utilisateur d'exécution Apache en exécutant la commande ci-dessous.

crontab –u www-data –e

Ligne de travail Crontab :

*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1

Après avoir ajouté le cronjob du pooler, attendez environ une demi-heure pour donner à Cacti le temps de collecter des données, puis accédez à l'onglet Graphiques de l'interface Web de Cacti. Développez l'arborescence par défaut et les graphiques collectés à partir de votre machine surveillée devraient s'afficher comme illustré dans la capture d'écran ci-dessous.

Pour l'instant, l'interface Cacti est accessible depuis les navigateurs des clients de manière non sécurisée via le protocole HTTP. Toutes les informations sensibles sur vos appareils, ainsi que les identifiants de connexion cactus, sont envoyés en texte brut. Afin de chiffrer le trafic entre les navigateurs du client et l'interface Web de Cacti, lancez les commandes suivantes avec les privilèges root afin d'activer la configuration Apache SSL.

a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2

Ensuite, accédez à l'interface Web de Cacti via le protocole HTTPS. Étant donné que le serveur Web Apache utilise un certificat auto-signé pour chiffrer la connexion, un message d'erreur doit s'afficher dans votre navigateur. Acceptez l'erreur et vous pouvez maintenant accéder en toute sécurité à l'interface Web de Cacti, comme indiqué dans la capture d'écran suivante.

C'est tout! Vous avez installé et configuré avec succès Cacti à partir des sources dans Debian 9. Pour d'autres paramètres personnalisés concernant Cacti, visitez les pages de documentation au lien suivant https://docs.cacti.net/manual:100


Debian
  1. Comment installer l'outil de surveillance Nagios 4.3.x sur Debian 9

  2. Comment installer l'outil de surveillance Icinga 2 sur Debian 9.2

  3. Comment installer PHP 7.4 / 7.3 / 7.2 / 7.1 sur Debian 10 / Debian 9

  4. Comment installer l'outil de surveillance réseau Cacti sur un VPS Centos

  5. Comment installer PHP 7.3 sur Debian 9

Comment installer Cacti sur Debian 10 / Debian 9 - Un outil de surveillance

Comment installer Cacti sur Debian 11

Comment installer Cacti surveillant Debian 11 Bullseye

Comment installer Cacti Monitoring sur Debian 9

Comment installer Cacti Monitoring sur Debian 10

Comment installer l'outil de surveillance Zabbix sur Debian 11/10