La necesidad de esta implementacion ha sido por que no existen plugins para la monitorizacion de subversion y bacula en nagios ( o almenos no he encontrado ninguno ), luego he visto que existe check_tcp que de momento ya me vale :)
Lo que hace el programa es intentar conectar a un puerto de una ip y si lo consigue imaginamos que el servicio esta funcionando.
[sourcecode='delphi']
program check_port;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, Sockets, SysUtils
{ you can add units after this };
Var
Addr : TInetSockAddr;
S : Longint;
Sin,Sout : Text;
tmp: String;
begin
if ((ParamStr(1)='') or (ParamStr(2)='')) then
begin
Writeln('ERROR - Numero de parametros incorrectos');
Writeln('Debes escribir ip puerto');
exit;
end;
S:=fpSocket(AF_INET,SOCK_STREAM,0);
if SocketError>0 then
writeln('Socket Error ' + IntToStr(SocketError));
Addr.sin_family:=AF_INET;
Addr.sin_addr := StrToNetAddr(ParamStr(1));
Addr.sin_port:=htons(StrToInt(ParamStr(2)));
If Not Connect (S,ADDR,SIN,SOUT) Then
tmp := 'Error '
else
tmp := 'Exito ';
WriteLn(tmp + 'en la conexion con ' + ParamStr(1) + ' al puerto ' + ParamStr(2));
end.
[/sourcecode]
La funcion Connect esta deprecated pero como el nagios ya trae por defecto el plugin check_tcp tampoco era plan de perder invertir mas tiempo
Caregorias
Tags
- freepascal
- red
Add new comment