Installation Cacti · 19 min read · Nov 03, 2025
Comment installer l'outil de surveillance SNMP Cacti sur Debian 9
Ce tutoriel vous montrera comment installer et configurer l’outil de surveillance réseau Cacti à partir de la source pour vous assurer d’obtenir la dernière version sur Debian 9, nom de code Stretch.
Cacti est un outil de surveillance réseau basé sur le web, entièrement open source, conçu pour afficher des graphiques réseau et système via RRDtool. Il utilise le protocole SNMP (Simple Network Management Protocol) pour collecter et surveiller le trafic réseau à partir de dispositifs réseau, tels que des commutateurs, des routeurs, des serveurs Linux, Unix et Windows ou d’autres types de dispositifs basés sur le réseau qui prennent en charge SNMP.
Exigences
- Installation minimale de Debian 9 sur une machine bare-metal ou sur un serveur privé virtuel.
- Une adresse IP statique configurée pour l’une de vos cartes d’interface réseau 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 l’édition avec des 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.listExemple 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*
Après avoir terminé l’édition du fichier, enregistrez et fermez le fichier et mettez à jour vos dépôts système et vos paquets logiciels pour incorporer les nouveaux paquets, en émettant les commandes ci-dessous.
apt updateapt upgrade
Ensuite, lancez une nouvelle commande afin d’installer quelques utilitaires nécessaires qui seront utilisés pour gérer davantage votre système depuis la ligne de commande.
apt install wget patch unzip zip bash-completionCacti est un outil de surveillance basé sur le web principalement écrit en PHP, un langage de programmation côté serveur. Afin d’exécuter les scripts de fichiers PHP de Cacti, un serveur web, tel qu’Apache HTTP server, et un interpréteur PHP doivent être installés et fonctionnels dans le système. Pour installer le serveur web Apache et l’interpréteur PHP ainsi que tous les modules PHP requis nécessaires au bon fonctionnement de Cacti, émettez 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
Après l’installation d’Apache et de PHP, testez si le serveur web est opérationnel et écoute les connexions réseau sur le port 80 en émettant la commande suivante avec des privilèges root.
netstat –tlpnDans le cas où l’utilitaire réseau netstat n’est pas installé par défaut sur votre système Debian, exécutez la commande ci-dessous pour l’installer.
apt install net-toolsEn inspectant la sortie de la commande netstat, vous pouvez voir que le démon apache écoute les connexions réseau entrantes sur le port 80.

Dans le cas où vous avez un pare-feu activé sur votre système, tel que l’application de pare-feu UFW, vous devez ajouter une nouvelle règle pour permettre au trafic HTTP de passer à travers le pare-feu en émettant la commande suivante.
ufw allow WWWou
ufw allow 80/tcpEnfin, 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 les commandes ‘ifconfig‘ ou ‘ip a‘. Mon IP dans cette configuration est : http://192.168.1.14
Dans l’étape suivante, nous devons apporter quelques modifications supplémentaires au fichier de configuration PHP par défaut afin de garantir que la variable file_uploads est activée et que le paramètre de timezone PHP est correctement configuré et correspond à votre emplacement physique. Ouvrez le fichier /etc/php/7.0/apache2/php.ini pour l’édition et assurez-vous que les lignes suivantes sont configurées comme suit.
*file_uploads = On ****date.timezone = Europe/London*
Remplacez la variable de fuseau horaire en fonction de votre fuseau horaire physique en consultant la liste des fuseaux horaires fournie par la documentation PHP à l’adresse suivante http://php.net/manual/en/timezones.php
Après avoir effectué les modifications requises, créez un fichier d’informations PHP et redémarrez le démon apache pour appliquer les modifications en émettant les commandes suivantes.
echo ''| tee /var/www/html/info.phpsystemctl restart apache2Vérifiez si le fuseau horaire PHP a été correctement configuré en visitant le script d’informations PHP depuis un navigateur à l’URL suivante (comme illustré dans l’image ci-dessous). Faites défiler vers le bas jusqu’à la configuration de la date pour vérifier le paramètre de fuseau horaire PHP.
L’outil de surveillance Cacti stocke les configurations et les données collectées dans une base de données RDBMS. Dans ce tutoriel, nous allons configurer Cacti avec un backend de base de données MariaDB. Émettez la commande ci-dessous pour installer le serveur de 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 fonctionne et écoute les connexions réseau sur localhost, port 3306, en exécutant la commande netstat.
netstat –tlpn | grep mysqlEnsuite, connectez-vous à la console MySQL et sécurisez le compte root de MariaDB en émettant les commandes suivantes.
mysql -h localhostuse mysql;
update user set plugin='' where user='root';
flush privileges;
exit
Dans l’étape suivante, sécurisez MariaDB en exécutant le script mysql_secure_installation fourni par le package d’installation du dépôt 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 émettant 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 du script ci-dessous comme guide.
sudo mysql_secure_installationNOTE : L'EXÉCUTION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUS LES SERVEURS MariaDB EN UTILISATION EN PRODUCTION ! VEUILLEZ LIRE CHAQUE ÉTAPE ATTENTIVEMENT ! Pour se connecter à MariaDB et le sécuriser, nous aurons besoin du mot de passe actuel pour l'utilisateur root. Si vous venez d'installer MariaDB et que vous n'avez pas encore défini le mot de passe root, le mot de passe sera vide, donc vous devez simplement appuyer sur Entrée ici. Entrez le mot de passe actuel pour root (appuyez sur Entrée pour aucun) :OK, mot de passe utilisé avec succès, passons à la suite... Définir le mot de passe root garantit que personne ne peut se connecter à l'utilisateur root de MariaDB sans l'autorisation appropriée. Vous avez déjà un mot de passe root défini, vous pouvez donc répondre en toute sécurité 'n'. Changer le mot de passe root ? [Y/n] yNouveau mot de passe :Ressaisir le nouveau mot de passe :Mot de passe mis à jour avec succès !Rechargement des tables de privilèges..... Succès ! Par défaut, une installation de MariaDB a un utilisateur anonyme, permettant à quiconque de se connecter à MariaDB sans avoir à avoir un compte utilisateur créé pour eux. Cela est uniquement destiné à des fins de test et pour faciliter un peu l'installation. Vous devriez les supprimer avant de passer à un environnement de production. Supprimer les utilisateurs anonymes ? [Y/n] y... Succès ! Normalement, root ne devrait être autorisé à se connecter que depuis 'localhost'. Cela garantit que quelqu'un ne peut pas deviner le mot de passe root depuis le réseau. Interdire la connexion root à distance ? [Y/n] y... Succès ! Par défaut, MariaDB est livré avec une base de données nommée 'test' à laquelle quiconque peut accéder. Cela est également destiné uniquement à des fins de test et doit être supprimé avant de passer à un environnement de production. Supprimer la base de données de test et l'accès à celle-ci ? [Y/n] y- Suppression de la base de données de test...... Succès !- Suppression des privilèges sur la base de données de test...... Succès ! Recharger les tables de privilèges garantira que toutes les modifications effectuées jusqu'à présent prendront effet immédiatement. Recharger les tables de privilèges maintenant ? [Y/n] y... Succès !Nettoyage... Tout est fait ! Si vous avez complété toutes les étapes ci-dessus, votre installation de MariaDB devrait maintenant être sécurisée. Merci d'utiliser MariaDB !Pour tester la sécurité de MariaDB, essayez de vous connecter à la base de données depuis la console sans mot de passe root. L’accès à la base de données devrait être refusé si aucun mot de passe n’est fourni pour le compte root. Si le mot de passe est fourni, le processus de connexion devrait être accordé à la console MySQL, comme indiqué dans la capture d’écran ci-dessous.
mysql -h localhost -u rootmysql -h localhost -u root –p
Tout en étant connecté à la base de données MariaDB, allez-y et créez une base de données pour l’installation de Cacti et créez l’utilisateur qui sera utilisé pour gérer la base de données cacti, en émettant les commandes suivantes. Remplacez l’utilisateur de la base de données cacti et le mot de passe en conséquence.
create database cacti;
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';
flush privileges;
exitDe plus, accordez des permissions de sélection à l’utilisateur de la base de données cacti pour le fuseau horaire MySQL en émettant les commandes ci-dessous. C’est 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.sqlmysql -u root -p -e 'grant select on mysql.time_zone_name to cacti_user@localhost'
Dans 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.cnfAjoutez les lignes suivantes en bas du fichier 50-server.cnf :
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
```

Pour appliquer toutes les modifications que nous avons effectuées jusqu'à présent, redémarrez les démons MySQL et Apache et vérifiez que les démons fonctionnent en émettant 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 des données et des statistiques sur les dispositifs. Pour installer le programme SNMP, le service de démon SNMP et les MIB SNMP dans votre système Debian 9 local, émettez la commande suivante avec des privilèges root.
apt install snmp snmpd snmp-mibs-downloader

De plus, installez l'outil de journalisation de données standard de l'industrie RRDtool, qui est utilisé par Cacti pour afficher la fonctionnalité de graphisme.
apt install rrdtool

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

Configurez également l'accès distant et localhost du démon SNMP, en ouvrant le fichier snmpd.conf pour l'édition et en recherchant et mettant à 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 permettre la requête SNMP pour votre réseau local via le mot de passe *snmp_string*. Remplacez le mot de passe de la chaîne de communauté SNMP *snmp_string* 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 la variable de contact et de localisation afin de fournir des informations sur votre serveur. Ces informations sont affichées dans la zone de notification de Cacti lorsque vous vérifiez les détails de votre serveur. De plus, le nom d'hôte de votre système, la version du noyau et le temps de fonctionnement du système sont affichés dans la zone de notification de Cacti.
Pour modifier ces informations, éditez les lignes sysLocation et sysContact sous la section d'informations système et ajoutez vos propres valeurs. Par défaut, les valeurs suivantes sont configurées pour sysLocation et sysContact.

sysLocation Assis sur le quai de la baie
sysContact Moi <[email protected]>
Après avoir apporté les modifications appropriées au fichiersnmpd.conf, enregistrez et fermez le fichier et redémarrez le démon snmp pour refléter les changements en émettant les commandes ci-dessous. Ensuite, vérifiez l'état du démon snmpd et les ports possédés dans l'état d'écoute.
systemctl restart snmpd.service
systemctl status snmpd.service
netstat -tulpn| grep snmp

Ouvrez le port du pare-feu pour SNMP :
ufw allow 161/udp
Pour vérifier que le démon SNMP fonctionne comme prévu et récupère toutes les valeurs SNMP sous l'arbre de mémoire pour localhost, exécutez la commande ci-dessous.
snmpwalk -v 2c -c snmp_string localhost memory

## Installer Cacti-Spine
Cacti-Spine est un remplacement pour 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 de sources dans Debian 9, exécutez d'abord la commande suivante pour 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 tar compressée de Cacti-Spine avec l'utilitairewget, extrayez l'archive tarball et entrez le répertoire extrait de cacti-spine en émettant 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 de sources en émettant les commandes ci-dessous.
./bootstrap
./configure
make
make install
Cacti-Spine sera installé dans le chemin système/usr/local/spine/. Spine recommande de définir le bit SUID pour le binaire spine afin de prendre en charge les requêtes ICMP ping.
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 cacti en éditant le fichier de configuration comme indiqué dans l'extrait de fichier ci-dessous.
nano /usr/local/spine/etc/spine.conf
Exemple de fichier spine.conf**. Remplacez les identifiants 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 Cacti
Pour installer Cacti à partir de sources dans Debian 9, téléchargez d'abord et extrayez la dernière version de l'archive tar compressée de Cacti, puis copiez tous les fichiers extraits dans le chemin racine web d'apache, en émettant 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/

Dans l'étape suivante, ouvrez le fichier de configuration de cacti et mettez à jour les lignes suivantes pour refléter le nom d'utilisateur de la base de données cacti MySQL, le mot de passe, l'hôte et le chemin URL en conséquence, comme illustré dans l'exemple ci-dessous.
nano /var/www/html/include/config.php
**** Exemple de fichier *config.php* de Cacti :
$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 changez la variable de chemin de "/cacti" à "/"
$url_path = ‘/‘;


Ensuite, vous devez peupler la base de données cacti en chargeant le script cacti.sql situé dans votre emplacement racine de serveur web et vérifiez les tables mysql de cacti en émettant 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 via l'interface web, exécutez les commandes ci-dessous pour supprimer le fichier index.html par défaut installé par le serveur web Apache, créer le fichier journal pour Cacti et permettre à l'utilisateur d'exécution d'Apache d'avoir des permissions 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 de votre système ou le nom de domaine depuis un navigateur et en ouvrant l'URL suivante.
http://192.168.1.14/install
À l'écran initial, cochez Accepter l'accord de licence GPL et cliquez sur le bouton Suivant pour continuer comme indiqué dans la capture d'écran ci-dessous.

À l'écran suivant, faites défiler vers le bas et vérifiez si toutes les exigences système sont passées par l'installateur et cliquez sur le bouton Suivant pour avancer dans le processus d'installation.



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

Maintenant, vérifiez si tous les emplacements binaires critiques et les versions sont correctement détectés par l'installateur de cacti. Vous devez également mettre à jour le chemin binaire de Spine vers /usr/local/spine/bin/spine. Vous pouvez choisir le thème classique et cliquer sur le bouton Suivant pour continuer.

À l'écran suivant, l'installateur vérifiera les permissions du répertoire racine web d'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 de la liste fournie et cliquez sur le bouton Terminer pour compléter l'installation.

Après avoir terminé le processus d'installation, connectez-vous à l'interface web de Cacti avec les identifiants par défaut suivants 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, naviguez vers Console -> Configuration -> Paramètres -> Poller et changez le type de poller de cmd.php à spine binaire, comme indiqué dans l'image ci-dessous. Faites défiler vers le bas et cliquez sur le bouton Enregistrer pour appliquer les modifications.

Ensuite, naviguez vers 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 cliquez 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 cliquez sur l'icône +, comme illustré dans l'image ci-dessous. À des fins de démonstration, nous allons ajouter la machine localhost à surveiller par Cacti via le protocole SNMP.

Pour le nouvel appareil Linux ajouté qui sera surveillé via SNMP, ajoutez une description pour l'appareil, le nom d'hôte, le FQDN ou l'adresse IP de l'appareil 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 votre chaîne de communauté SNMP pour l'appareil, comme décrit dans les images ci-dessous. Dans le cas où le port SNMP n'a pas été changé, laissez la valeur du port par défaut et, lorsque vous avez terminé, faites défiler vers le bas et cliquez sur le bouton Créer pour ajouter l'appareil à la base de données Cacti afin qu'il soit surveillé.


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



Pour visualiser les graphiques, naviguez vers Console -> Gestion -> Appareils, cochez l'appareil sur lequel vous souhaitez effectuer une action et sélectionnez Placer sur un arbre (Arbre par défaut) dans le menu d'action.

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

Enfin, pour que le poller Cacti commence à collecter des données sur les appareils surveillés, vous devez ajouter un nouveau travail cron qui interrogera les appareils via SNMP toutes les 5 minutes. Ajoutez le travail planifié pour être possédé et exécuté par l'utilisateur d'exécution d'Apache en émettant 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 poller, attendez environ une demi-heure pour donner à Cacti le temps de rassembler des données, puis naviguez vers l'onglet Graphiques dans l'interface web de Cacti. Développez l'arbre par défaut et les graphiques collectés de votre machine surveillée devraient s'afficher comme illustré dans la capture d'écran ci-dessous.

Pour l'instant, l'interface Cacti peut être accessible depuis les navigateurs des clients de manière non sécurisée via le protocole HTTP. Toutes les informations sensibles concernant vos appareils, ainsi que les identifiants de connexion cacti, sont envoyées en texte clair. Afin de chiffrer le trafic entre les navigateurs des clients et l'interface web de Cacti, émettez les commandes suivantes avec des privilèges root pour activer la configuration SSL d'Apache.
a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2
Ensuite, naviguez vers l'interface web de Cacti via le protocole HTTPS. Comme le serveur web Apache utilise un certificat auto-signé pour chiffrer la connexion, un message d'erreur devrait 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 réussi à installer et configurer Cacti à partir de sources dans Debian 9. Pour d'autres paramètres personnalisés concernant Cacti, visitez les pages de documentation à l'adresse suivante https://docs.cacti.net/manual:100Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.