Cacti – Monitoring – Script – Command – HDD Temperatur mittels SMART von Remotehost

System ist ein Debian Wheezy auf dem Cacti läuft. Die Umgebung ist Testing und lokal.
Ziel ist es mittels der SMART Werte die Temperatur der Festplatte oder mehrerer Festplatten des Clients über SSH abzufragen. In diesem Fall von einem System mit 2HDDs und mit 6HDDs. Je nach Graph Template sind aber X Abfragen möglich, da das Script dynamisch gehalten wurde.

Vorbereitungen
Server = Cacti Server der die Daten abfragt und grafisch auswertet
Client = das System das die Daten enthält und abgefragt werden soll

Das Sctip was ich verwende ist hier zu finden: Perl Script get-hdd_temp.pl
Zuvor wurde die Möglichkeit geschaffen die Daten remote mittels SSH und Zertifikat abzuholen Anleitung Dadurch können die Scripte auf dem Client ohne Passwortabfrage mittels SSH aufgerufen und ausgewertet werden.

Pfad zum Script Ordner von meiner Cacti Installation: /usr/share/cacti/site/scripts#

1. Login als Admin

Cacti - Erstanmeldung mit admin-admin

Cacti – Erstanmeldung mit admin-admin

2. Data Input Methode erstellen – Add

Cacti -Input Methods - Add

Cacti -Input Methods – Add

– Console – rechts im Menü auf Collection Methods und Data Input Methods klicken
– rechts oben auf Add klicken
– sprechenden Namen für die Input Methode vergeben
– Input Typ = Script/Command auswählen
– als Input String das entsprechende Script mit Pfad und Variablen in <> eintragen: ssh root@<host> -p22 /home/cacti-scripte/get_smart_hdd_temp_args.pl <smart> <dev1> <dev2> <dev3> <dev4> <dev5> <dev6>
-> hier kann ggf. der Port noch als Variable verwendet werden und auch der Pfad, die <devX> stehen für die Festplatten / Device, also max. 6, mehr sind jedoch möglich

Cacti - Input Methods - Data

Cacti – Input Methods – Data

– abschließend auf Create klicken -> somit können nun die Input und Output Felder eingetragen werden

2.1 Data Input Methode – Input Fields

– die Input Fields entspechen den Variablen die das Script / Command erwartet
– also bei Input Fields auf Add klicken
– die erste Variable <host> entsprechend oben auswählen, einen sprechenden Namen vergeben und unten bei Special Type Code auf die Cacti interne Variable <hostname> verweisen !Achtung – benutze die Var nicht als Field
– danach die nächste Variable, den Smartwert, als Input Methode anlegen und ebenso die für die Devices, je nach Script kann der Haken bei „Allow Empty Input“ gesetzt werden
– der hier eingetragenen „Friendly Name“ wird später u.a. im Graph Template und den Data Sources verwendet, du solltest ihn somit eindeutig wieder erkennen

2.2 Data Input Methode – Output Fields
– als nächstes folgen die Output Fields, die der Ausgabe durch das Script entsprechen
– unter Output Fields rechts auf Add klicken
– in meinem Script werden die Temperaturen der 6 Laufwerke zurück gegeben, entsprechend müssen 6 Output Fields erstellt werden, der Haken bei Update RRD File sollte gesetzt sein
– abschließend der Data Input Methode, alles prüfen und auf Save klicken

-> weiter mit dem Data Template

3. Data Template erstellen – Allgemein
– im Menü unter Templates auf Data Templates klicken und rechts oben auf Add
– unter Data Templates einen sprechenden aussagekräftigen Namen vergeben – ich habe den selben wie in der Input Methode gewählt
– im Abschnitt Data Sources kann der Name durch die Variablen |host_description| von Cacti genutzt werden – was 1:1 für das Feld Description des Host steht, außerdem die soeben erstellte Data Input Methode auswählen

Cacti - Data Templates - Add

Cacti – Data Templates – Add

3.1 Data Template – Data Source Items
– nachdem die Allgemeinen Werte eingetragen wurden können nun die Data Source Items eingetragen werden, diese entsprechen den Ausgabewerte des Scriptes
– weiter geht es im Abschnitt Data Source Item
– der erste Namen steht für das Device „sda“
– unter „Maximum Value“ habe ich „U“ eingetragen, was für Maximalwert steht, hier kann auch 120 oder welcher Wert als max für die Temperatur erwartet wird eingeteragen werden
– unter Output Field entsprechend sda-SDA auswählen
– unter Custom Data außer bei „Host“ einen Haken setzen, denn diese Werte können später dynamisch vergeben werden, Host wird von Cacti mit einem Wert befüllt
– abschließend für das erste Data Source Item auf Save klicken und mit den anderen 5 Devices genauso verfahren

-> weiter gehts mit dem Graph Template

4. Graph Template erstellen – Allgemein für 2 udn 6 HDDs
– das Graph Template steht für den Graphen, da mein Script für 2HDDs und 6HDDs gedacht ist muss ich insgesamt also 2 Graph Tempaltes erstellen
– als erstes erstelle ich für das Graph Template für 2HDDs
– dieses unter dem Menüpunkt Templates -> Graph Templates – mit klick rechts auf Add erstellen
– wieder einen allg. Namen eintragen, ich wählte den selben wie bereits zuvor
– den Titel z.B. mittels Cacti Variable |host_description| oder |host_name| verfeinern
– den Haken bei Slope Mode setzen – erzeugt einen etwas runderen / weicheren Graphen (seit Cacti 1.2 möglich)

– weiter durch Click auf Create

4.1 Graph Template erstellen – Template Items
– nun können die Template Items angelegt werden, damit wird die eigentliche Darstellung (Area, Linien etc.) im Graph erstellt
– rechts auf Add klicken
– unter Data Source den oben erstellten für das Device1 sda auswählen
– die Farbe auswählen
– den Typ aus der DropDown Liste für die Darstellung im Graphen auswählen, ich habe mich für einen dunklen Farbton und der Linienstärke 2 entschieden
– Average bleibt bei der Consolidation Function stehen
– bei Text Format etwas aussagekräftiges wie sda eintragen und auf Save klicken

– als nächstes erstelle ich die Legende des Graphen, hierbei hilft uns Cacti und erstellt automatisch die Current, Average und Maximum Werte
-> dafür wieder auf Add klicken und den selben Data Source ausgewählt lassen oder auswählen
-> unter Graph Item Type Legend auswählen
-> auf Create klicken
-> wer will kann den Minimum Wert noch nachtragen, hier dann aber GPRINT auswählen 😉
-> selbes für die anderen 5 Devices vornehmen

– es fällt auf das Cacti automatisch die Graph Item Inputs Data Source erstellt, somit ist dies keine Arbeit mehr für uns, ggf. noch kontrollieren
– damit ist das Graph Template für 2 HDDs fertig
– das selbe Template kann nun dupliziert und für z.B. 6 Devices angepasst werden -> einfach den Namen vergeben und die weiteren Devices wie oben beschrieben hinzufügen


– weiter geht es mit dem Device / Host das den neuen Graph nutzen soll

5. Graph für Device / Host erstellen
– damit nun die Templates auch verwendet werden und die Werte eines Clients ausgewertet und angezeigt werden muss das Graph Template einem Host zugeordnet werden
– unter Management -> auf Device klicken und dort den Host auswählen der den Graphen erhalten soll
– im Abschnitt „Associated Graph Templates“ das eben erstellte Graph Template ausählen und rechts auf Add klicken
-> das Template ist zugewiesen, der Graph jedoch noch nicht erstellt

– oben auf „Create Graphs for this Host“ klicken und im ersten Abschnitt „Graph Templates“ das eben hinzugefügte auswählen und rechts ganz unten auf der Seite auf Create klicken

5.1 Graph für Device / Host erstellen – Custom Data
– als nächstes werden uns die Custom Data Felder angezeigt – diese sind identisch der Data Input Methoden und somit der Argumente unseres Scriptes -> entsprechend ausfüllen und auf Create klicken

Cacti - Add Graph to Host - Input

Cacti – Add Graph to Host – Input

6. Final
– das war es, wenn alles korrekt durchgeführt wurde, dann dauert es 5 Minuten bis der Graph zu sehen ist und nochmal 5 Minuten bis die ersten Werte und Linien angezeigt werden

Cacti - Graph SMART 2HDD Temp

Cacti – Graph SMART 2HDD Temp

One thought on “Cacti – Monitoring – Script – Command – HDD Temperatur mittels SMART von Remotehost

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.