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.

[code lang=“vb“]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)[/code]

b) Rrdtool schafft eine Datenbank zum speichern der Werte

[code lang=“bash“]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[/code]

Ein kleines Skript füllt die Datenbank mit Werten.

[code lang=“bash“]#!/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“);[/code]

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

[code lang=“bash“]* * * * * root /root/wincounter2rrd.pl 192.168.10.10 /var/rrd/xyz_perfmon.rrd[/code]

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.

Dieser Beitrag hat einen Kommentar

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.