>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
PHP

Legendarne Cacti i monitorowanie infrastruktury sieciowej

Jeśli pracowałeś jako administrator systemów około piętnście lat temu, prawdopodobnie pamiętasz te charakterystyczne zielone wykresy ruchu sieciowego. Lata minęły. Pojawiły się Prometheus, Grafana, VictoriaMetrics i masa innych systemów. Mimo to klasyczny projekt Cacti nadal żyje. Deweloperzy regularnie commitują zmiany, dostosowują kod do PHP 8, rozwijają nowy mechanizm odpytywania napisany w C i przygotowują wydanie gałęzi 1.3.

Dlaczego narzędzie z początku XXI wieku nadal się utrzymuje? Odpowiedź jest prosta: sprzęt sieciowy nie zmienia się tak szybko jak frontend czy usługi chmurowe. Przełączniki, routery, UPS-y i stojaki serwerowe nadal udostępniają metryki za pomocą protokołu SNMP.

Z czego składa się platforma

Cacti działa jako warstwa wizualna na szczycie bazy danych round-robin RRDtool. W przeciwieństwie do konwencjonalnych baz danych szeregów czasowych, RRDtool nie rośnie w nieskończoność. Rozmiar pliku jest ustalany w momencie tworzenia. Stare dane są automatycznie uśredniane i kompresowane zgodnie z określonymi regułami.

Projekt składa się z trzech głównych części:

  • Interfejs webowy w PHP do konfiguracji systemu i przeglądania wykresów
  • Relacyjna baza danych MySQL lub MariaDB do przechowywania szablonów i użytkowników
  • Podsystem odpytywania urządzeń działający według harmonogramu

Metryki są zbierane co kilka minut. Możesz użyć podstawowego pollerа w PHP lub podłączyć Spine. Silnik Spine jest napisany w C i działa znacznie szybciej dzięki wielowątkowości. Dla sieci z tysiącem urządzeń jest to jedyne sensowne rozwiązanie, w przeciwnym razie proces po prostu nie zakończy się na czas.

Możliwości platformy

Szablony są tworzone do pracy ze sprzętem. Nie musisz ręcznie szukać odpowiednich OID-ów w dokumentacji vendorów. Bierzesz gotowy szablon dla Cisco, Juniper, MikroTik lub D-Link, podłączasz go do urządzenia i otrzymujesz gotowy zestaw wykresów.

Skanowanie sieci odbywa się według harmonogramu. Nowe urządzenie wykryte? System rozpoznaje je po odpowiedziach SNMP i stosuje odpowiednią regułę automatyzacji.

Kontrola dostępu oparta na rolach zapewnia współpracę zespołową. Możesz dać dyżurnemu inżynierowi dostęp do wykresów dla konkretnego stojaka, blokując inne sekcje.

Wykresy w interfejsie są interaktywne. Możesz wybrać żądany przedział czasowy myszką, przełączać skale, przeglądać dane w czasie rzeczywistym i eksportować metryki w formacie CSV.

Wsparcie dla protokołów IPv6 i SNMPv3 otwiera drogę do monitorowania nowoczesnej infrastruktury przy jednoczesnym spełnieniu wymagań bezpieczeństwa.

Wymagania systemowe i kompilacja ze źródeł

Aby uruchomić, potrzebujesz serwera WWW z obsługą PHP 8.1. MariaDB w wersji 10.2 lub wyższej (lub MySQL 8.0 lub wyższej). Z narzędzi systemowych potrzebujesz RRDtool w wersji 1.8 oraz pakietu Net-SNMP.

Zależności projektu są wdrażane za pomocą Composera:

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

Przy pracy z gałęzią deweloperską 1.3 tabele bazy danych wymagają regularnej aktualizacji. W tym celu projekt zawiera narzędzia wiersza poleceń:

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

Sprawdzanie integralności struktury tabel po każdej zmianie wspomaga wbudowany audit:

php cli/audit_database.php --report

Gdzie stosować w praktyce

Monitorowanie kanałów sieciowych pozostaje główną niszą projektu. Gdy musisz śledzić wykorzystanie portów na stu przełącznikach, uruchamianie ciężkiego stosu scraperów i eksporterów może być nadmierne. System wdraża się w pół godziny i zużywa minimalne zasoby.

Ewidencja systemów inżynieryjnych w centrach danych to kolejny częsty scenariusz. Monitorowanie temperatury w stojakach, obciążeń fazowych UPS-ów i błędów interfejsów. Narzędzie było doskonalone przez dziesięciolecia właśnie dla takich zadań.

Architektura wspiera wtyczki. Jeśli standardowe funkcje nie są wystarczające, możesz zainstalować moduły do wysyłania powiadomień lub budowania geograficznych map sieci.

Cacti nie próbuje konkurować z Prometheusem w świecie kontenerów i dynamicznych podów. To narzędzie do dobrej starej fizycznej infrastruktury.

Jeśli potrzebujesz wdrożyć zrozumiałe i niewymagające monitorowanie sprzętu sieciowego, Cacti nadal pozostaje praktycznym wyborem. Oszczędza pamięć, działa stabilnie przez lata i nie wymaga ciągłego naprawiania plików konfiguracyjnych.

Powiązane projekty