>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
PHP

Die legendären Cacti und die Überwachung der Netzwerkinfrastruktur

Wenn Sie vor etwa fünfzehn Jahren in der Systemadministration tätig waren, erinnern Sie sich wahrscheinlich an diese unverwechselbaren grünen Traffic-Graphen. Die Jahre vergingen. Prometheus, Grafana, VictoriaMetrics und eine Reihe anderer Systeme entstanden. Nichtsdestotrotz lebt das klassische Cacti-Projekt noch immer. Die Entwickler veröffentlichen regelmäßig Commits, passen den Code für PHP 8 an, entwickeln eine neue auf C basierende Polling-Engine und bereiten die Veröffentlichung des 1.3-Branches vor.

Warum bleibt ein Tool aus den 2000er-Jahren relevant? Die Antwort ist einfach: Netzwerkgeräte ändern sich nicht so schnell wie Frontend- oder Cloud-Dienste. Switches, Router, USV-Anlagen und Server-Racks stellen ihre Metriken nach wie vor über das SNMP-Protokoll bereit.

Aus welchen Komponenten besteht die Plattform

Cacti fungiert als visuelle Schicht über RRDtools Round-Robin-Datenbank. Im Gegensatz zu herkömmlichen Time-Series-Datenbanken wächst RRDtool nicht unbegrenzt. Die Dateigröße wird bei der Erstellung festgelegt. Alte Daten werden automatisch gemittelt und komprimiert, entsprechend der festgelegten Regeln.

Das Projekt besteht aus drei Hauptkomponenten:

  • PHP-Webinterface zur Systemkonfiguration und Graph-Anzeige
  • Relationale MySQL- oder MariaDB-Datenbank zur Speicherung von Templates und Benutzern
  • Device-Polling-Subsystem, das zeitgesteuert ausgeführt wird

Metriken werden alle paar Minuten erfasst. Sie können den grundlegenden PHP-Poller verwenden oder Spine anschließen. Die Spine-Engine ist in C geschrieben und läuft dank Multithreading deutlich schneller. Für ein Netzwerk mit tausend Geräten ist dies die einzig angemessene Lösung, da der Prozess andernfalls nicht rechtzeitig abgeschlossen würde.

Funktionsumfang der Plattform

Für die Arbeit mit Hardware werden Templates erstellt. Sie müssen nicht manuell in der Vendor-Dokumentation nach den richtigen OIDs suchen. Sie nehmen ein fertiges Template für Cisco, Juniper, MikroTik oder D-Link, binden es an ein Gerät an und erhalten einen fertigen Satz an Graphen.

Das Netzwerk-Scanning läuft zeitgesteuert. Neues Gerät gefunden? Das System erkennt es anhand der SNMP-Antworten und wendet die entsprechende Automatisierungsregel an.

Die rollenbasierte Zugriffskontrolle ermöglicht die Zusammenarbeit im Team. Sie können einem Bereitschaftsingenieur Zugriff auf Graphen für ein bestimmtes Rack gewähren und andere Bereiche sperren.

Die Graphen im Interface sind interaktiv. Sie können den gewünschten Zeitraum mit der Maus auswählen, Skalen wechseln, Daten in Echtzeit anzeigen und Metriken im CSV-Format exportieren.

Die Unterstützung für IPv6- und SNMPv3-Protokolle eröffnet den Weg zur Überwachung moderner Infrastruktur bei gleichzeitiger Erfüllung der Sicherheitsanforderungen.

Systemanforderungen und Kompilierung aus dem Quellcode

Zur Ausführung benötigen Sie einen Webserver mit PHP 8.1-Unterstützung. MariaDB Version 10.2 oder höher (oder MySQL 8.0 oder höher). Von den Systemprogrammen benötigen Sie RRDtool Version 1.8 und das Net-SNMP-Paket.

Die Projektabhängigkeiten werden mit Composer bereitgestellt:

git clone https://github.com/Cacti/cacti.git
cd cacti
composer install

Bei der Arbeit mit dem Entwicklungs-Branch develop müssen die Datenbanktabellen regelmäßig aktualisiert werden. Dafür enthält das Projekt Kommandozeilen-Tools:

sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`

Die Überprüfung der Tabellenstrukturintegrität nach jeder Änderung wird durch das integrierte Audit unterstützt:

php cli/audit_database.php --report

Wo es in der Praxis eingesetzt wird

Die Überwachung von Netzwerkkanälen bleibt die Hauptnische des Projekts. Wenn Sie die Port-Auslastung auf hundert Switches verfolgen müssen, kann das Starten eines schwergewichtigen Stacks aus Scrapern und Exporters überdimensioniert sein. Das System wird in einer halben Stunde bereitgestellt und verbraucht minimale Ressourcen.

Die Erfassung von technischen Systemen in Rechenzentren ist ein weiteres häufiges Szenario. Überwachung der Temperatur in Racks, USV-Phasenlasten und Interface-Fehler. Das Tool wurde über Jahrzehnte genau für solche Aufgaben verfeinert.

Die Architektur unterstützt Plugins. Wenn die Standardfunktionen nicht ausreichen, können Sie Module zur Benachrichtigung oder zum Erstellen geografischer Netzwerkkarten installieren.

Cacti versucht nicht, Prometheus in der Welt der Container und dynamischen Pods zu konkurrieren. Es ist ein Tool für die gute alte physische Infrastruktur.

Wenn Sie eine verständliche und anspruchslose Überwachung von Netzwerkgeräten bereitstellen müssen, bleibt Cacti nach wie vor eine praktische Wahl. Es spart Speicher, arbeitet jahrelang stabil und erfordert nicht ständiges Anpassen von Konfigurationsdateien.

Ähnliche Projekte