Cacti, le légendaire outil de surveillance de l'infrastructure réseau
Si vous avez travaillé dans l'administration système il y a une quinzaine d'années, vous vous souvenez probablement de ces graphiques de trafic verts caractéristiques. Les années ont passé. Prometheus, Grafana, VictoriaMetrics et toute une série d'autres systèmes ont émergé. Pourtant, le projet Cacti classique reste vivant. Les développeurs publient régulièrement des commits, adaptent le code pour PHP 8, développent un nouveau moteur de polling en C et préparent la sortie de la branche 1.3.
Pourquoi un outil des années 2000 reste-t-il à flot ? La réponse est simple : les équipements réseau n'évoluent pas aussi rapidement que les services frontend ou cloud. Les commutateurs, les routeurs, les onduleurs et les baies de serveurs exposent toujours leurs métriques via le protocole SNMP.
Composition de la plateforme
Cacti fonctionne comme une couche de visualisation au-dessus de la base de données round-robin de RRDtool. Contrairement aux bases de données séries temporelles conventionnelles, RRDtool ne grossit pas indéfiniment. La taille du fichier est fixe dès sa création. Les anciennes données sont automatiquement moyennées et compressées selon des règles prédéfinies.
Le projet se compose de trois parties principales :
- Une interface web PHP pour la configuration du système et la visualisation des graphiques
- Une base de données relationnelle MySQL ou MariaDB pour stocker les modèles et les utilisateurs
- Un sous-système de polling des appareils fonctionnant selon un planning
Les métriques sont collectées toutes les quelques minutes. Vous pouvez utiliser le poller PHP de base ou connecter Spine. Le moteur Spine est écrit en C et fonctionne beaucoup plus rapidement grâce au multithreading. Pour un réseau de mille appareils, c'est la seule solution adaptée, sinon le processus ne se terminera tout simplement pas à temps.
Fonctionnalités de la plateforme
Des modèles sont créés pour travailler avec le matériel. Vous n'avez pas besoin de rechercher manuellement les bons OID dans la documentation des fournisseurs. Vous prenez un modèle prêt à l'emploi pour Cisco, Juniper, MikroTik ou D-Link, vous l'attachez à un appareil et vous obtenez un ensemble prêt de graphiques.
Le balayage du réseau s'exécute selon un planning. Un nouvel appareil détecté ? Le système le reconnaît par les réponses SNMP et applique la règle d'automatisation appropriée.
Le contrôle d'accès basé sur les rôles est prévu pour la collaboration en équipe. Vous pouvez donner à un ingénieur d'astreinte accès aux graphiques d'un rack spécifique, en bloquant les autres sections.
Les graphiques dans l'interface sont interactifs. Vous pouvez sélectionner l'intervalle de temps souhaité avec la souris, changer les échelles, visualiser les données en temps réel et exporter les métriques au format CSV.
La prise en charge des protocoles IPv6 et SNMPv3 ouvre la voie à la surveillance de l'infrastructure moderne tout en répondant aux exigences de sécurité.
Configuration requise et compilation depuis les sources
Pour fonctionner, vous aurez besoin d'un serveur web avec support PHP 8.1. MariaDB version 10.2 ou supérieure (ou MySQL 8.0 ou supérieure). Parmi les utilitaires système, vous avez besoin de RRDtool version 1.8 et du package Net-SNMP.
Les dépendances du projet sont déployées à l'aide de Composer :
git clone https://github.com/Cacti/cacti.git
cd cacti
composer install
Lors du travail avec la branche de développement develop, les tables de la base de données doivent être régulièrement mises à jour. Pour cela, le projet inclut des utilitaires en ligne de commande :
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
La vérification de l'intégrité de la structure des tables après chaque modification est assurée par l'audit intégré :
php cli/audit_database.php --report
Où utiliser en pratique
La surveillance des canaux réseau reste la niche principale du projet. Lorsque vous devez suivre l'utilisation des ports sur une centaines de commutateurs, déployer une pile lourde de scrapers et d'exportateurs peut être excessif. Le système se déploie en une demi-heure et consomme un minimum de ressources.
La comptabilité des systèmes d'ingénierie dans les centres de données est un autre scénario courant. Surveiller la température dans les baies, les charges de phase des onduleurs et les erreurs d'interface. L'outil a été perfectionné pendant des décennies précisément pour ces tâches.
L'architecture prend en charge les plugins. Si les fonctionnalités standard ne suffisent pas, vous pouvez installer des modules pour envoyer des notifications ou construire des cartes géographiques du réseau.
Cacti ne cherche pas à concurrencer Prometheus dans le monde des conteneurs et des pods dynamiques. C'est un outil pour la bonne vieille infrastructure physique.
Si vous avez besoin de déployer une surveillance compréhensible et peu exigeante des équipements réseau, Cacti reste un choix pratique. Il économise la mémoire, fonctionne de manière stable pendant des années et ne nécessite pas de corrections constantes des fichiers de configuration.
Projets similaires