Cacti Tutorial
Cacti ist eine Open Source Software für das Sammeln und grafische Darstellen von Daten.
Diese Daten können via SNMP oder über eigene Scripte von cacti ausgelesen werden.
Dadurch ist Cacti in der Lage, praktisch alle maschinenlesbaren Datenquellen
zu lesen. Die Daten werden in einer Round Robin Database (RRD) gespeichert.
Bei dieser Form der Datenspeicherung werden ältere Daten mit einer geringeren Auflösung
gespeichert als neue Daten. Die ältesten Daten werden jeweils überschrieben.
Diese Anleitung beschreibt die Installation von Cacti und erste Schritte bei der Nutzung.
Die Installation ist Linux-spezifisch. Die eigentliche Nutzung erfolgt über einen
Browser und ist daher unabhängig vom Betriebssystem. Das Tuturial kann also auch
unter Windows und Apple Mac OS nachvollzogen werden.
Inhalt
Installation von Cacti unter Debian Linux
Devices ohne SNMP in Cacti
Ein erster Graph
Kleiner Exkurs SNMP
Ein Device mit SNMP
Daten über ein eigenes Script auslesen
Benutzerverwaltung
Die Installation erfolgt durch apt-get . Wer später eine aktuellere Version
von Cacti installieren möchte, findet diese auf der Homepage des Projektes.
debian1:~# apt-get install apache2
debian1:~# apt-get install mysql-server
debian1:~# apt-get install cacti
Wenn die Installation der Software abgeschlossen ist,
können Sie zum ersten Mal das Webinterface von Cacti aufrufen.
Dort sind noch einige Schritte für die Ersteinrichtung des
Systemes zu erledigen.
Ist Cati auf dem lokalen System installiert, erfolgt der Aufruf im Browser
über: http://localhost/cacti
Sollten in diesem Schritt einige Komponenten nicht gefunden werden,
geben Sie den korrekten Pfad ein oder installieren Sie die fehlenden
Programme via apt-get nach. Danach gelangen Sie zum Login-Fenster von Cacti.
Für die erste Anmeldung lautet der User Name admin und das Password ebenfalls
admin. Das Kennwort muss dann sofort geändert werden.
Um Daten von einem Gerät zu sammeln, muss diese zuerst als Device in Cacti angelegt werden.
Gehen Sie dazu auf Management/Devices und wählen Sie rechts oben Add aus:
Zuerst legen Sie ein Gerät ohne SNMP-Unterstützung an. Bei Description können Sie einen
beschreibenden Text für das Gerät eingeben. Bei Hostname geben Sie den vollständigen Hostnamen
oder die IP-Adresse des Gerätes ein. Da das Gerät kein SNMP unterstützt, muss das Feld
SNMP Community leer sein.
Im nächsten Schritt legen Sie einen Graph für das Gerät an. Dazu wählen Sie das Gerät unter
Management/Devices aus und klicken auf Create Graphs for this Host.
Für unseren ersten Test werden Sie die ICMP-Laufzeit grafisch darstellen. Dazu wählen
Sie Unix - Ping Latency aus und klicken auf create. Im nächsten Dialog
können Sie die Farbe und eine Legende festlegen.
Damit ist der Graph (Ping auf www.google.de) erfolgreich erstellt. Allerdings ist der Graph bisher
nicht auf der Anzeige zu sehen. Cacti zeigt neue Graphs nicht automatisch an.
Um unseren Graph sichtbar zu machen, gehen Sie auf Management/Graph Management.
Dort markieren Sie den Graph und wählen die Aktion Plave on a Tree (Default Tree) aus.
Den zweiten Dialog bestätigen Sie mit yes. Wenn Sie nun oben links auf graphs
klicken und den Default Tree auswählen, sollte der Graph dort zu sehen sein.
Da Cacti nur alle fünf Minuten Daten von den Geräten abruft, kann es einige Zeit dauern,
bis sich der Graph aufbaut.
Unter Presets können Sie den Anzeigezeitraum auf die letzte halbe Stunde (Last Half Hour) stellen.
Der gängigste Weg mit Cacti Daten aus Geräten auszulesen ist
das Simple Network Management Protocol (SNMP).
Alle aktuellen Betriebssystem und Netzwerkkomponenten für den
professionellen Einsatz unterstützen SNMP.
Dazu muss auf diesen Systemen ein SNMP-Agent laufen.
Über einen GET-Request kann dann ein SNMP-Manager Daten von diesen
Agenten abrufen.
Die Struktur dieser Daten ist in der Management Information Base (MIB) beschrieben.
Die MIB beschreibt eine Baumstruktur. Die einzelnen Zweige dieses Baumes sind durch
Nummern oder Namen gekennzeichnet. Die Aneinanderreihung solcher Bezeichnungen wird als
Object Identifier (OID) bezeichnet. Hier ein Beispiel:
.1.3.6.1.2.1.1.1.0 = .iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0
Jeder SNMP-Agent unterstützt eine Reihe von Standard-MIBs. Diese können
durch den Hersteller um eigene MIBs ergänzt werden.
OIDs lassen sich auf der Kommandozeile mit dem Kommando snmpget
auslesen:
debian1:/home/mku# snmpget -v 1 -c private 192.168.0.102 .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux debian2 2.6.18-4-xen-686 #1
SMP Thu May 10 03:24:35 UTC 2007 i686
Für viele interessante Parameter ist die OID bereits in Cacti hinterlegt.
Herstellerspezifische OIDs lassen sich aber problemlos ein Cacti einpflegen.
Liefert der Hersteller keine Beschreibung seiner MIB, können Sie versuchen
das Gerät mit snmpwalk auszulesen.
Für diesen Schritt benötigen Sie ein Gerät, das SNMP spricht. Das kann ein Switch,
ein Router oder auch ein PC mit einem SNMP-Agent sein. Unter Linux muss dazu der snmpd
auf dem PC installiert werden. Das Gerät wird wieder über
Management/Devices/Add angelegt:
Diesmal wählen Sie zusätzlich das Host Template aus und geben eine SNMP Community an.
Die SNMP Community muss Leserechte auf dem Gerät haben. Typisch ist hier der String "public".
Nach dem Anlegen prüft Cacti den SNMP-Zugriff auf den Host:
Nun können Sie auch für diesen Host einen Graph anlegen. Wählen Sie wieder
Create Graphs for this Host in der Hostanzeige. Cacti liest jetzt
automatisch alle Netzwerkschnittstellen des Hosts aus und zeigt diese an.
Wählen Sie ein Interface aus und als Graph Type "In/Out Bits".
Auch dieser Graph muss wieder über Management/Graph Management im Default Tree plaziert werden.
Nach spätestens 15 Minuten sollte Cacti Werte im neuen Grapch anzeigen.
Bei vielen Geräten können die Statusinformationen nur über eine
Weboberfläche oder Kommandozeile (telnet, ssh) abgerufen werden.
Für diese Aufgabe bietet sich ein kleines Perl-Script an, das die
Daten ausliest, aufbereitet und für Cacti lesbar ausgibt.
Auf diesem Weg lassen sich viele DSL-Modems, unterbrechungsfreie Stromversorgungen (USV)
oder auch eigene Applikationen an Cacti anbinden.
Damit Cacti die Ausgabe eines Scriptes verarbeiten kann, muss diese einem bestimmten Format
entsprechen. Gibt ein Script nur einen Wert zurück, sieht die Ausgabe so aus:
<Wert_1>
Gibt ein Script mehrere Werte zurück, muss die Ausgabe so aussehen:
<Feldname_1>:<Wert_1> <Feldname_2>:<Wert_2> <Feldname_3>:<Wert_3>
Als Dezimaltrennzeichen erwartet Cacti dabei einen Punkt.
Die Ausgabe eines Scriptes für eine Wetterstation könnte also so aussehen:
innentemperatur:22.4 ausssentemperatur:3.2 Luftdruck:1002
Für unseren Test legen Sie zunächst folgendes Perl-Script an:
#!/usr/bin/perl -w
print "innentemperatur:" . int(rand(10)+20) . " aussentemperatur:" .
int(rand(8)) . " luftdruck:" . int(rand(20)+1000);
und speichern es unter dem Dateinamen wetter.pl ab.
Beim Aufruf sollte das Script drei Werte ausgeben.
Um die Ausgaben in Cacti zu verarbeiten benötigen Sie eine Data Input Method.
Diese legen Sie unter Collection Methods neu an. Wählen Sie dazu Add aus.
Im Feld Name geben Sie der Eingabemethode einen sprechenden Namen. Als Input Type dann
Script/Command auswählen. Der Input String enthält den kompletten Pfad
des Scriptes. Im nächsten Schritt können sie Output Fields angelegt werden.
Über diese wertet Cacti die Ausgaben unseres Scriptes aus. Klicken Sie auf Add
um das erste Feld anzulegen:
Der String im Feld Field [Output] muss der Ausgabe unseres Scriptes entsprechen.
In Friendly Name können Sie dem Feld einen sprechenden Namen geben. Die Option
Update RRD File muss aktiviert sein. Dadurch nimmt Cacti die Werte in das RRD-File
(Datenbank) auf. Legen Sie nun auch die restlichen Felder an und speichern die Eingaben
mit save ab.
Diese Data Input Method beschreibt das Aussehen der Daten. Cacti sammelt zum jetzigen
Zeitpunkt noch keine Daten. Dazu müssen Sie unter Management/Data Sources
eine Datenquelle anlegen. Klicken Sie dort auf Add und lassen Sie die Felder
Selected Data Template und Host auf "None" stehen. Klicken Sie auf
create.
Zuerst geben Sie der Datenquelle einen Namen. Das Feld Data Source Path können
Sie leer lassen. Cacti füllt das Feld beim Speichern. Als Data Input Method wählen
Sie "Wetter" aus. Nun füllen Sie die Felder für das erste Data Source Item:
Vergeben Sie einen Internal Data Source Name und geben Sie das mögliche Minimum und Maximum
für diesen Wert an. Als Data Source Type wählen Sie Gauge.
Der Type Gauge steht für
Datenquellen die eine Art Füllstand liefern (Temperatur, Luftdruck, Bitraten). Der Type Counter
wird für Datenquellen genutzt, die aufwärts Zählen (Bits in, Bits out).
Nach dem Klicken von create können Sie auch ein Output Field auswählen.
Speichern Sie die Datenquelle mit save und rufen Sie sie wieder auf.
Mit Data Source Item/New können Sie nun die beiden anderen Felder hinzufügen und
jeweils mit save abspeichern.
Ab diesem Zeitpunkt fängt Cacti an, die Datenquelle mit Daten aus unserem Script zu füllen.
Diese müssen jetzt noch grafisch dargestellt werden. Dazu legen Sie unter
Management/Graph Management einen neuen Graphen an. Wählen Sie Add und lassen
Sie Template und Host leer. Im Folgedialog müssen Sie nur einen Titel eigeben.
Für alle anderen Felder können Sie die Voreinstellungen akzeptieren und create klicken.
Nun müssen Sie über Graph Items/Add noch festlegen, welcher Wert dargestellt werden soll.
Wählen Sie die Datenquelle aus, legen Sie eine Farbe fest und die Art der Darstellung. Area zeigt den
Wert als Fläche an.
Nachdem Sie den Graph mit save gespeichert haben, müssen Sie ihn noch im Default Tree plazieren.
Als Übung können Sie jetzt einen Graph mit den beiden Temperaturen als Linien erstellen.
Cacti bringt bei der Installation zwei Benutzer mit: admin und guest. Der admin hat volle
Rechte auf dem System, der guest darf sich nur Grafiken ansehen.
Unter Utilities/User Management haben Sie die Möglichkeit Benutzer anzulegen und zu
bearbeiten. Dabei können Sie pro Benutzer grundlegene Berechtigungen (Realm Permissions) vergeben
und den Zugriff auf die Grafiken einstellen (Graph Permissions). So können Sie zum Beispiel
einzelnen Kunden Zugriff auf bestimmte Grafiken geben.
Weiterführende Informationen
Hilfe im Forum
Im Netzwerkforum erhalten Sie Hilfe zur Nutzung von Cacti.
- Fragen zur Installation und Benutzung von Cacti posten Sie bitte
an das Forum Tools
- Fragen zur Netzwerkprotokollen wie SNMP posten Sie bitte
an das Forum Netzwerkprotokolle und Dienste
Professioneller Support für Cacti
Im Raum Berlin bieten Ihnen die IT-Experten Berlin Cacti Support an.
Dort erhalten Sie Hilfe bei Problemen und betriebsbereite Cacti-Systeme nach Ihren Vorgaben.
Für den kurzfristigen Einsatz zur Fehlersuche halten die IT-Experten Berlin auch
Leihsysteme mit Cacti und anderer Analysesoftware für Sie bereit.
|