Perfmon mit Cacti visualisieren

Screenshot Perfmon

Perfmon kann unter Windows Leistungsdaten ermitteln und grafisch aufbereitet darstellen. Möchte man diese Werte zentral mit Cacti verarbeiten, müssen sie a) vom Cacti abgefragt werden können b) entsprechend gespeichert werden und c) in einem Diagramm dargestellt werden können.

a) Der NRPE (läuft wegen dem Nagios) liefert die gewünschten Werte mit Hilfe eines kleinen VBS-Skripts und wincheck_counter.

Set objShell=Wscript.CreateObject("Wscript.shell")

‘CPU

Set objExecObject=objShell.exec("%comspec% /c C:\nrpe_nt\tools\wincheck_counter\wincheck_counter -C ""Prozessor"" -I ""_Total"" -P ""Prozessorzeit (%)""")

Do Until objExecObject.stdOut.AtEndOfStream
   cpu_counter=objExecobject.stdOut.ReadLine()
Loop

‘RAM

Set objExecObject=objShell.exec("%comspec% /c C:\nrpe_nt\tools\wincheck_counter\wincheck_counter -C ""Speicher"" -P ""Zugesicherte verwendete Bytes (%)""")

Do Until objExecObject.stdOut.AtEndOfStream
   ram_counter=objExecobject.stdOut.ReadLine()
Loop

‘HDD

Set objExecObject=objShell.exec("%comspec% /c C:\nrpe_nt\tools\wincheck_counter\wincheck_counter -C ""Physikalischer Datenträger"" -I ""_Total"" -P ""Durchschnittl. Warteschlangenlänge des Datenträgers""")

Do Until objExecObject.stdOut.AtEndOfStream
   hdd_counter=objExecobject.stdOut.ReadLine()
Loop

Wscript.Echo cpu_counter & ";" & ram_counter & ";" & hdd_counter
WScript.Quit(0)

b) Rrdtool schafft eine Datenbank zum speichern der Werte

rrdtool create /var/rrd/xyz_perfmon.rrd \
DS:cpu:GAUGE:600:U:U \
DS:ram:GAUGE:600:U:U \
DS:hdd:GAUGE:600:U:U \
RRA:AVERAGE:0.5:1:2160

Ein kleines Skript füllt die Datenbank mit Werten.

#!/usr/bin/perl

use Text::ParseWords;

sub parse_csv {
   return quotewords(";",0, $_[0]);
}

$ip = $ARGV[0];
$datei = $ARGV[1];

$cmd = `/usr/local/groundwork/nagios/libexec/check_nrpe -H $ip -c check-wmi_cacti -t 60`;

chomp $cmd;

@fields = parse_csv($cmd);

$cpu=$fields[0];
$cpu =~ s/,/./;

$ram=$fields[1];
$ram =~ s/,/./;

$hdd=$fields[2];
$hdd =~ s/,/./;

system("/usr/bin/rrdtool update $datei N:$cpu:$ram:$hdd");

Eine dazu passende Zeile in der /etc/crontab ruft das Skript jede Minute auf.

* * * * * root /root/wincounter2rrd.pl 192.168.10.10 /var/rrd/xyz_perfmon.rrd

c) ein Diagramm in Cacti erzeugen

Eine nicht aktive “Data Source” beschreibt den Pfad zum Rrd-File und verknüpft dieses mit einem “Data Template”, was die Werte “cpu”, “ram” und “hdd” definiert. Die “Data Source” wird dann zusammen mit einem “Device” über ein “Graph Template” für einen “Graph” genutzt.

This entry was posted in Netzwerk and tagged , , . Bookmark the permalink.

2 Responses to Perfmon mit Cacti visualisieren

  1. Pingback: boblog » Blog Archiv » Round-Robin-Datenbanken erweitern

  2. Danke, jetzt endlich habe ich den Sachverhalt ganz gerafft :)

Hinterlasse eine Antwort

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

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>