>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
PHP

De legendarische Cacti en netwerkinfrastructuur-monitoring

Als u ongeveer vijftien jaar geleden in de systeembeheer werkte, herinnert u zich waarschijnlijk die kenmerkende groene verkeersgrafieken. De jaren verstreken. Prometheus, Grafana, VictoriaMetrics en tal van andere systemen verschenen. Toch is het klassieke Cacti-project nog steeds levend. Ontwikkelaars pushen regelmatig commits, passen de code aan voor PHP 8, ontwikkelen een nieuwe op C gebaseerde polling-engine en bereiden de 1.3-branchrelease voor.

Waarom blijft een tool uit de jaren 2000 drijven? Het antwoord is simpel: netwerkapparatuur verandert niet zo snel als frontend of clouddiensten. Switches, routers, UPS-units en serverracks stellen nog steeds metrieken bloot via het SNMP-protocol.

Waaruit bestaat het platform

Cacti fungeert als een visuele laag boven op RRDtool's round-robin database. In tegenstelling tot conventionele time-series databases groeit RRDtool niet onbeperkt. De bestandsgrootte wordt vastgelegd bij het aanmaken. Oude gegevens worden automatisch gemiddeld en gecomprimeerd volgens opgegeven regels.

Het project bestaat uit drie hoofdcomponenten:

  • PHP webinterface voor systeemconfiguratie en grafiekweergaven
  • Relationele MySQL- of MariaDB-database voor het opslaan van templates en gebruikers
  • Apparaat polling-subsysteem dat volgens een schema draait

Metrieken worden elke paar minuten verzameld. U kunt de basise PHP-poller gebruiken of Spine aansluiten. De Spine-engine is geschreven in C en draait veel sneller dankzij multithreading. Voor een netwerk van duizend apparaten is dit de enige adequate oplossing, anders zal het proces simpelweg niet op tijd worden afgerond.

Platformmogelijkheden

Templates worden gemaakt voor het werken met hardware. U hoeft niet handmatig naar de juiste OIDs in vendor-documentatie te zoeken. U neemt een kant-en-klaar template voor Cisco, Juniper, MikroTik of D-Link, koppelt het aan een apparaat en krijgt een kant-en-klare set grafieken.

Netwerkscanning draait volgens een schema. Nieuw apparaat gevonden? Het systeem herkent het aan de SNMP-responses en past de juiste automatiseringsregel toe.

Op rollen gebaseerde toegangscontrole wordt geboden voor teamsamenwerking. U kunt een piket-ingenieur toegang geven tot grafieken voor een specifiek rack, terwijl andere secties worden geblokkeerd.

Grafieken in de interface zijn interactief. U kunt het gewenste tijdsinterval met de muis selecteren, schalen omschakelen, gegevens in realtime bekijken en metrieken exporteren in CSV-formaat.

Ondersteuning voor IPv6- en SNMPv3-protocollen opent de weg naar het monitoren van moderne infrastructuur terwijl aan beveiligingsvereisten wordt voldaan.

Systeemvereisten en bouwen vanuit broncode

Om te draaien heeft u een webserver met PHP 8.1-ondersteuning nodig. MariaDB versie 10.2 of hoger (of MySQL 8.0 of hoger). Van systeemhulpprogramma's heeft u RRDtool versie 1.8 en het Net-SNMP-pakket nodig.

Projectafhankelijkheden worden geïmplementeerd met Composer:

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

Bij het werken met de ontwikkelingsbranch develop moeten databasetabellen regelmatig worden bijgewerkt. Hiervoor bevat het project command-line-hulpprogramma's:

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

Het controleren van de integriteit van de tabelstructuur na elke wijziging wordt geholpen door de ingebouwde audit:

php cli/audit_database.php --report

Waar in de praktijk gebruiken

Netwerkkanaalmonitoring blijft de belangrijkste niche van het project. Wanneer u poortbenutting op honderd switches moet volgen, kan het draaien van een zware stack van scrapers en exporters overbodig zijn. Het systeem wordt in een half uur geïmplementeerd en verbruikt minimale resources.

Engineering-systeemadministratie in datacenters is een ander veelvoorkomend scenario. Temperatuur in racks, UPS-fasebelastingen en interfacefouten monitoren. Het gereedschap is decennialang verfijnd voor precies zulke taken.

De architectuur ondersteunt plugins. Als standaardfuncties niet voldoende zijn, kunt u modules installeren voor het verzenden van meldingen of het bouwen van geografische netwerkkaarten.

Cacti probeert niet te concurreren met Prometheus in de wereld van containers en dynamische pods. Het is een gereedschap voor de goede oude fysieke infrastructuur.

Als u begrijpelijke en weinig veeleisende monitoring van netwerkapparatuur moet implementeren, blijft Cacti een praktische keuze. Het bespaart geheugen, werkt stabiel gedurende jaren en vereist geen constant repareren van configuratiebestanden.

Gerelateerde projecten