
Cacti ist eine quelloffene Plattform zur Netzwerküberwachung und Diagrammerstellung, die auf RRDtool basiert.
Sie bietet ein skalierbares Framework zum Sammeln, Speichern und Visualisieren von Zeitreihendaten von Netzwerkgeräten, Servern und Anwendungen.
Zu den Kernfunktionen gehören:
Cacti pflegt zwei primäre Zweige:
| Zweig | Zweck |
|---|---|
1.2.x | Stabile, langlebige Release-Serie |
develop | Aktive Entwicklung in Richtung Cacti 1.3.x |
Die neueste veröffentlichte Version finden Sie unter GitHub Releases.
Mindestens unterstützte Abhängigkeiten je Zweig:
| Abhängigkeit | Cacti 1.2.x | Cacti develop (1.3.x) |
|---|---|---|
| MariaDB | 10.5+ | 10.11+ |
| MySQL | 8.0+ | 8.4+ |
| PHP | 8.2+ | 8.3+ |
| RRDtool | 1.7+ | 1.8+ |
| Net-SNMP | 5.9+ | 5.9+ |
Hinweise:
php-snmp wird nun vollständig unterstützt. Wenn sowohl php-snmp als auch die Net-SNMP-Binärdateien verfügbar sind, wird standardmäßig php-snmp verwendet; um die Net-SNMP-Binärdateien zu erzwingen, setzen Sie $php_snmp_support = false; in include/config.php.Hinweise zu Betriebssystemen:
1.2.x: RHEL/Rocky/Alma 8+ (oder gleichwertig) ist eine gängige Basis.1.3.x: RHEL/Rocky/Alma 9+ oder CentOS Stream 9+ wird für moderne PHP-Paketierung bevorzugt.Klonen Sie das Repository:
git clone https://github.com/Cacti/cacti.git
cd cacti
Abhängigkeitsverwaltung:
1.2.x als auch auf develop installieren Sie die Abhängigkeiten mit Composer, bevor Sie Cacti bereitstellen. Composer-verwaltete Pakete unter include/vendor werden generiert und absichtlich nicht eingecheckt; die übrigen Legacy-Bibliotheken in diesem Verzeichnis werden nicht von Composer verwaltet und verbleiben im Repository.develop verwendet composer install die eingecheckte Lock-Datei, die gegen die PHP-8.3-Mindestversion von Cacti aufgelöst wird.composer update nur im Rahmen einer beabsichtigten Abhängigkeitsaktualisierung und committen Sie die daraus resultierende Aktualisierung von composer.lock.include/vendor aus der Lock-Datei mit composer install --no-dev bauen und den tatsächlichen Build-Host mit composer check-platform-reqs --no-dev verifizieren.release/* erzeugen über den Release-Artifact-Workflow ein deterministisches Archiv, eine SHA-256-Prüfsumme, ein CycloneDX-SBOM und eine GitHub-Provenienz-Attestierung.Abhängigkeiten installieren:
composer install
Windows-Benutzer benötigen möglicherweise:
composer install --ignore-platform-req=ext-pcntl --ignore-platform-req=ext-posix
Für einen Quellcode-Checkout installieren Sie die gesperrten Browser-Abhängigkeiten, bevor Sie den Webserver konfigurieren. Node.js ist für diesen Build erforderlich; Release-Archive enthalten bereits die generierten Assets. Führen Sie diesen Befehl als Eigentümer der Cacti-Dateien aus:
npm ci
Konfigurieren Sie anschließend Ihre Datenbank und Ihren Webserver und schließen Sie die Einrichtung anhand der offiziellen Dokumentation ab:
https://github.com/Cacti/documentation
Beim Ausführen aus dem Quellcode (insbesondere develop) können nach dem Abrufen von Änderungen Schema-Aktualisierungen erforderlich sein.
Aktualisieren Sie das Datenbankschema:
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
Falls erforderlich, erzwingen Sie ein erneutes Upgrade von einer früheren Version:
php -q cli/upgrade_database.php --forcever=<older_version>
Schema-Konsistenz prüfen:
php cli/audit_database.php --report
Cacti erfasst Daten über Datenquellen, die Folgendes verwenden können:
Polling-Engines:
| Poller | Beschreibung |
|---|---|
| PHP Poller | Integrierte Polling-Engine |
| Spine | Hochleistungs-Poller auf C-Basis |
Spine unterstützt SNMPv1/v2 und SNMPv3 mit IPv6, mit einiger erweiterter Protokollunterstützung, abhängig davon, wie Net-SNMP auf Ihrer Plattform kompiliert wurde.
Die offizielle Dokumentation wird in einem separaten Repository gepflegt:
https://github.com/Cacti/documentation
Installieren Sie die gesperrten Composer-Abhängigkeiten, bevor Sie PHP-Verträge ausführen. Vom Repository-Stammverzeichnis aus:
composer install
include/vendor/bin/pest --configuration=tests/phpunit.xml --testsuite=Unit,Integration
composer run-script phpstan -- --memory-limit=2G
Abdeckungsberichte für die am 14. Oktober 2026 geprüften PRs messen geänderte ausführbare First-Party-Anweisungen. Anwendbare Änderungen überschreiten 80 %; dies ist keine projektweite Abdeckung. Reine PHP-Formatierungsänderungen werden auf äquivalente Syntaxbäume geprüft. Dokumentation, Workflow-Definitionen, Lockfiles und generierte Vendor-Bundles liegen außerhalb dieser Ausführungsmetrik. Der Validierungs-Snapshot zeichnet die gemessenen Zählungen und den Umfang auf.
Führe das Wegwerf-Browser- und SQL/RRD-Profil mit installiertem Docker und mise aus:
bash tests/performance/profile.sh