Re: Monitoring Remote Server Services using php !

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I did the following, I've followed your advice and wrote my own, that is
listed below. It's a function that has 3 entry arguments, IP, Port and
Protocol. It returns if the Service is UP or DOWN. Take a Look, and see if
we can enhance it's speed.


function servstatus($remote_ip, $remote_ip_port, $remote_ip_proto) {

if ($remote_ip_proto == "tcp") {
       $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

       // Turning off Warning Messages
       $i_error_old=error_reporting();
       error_reporting($i_error_old & ~ (E_WARNING));

       if ($connect = socket_connect($socket, "$remote_ip", "" .
$remote_ip_port . "")) {
               return true;
               socket_set_block($socket);
               socket_close($socket);
               unset($connect);
       } else {
               return false;
               socket_set_nonblock($socket);
               socket_close($socket);
               unset($connect);}

} else {

       // Turning off Warning Messages
       $i_error_old=error_reporting();
       error_reporting($i_error_old & ~ (E_WARNING));

       $socket = fsockopen("udp://$remote_ip", "$remote_ip_port", &$errno,
&$errstr, 2);
       $timeout = 1;

       if (!$socket) {
               return true;
       }

       socket_set_timeout ($socket, $timeout);
       $write = fwrite($socket,"\x00");
       if (!$write) {
               return true;
       }

       $startTime = time();
       $header = fread($socket, 1);
       $endTime = time();
       $timeDiff = $endTime - $startTime;

       if ($timeDiff >= $timeout) {
               fclose($socket);
               return true;
       } else {
               fclose($socket);
               return false;
       }
       }
}


On 5/25/06, ron@xxxxxxxxxxxxx <ron@xxxxxxxxxxxxx> wrote:



On Thu, 25 May 2006, Phil Martin wrote:

> Hi everybody,
>
>     I'm new to the list and also new to php, I hope I can learn many
> things from here.
>     My first doubt is the following: I'm trying to create a small
monitor
> system, just to suit my needs in monitoring some services in my
application.
> I've found some functions that return to me the service by port, name
and so
> on (getservbyport, getservbyname). What I need is to monitor remote
server
> services, I mean, lets suppose I have a server 192.168.0.2 with a ssh
server
> running. I'd like to see the status (up/down) of that server from
another
> machine, like 192.168.0.1. I don't want to use some monitoring softwares
out
> there in the web, i know they exist and in fact I use many of them like
> nagios, cacti and so on, but I'm planning to do my own small solution.
>    What I need is some function that asks me a remote IP, port and
> protocol as input data and results TRUE/FALSE (any boolean value), just
to
> see if the service is up. I did that making a function using nmap, but i
> don't want to hold that solution to linux, I'd like to use it at other
OS.
> My function's syntax is like this
>
> <?php
>     $ssh_status=service_status (192.168.0.2, 22, tcp);
>     if ($ssh_status==TRUE); {
>             echo "Service UP";
>     } else {
>             echo "Service DOWN";
>    }
> ?>
>
>
>  Does anyone know if there is a similar function in PHP ? I'd be very
> happy if somebody knows about a function like that.
>
> Thanks in advance
>
> att.
> Felipe Martins
>
>

Why not use php and curl and write your own. Good way to start learning
php. Or you can do like we do and use php and curl to make sure you can
actually get results from the server and use a shell script or php script
on each remote server running from cron every 10/.. minutes that checks
the processes you want monitored and sends an email to a pager if it
detects a problem. That would allow you to not only monitor if a service
is running but also server load, file systems filing up, etc.


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux