Grafische Darstellung der Messwerte für Temperatur und Luftfeuchte mit MRTG

Diese Grafik wird live mit dem MessPC-System und MRTG realisiert  Angezeigt wird die Innentemperatur (blau) und Außentemperatur (grün).

MRTG Temperatur



Mit MRTG ist neben der grafischen Anzeige auch das Überwachen von Schwellwerten möglich. So können beliebige Aktionen gestartet werden, wie z.B. das Versenden von Mail, Fax oder SMS. MRTG ist ein freies Perl-Programm und läuft unter Windows und Unix/Linux. Leider ist mit MRTG keine Anzeige negativer Werte möglich. Verwenden Sie in diesem Fall die RRDTools.

Die Konfiguration für MRTG:


Target[PCMeasureDemo]: `/usr/bin/pcmeasure2mrtg.pl 10.254.89.8 lpt1.1 com2.1`
MaxBytes[PCMeasureDemo]: 1000
Title[PCMeasureDemo]: LiveDemo PCMeasure
PageTop[PCMeasureDemo]: <H1>LiveDemo PCMeasure</H1>
YTicsFactor[PCMeasureDemo]: 0.1
Options[PCMeasureDemo]: gauge, noinfo, nopercent, growright
YLegend[PCMeasureDemo]: Grad Celsius
Timezone[PCMeasureDemo]: GMT
ShortLegend[PCMeasureDemo]: x 0,1 Grad Celsius
LegendI[PCMeasureDemo]: Outdoor
LegendO[PCMeasureDemo]: Indoor
Legend1[PCMeasureDemo]: Outdoor in Grad Celsius
Legend2[PCMeasureDemo]: Indoor in Grad Celsius

Dazu wird folgender Perl-Script durch MRTG aufgerufen:


pcmeasure2mrtg.pl

Dieser Script kann unverändert verwendet werden, es ist keine Konfiguration erforderlich.
#!/usr/bin/perl
#############################################################
#  pcmeasure2mrtg.pl  Zugriff auf Daten der MessPC Software
#                     über das Netzwerk und Übergabe an MRTG
#
#  Version 1.2 vom 11.3.2008
#
#  (C) Lutz Schulze 2002-2008 www.messpc.de
#
#  Aufruf: pcmeasure2mrtg.pl IP-Adresse sensor1 sensor2
#
#  Die Parameter sensor1 und sensor2 bestimmen die Interfaces
#  der MessPC - Software, die ausgegeben werden sollen.
#  Beispiel: pcmeasure2mrtg.pl 10.1.1.1 lpt1.1 com1.1
#############################################################
 
use IO::Socket;
use Text::ParseWords;
sub parse_csv {
    return quotewords(";",0, $_[0]);
}
 
$remote_host = $ARGV[0]; # IP-address
$remote_port = 4000;     # TCP Port
 
$socket = IO::Socket::INET->new(PeerAddr =>$remote_host,
                                PeerPort =>$remote_port,
                                Proto         =>"tcp",
                                Type         =>SOCK_STREAM)
or die "cannot connect to $remote_host:$remote_port: $@\n";
 
print $socket "pcmeasure.$ARGV[1]\r\n";
 
eval {
    local $SIG{ALRM} = sub { die "alarm\n"};
    alarm 5;
    $answer = <$socket>;
    alarm 0;
};
if ($@) {
    die unless $@ eq "alarm\n"; # handle unexpected errors
    #no answer, timeout
    print "timeout";
} else {
    @fields = parse_csv($answer);
    for ($i =0;$i < @fields;$i++) {
      $pos1 =index $fields[$i],'value';
      if ($pos1  != -1) {
        $pos2 =index $fields[$i],'=';
        $valuestring1 = substr($fields[$i],$pos2+1);
    }
  }
}
 
close($socket);
 
$valuestring2 = 0;
if ($ARGV[2] ne '') {
    $socket = IO::Socket::INET->new(PeerAddr =>$remote_host,
                                    PeerPort =>$remote_port,
                                    Proto         =>"tcp",
                                    Type         =>SOCK_STREAM)
    or die "cannot connect to $remote_host:$remote_port: $@\n";
    print $socket "pcmeasure.$ARGV[2]\r\n";
  eval {
    local $SIG{ALRM} = sub { die "alarm\n"};
    alarm 5;
    $answer = <$socket>;
    alarm 0;
  };
  if ($@) {
    die unless $@ eq "alarm\n"; # handle unexpected errors
    #no answer, timeout
    print "timeout";
  }
  else {
    @fields = parse_csv($answer);
    for ($i =0;$i < @fields;$i++) {
      $pos1 =index $fields[$i],'value';
      if ($pos1  != -1) {
        $pos2 =index $fields[$i],'=';
        $valuestring2 = substr($fields[$i],$pos2+1);
      }
    }
  }
    close($socket);
}
 
$valuestring1 = $valuestring1 * 10; #MRTG will nur ganze Zahlen
$valuestring2 = $valuestring2 * 10;
print "$valuestring1\n$valuestring2\n0 Std\n$ARGV[0]\n";
 




Kontakt: better networks  Lutz Schulze  Hauptstrasse 34
01909 Grossharthau-Bühlau - mehr Infos im Impressum
Tel. 035954 53396        Fax 035954 53397
support@messpc.de bestellung@messpc.de
Die Zeitschrift 'IT-Administrator' hat das MessPC System getestet und einen mehrseitigen Bericht veröffentlicht.