SECTOR NORD AG Tipp des Monats


[SNAG-View] Verwenden eigener Performancegraphen in SNAG-View - Teil2

von Andreas Gerliz

Im ersten Teil dieser Reihe wurde das Einbinden von Templates für eigene Performancegraphen behandelt. In diesem Teil geht es um das Erstellen eines eigenen Templates zur Darstellung der Belegung von Festplatten unter Windows. Der verwendete Templatecode ist simpel und sollte durch die Kommentare selbst erklärend sein. Die Dokumentation der rrdtools ist unter folgendem Link zu errreichen.

https://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html

Mit dem Standard-Template sind die Performancegraphen nicht in jedem Fall aussagekräftig. Der folgende Screenshot zeigt die Auslastung einer Festplatte eines Windows-Servers.

Die Festplatte ist knapp 400 GB groß, es sind knapp 200 GB belegt. Die Warnschwelle liegt bei 360 GB, der kritische Wert der Auslastung bei 380 GB.

Bei der Verwendung des Standard-Templates für Performancegraphen sind diese Informationen nicht auf einen Blick zu erfassen.

Bei der Verwendung von eigenen Templates für Performancegraphen kann das Ergebnis so aussehen (gleiche Maschine, gleiche Partition):

Hier sind alle Informationen auf einen Blick zu erkennen. Die Obergrenze des Performancegraphen entspricht der Kapazität der Festplatte. Die Linien für "Warning" und "Critical" sind im Graphen sichtbar. Die Auslastung der Festplatte - weniger als die Hälfte der Kapazität - lässt sich sofort erkennen. Am Beispiel einer anderen Festplatte wird deutlich, dass freier Platz auf der Festplatte mit diesem Performancegraphen sehr gut einzuschätzen ist:

Diese Festplatte ist sehr gut gefüllt, es gibt nur noch wenige GB freien Speicherplatz.

Das verwendete Checkkommando:

$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_drivesize -a ignore-unreadable drive=* "filter=(type in('fixed') AND drive NOT LIKE '\\?\\')" "warn=( used > $ARG1$ )" "crit=( used > $ARG2$ )"  exclude=$ARG3$:\\ "perf-config=used(unit:G'') used %(ignored:true)"

Der Templatecode für den Performancegraphen:

 
<?php
 
// +----------------------------------------------------------------------+
// | SNAG-View - WIN_NRPE_DRIVESIZE                                       |
// +----------------------------------------------------------------------+
// | Copyright (c) 2018 Sector Nord AG                                    |
// +----------------------------------------------------------------------+
// | Function:        Template graph Windows drives size and usage        |
// | File:            WIN_NRPE_DRIVESIZE_1.php                            |
// +----------------------------------------------------------------------+
// | For more information on SNAG-View and it's Agents visit the          |
// | following websites:                                                  |
// |  - http://www.sectornord.de                                          |
// |  - http://www.snag-view.de                                           |
// +----------------------------------------------------------------------+
// | History:                                                             |
// |   2018-12-18 Initial build                                        rp |
// +----------------------------------------------------------------------+
// | $LastChangedDate: 2018-12-20 13:48:00 +0100                          |
// | $LastChangedRevision:                                                |
// | $LastChangedBy: rpaeper                                              |
// +----------------------------------------------------------------------+/*
    //Schleife für alle Performancegraphen aller Festplatten / Partitionen
    foreach ($DS as $i)
    {
            $warning = "";
            $minimum = "";
            $critical = "";
            $warning = "";
            $vlabel = "";
 
            if ($WARN[$i] != "") {
                $warning = $WARN[$i];
            }
            if ($CRIT[$i] != "") {
                $critical = $CRIT[$i];
            }
            if ($MIN[$i] != "") {
                $lower = " --lower=" . $MIN[$i];
                $minimum = $MIN[$i];
            }
            if ($CRIT[$i] != "") {
                $upper = " --upper=" . $MAX[$i];
                $maximum = $MAX[$i];
            }
 
 
            $opt[$i] = '--vertical-label "' . $vlabel . '" --title "' . $hostname . ' / ' . $servicedesc . '"' . $lower;
            //Hintergrund des Performancegraphen einfärben - Hex-Farbwerte
            $opt[$i] .= "--slope-mode --color CANVAS#56f442 ";
            //Prüfen, ob mehrere Datenquellen verwendet werden
                if (isset($RRD_STORAGE_TYPE) && ($RRD_STORAGE_TYPE[$i] == 'MULTIPLE') ) {
                    $def[$i] = "DEF:var1=\"$RRDFILE[$i]\":1:AVERAGE ";
                } else {
                    $def[$i] = "DEF:var1=\"$rrdfile\":$DS[$i]:AVERAGE ";
                }
            //Höchstwert für Y-Achse festlegen
            $opt[$i] .= "--upper-limit $MAX[$i] --rigid";
            $def[$i] .= "AREA:var1#ff8080:\"  \" ";
            $def[$i] .= "GPRINT:var1:LAST:\"LAST\: %0.02lf $UNIT[$i] \\n\" ";
            $def[$i] .= sprintf("HRULE:$WARN[$i]#FFFF00:\"Warning  \: %0.02lf $UNIT[$i]\\n\" ", $WARN[$i]);
            $def[$i] .= sprintf("HRULE:$CRIT[$i]#FF0000:\"Critical \: %0.02lf $UNIT[$i] \\n\" ", $CRIT[$i]);
            $def[$i] .= sprintf("HRULE:$MAX[$i]#000000:\"Capacity \: %0.02lf $UNIT[$i] \\n\" ", $MAX[$i]);
    }
?>