[hobbit] conn test
Rolf Schrittenlocher
schritte at hebis.uni-frankfurt.de
Fri Feb 6 08:03:31 CET 2009
Hi Christian,
we have something similiar for the tests of OPAC reponses. Shouldn't be
too difficult to adapt.
kind regards
Rolf
#!/usr/bin/perl
#
##################################################################
# Parameter
##################################################################
# Parameter fuer Testabfrage an PICA-Webopac
$REQUEST = "<URL>";
$BB_DISP = "<bb-servername>"; # BB-Server zur Anzeige
$BB_PORT=1984; # Portnummer von BB
$THISHOST=$ENV{MACHINE};
$INDENT="opc4"; # Testkennung
# Art der Meldung mit Gueltigkeitsdauer in Minuten
# Wenn nach x Minuten keine neue Nachicht kommt meckert BB
$GUELTIG="status+20";
# Aktuelles Datum
$t0 = time;
$ZEITSTEMPEL = localtime($t0);
$FEHLER = "red";
$WARNUNG = "yellow";
$OPTIMAL = "green";
##################################################################
# WEBOPAC Testen
##################################################################
#
system("wget -o /dev/null -O /tmp/opc4 \"$REQUEST\" 2>/dev/null");
# Bestimmung des Ergebnissstatuses aus der Antwortzeit.
$elapsed = time - $t0;
if ( $elapsed <= 6 ){
$STATUS = $OPTIMAL;
}
elsif ( $elapsed <= 12 ){
$STATUS = $WARNUNG;
}
else {
$STATUS = $FEHLER;
}
##################################################################
# TCP Verbindung (ToBB) oeffnen und Text versenden.
##################################################################
use Socket;
$SIG{'INT'} = 'interrupted';
sub unbuffer {
local($channel) = @_;
local($oldchannel);
$oldchannel = select($channel);
$| = 1;
select($oldchannel);
}
sub interrupted {
print STDERR "\nClosing connection to peer (interrupt)\n";
close(ToBB);
exit 1;
}
# Ermittle IP-Adresse des Servers aus Hostnamen
($name, $aliases, $type, $len, @srvaddr) = gethostbyname($BB_DISP);
$sockaddr = 'S n a4 x8';
$server = pack($sockaddr, &AF_INET, $BB_PORT, $srvaddr[0]);
# (1) TCP socket anfordern
socket(ToBB, &AF_INET, &SOCK_STREAM, 0) ||
die "Cannot create socket: $!\n";
# (2) Verbindung aufbauen
connect(ToBB, $server) ||
die "Cannot connect: $!\n";
# (3) Verbindung ist hergestellt
print STDERR "Connected to $BB_DISP, port #$BB_PORT\n";
# kein I/O buffering auf dem socket
unbuffer(ToBB);
# Versenden der Nachicht.
# 1. Zeile: Statusinfos und Ueberschrift
# wird '<h3>' formatiert.
# 2..n. Zeile: Erklaerender Text
# wird als '<pre>' ausgegeben.
print ToBB "$GUELTIG $THISHOST.$INDENT $STATUS $ZEITSTEMPEL\n";
print ToBB "Verbindungstest OPC4 von $THISHOST.\n";
print ToBB "$EXTAMSG\n";
print ToBB "Dauer = $elapsed\n";
close (ToBB);
# ENDE #
> Hi all,
>
> I want to set an alarm when the connection time of the conn test to a server exceeds i.e.
> 50 ms.
>
> Is there a possibility for this?
>
> Thanx
>
> Chris
>
>
--
Mit freundlichen Gruessen
Rolf Schrittenlocher
Bitte beachten Sie die neue Emailadresse!
HeBIS-IT, Senckenberganlage 31, 60054 Frankfurt
Tel: (49) 69 - 798 28908 Fax: (49) 69 798 28817
LBS: lbs-f at mlist.uni-frankfurt.de
Persoenlich: schritte at hebis.uni-frankfurt.de
More information about the Xymon
mailing list