Jump to content
Sign in to follow this  
anto78

Monitorare uptime server e pacchetti shared/reseller

Recommended Posts

Salve,

Avrei bisogno gentilmente di un consiglio.

Conoscete dei servizi, possibilmente gratuiti ma affidabili, che forniscano il monitoraggio di server, di VPS e di pacchetti shared/reseller hosting per poterne valutare i tempi di uptime e gli eventuali downtime?

Grazie.

 

Saluti,

Antonio

Share this post


Link to post
Share on other sites

Penso che la miglior soluzione, se non si desidera acquistare dei programmi adhoc, creare un prorio script di monitor del tipo (incollo una porzione visto che non si trova più in rete)

 

file config.php

<?php

// NAME OF HOST (USED FOR PAGE TITLES)

$host_name = 'Statistiche Server';



// EMAIL ADDRESSES FOR NOTIFICATIONS IN THE FORM OF: ("email@domain.com", "pager@domain.com", "etc")

$email_addresses = array("xxxxxxxxxxx", "xxxxxxxxxx", "xxxxxxxxxxxxxxx");


// SERVER LIST AS SERVER NAMES AND IP'S IN THE FORM OF: ("name|localhost", "server.name.com|111.222.333.444", "etc")


$servers = array("server|xxxxxxxxxxxxx");



//                      SERVICES IN THE FORM OF: ("Service name|port number", "Another service|another port")

$services = array("HTTP|80");


?>

file da richiamae col cron

 

<?
include("../config.php");

function portscan($port,$server)
{
   $l = 1;
   while(($l<=3)&&(!$fp)) { $fp = fsockopen($server, $port, $errno, $errstr, 0.6); $l = $l+1; }
   if (!$fp) { $status=0; }
   else { $status=1; fclose($fp); }
   return $status;
}

for($i=0; $i<count($servers); $i++)
{
   $log .= date("d M y, g:ia")."~";
   $server = explode("|", $servers[$i]);

   for($j=0; $j<count($services); $j++)
   {
       $service_port = explode("|", $services[$j]);

       $service_status = portscan("$service_port[1]","$server[1]");
       $log .= $service_status;

       if($service_status == 0) {
       $service_warning .= "$server[1]\n";
       }

       $log .= "|";
   }


   if($service_warning) { $service_warn = "The following services failed:\n$service_warning"; }

   $log .= "\n";
}

if(ereg("0\\|", $log)) {
$fail_time = date("d M Y g:ia");
$from = "From: $service_warning <infoxxxxxxxxxxxxxxx
foreach($email_addresses as $email_addresses) {
mail($email_addresses, "DOWN", "  $fail_time\n\n$service_warn", "$from\nReply-to:$email_addresses\r\nX-Mailer: PHP\nContent-Type: text/html");
echo "To : $email_addresses ; DOWN ;  PROBLEMI $fail_time\n\n$service_warn ; From: $service_warning<info@xxxxxxxxxxxxx>\r\nReply-to:$email_addresses\r\nX-Mailer: PHP\nContent-Type: text/html<br>";
} }
?>

Edited by Luca

Share this post


Link to post
Share on other sites
Penso che la miglior soluzione, se non si desidera acquistare dei programmi adhoc, creare un prorio script di monitor del tipo (incollo una porzione visto che non si trova più in rete)

 

file config.php

 

 

file da richiamae col cron

 

Giusto per monitorare qualche servizio... perchè ovviamente se il server va giù non arriva nessuna email...

 

Mentre un servizio esterno (ancorchè limitato) non ha di questi problemi...

Share this post


Link to post
Share on other sites

Quello script è da usare incronciato tra server non da mettere sul medesimo server da monitorare:)

Basta aggiungere le porte e il gioco è fatto. Può esser lanciato via cron anche ogni 2 minuti

E' uno scriptino e come tale và preso con le pinze. Inserito visto che si parlava, se non sbaglio, di qualcosa di gratuito

 

Prtg andrebbe installato incrociato su server in rete non su pc connessi ad adsl. E' una valida soluzione

Share this post


Link to post
Share on other sites

Prova cosi:

<?
include("../config.php");

function portscan($port,$server)
{
$l = 1;
while(($l<=3)&&(!$fp)) { $fp = fsockopen($server, $port, $errno, $errstr, 0.6); $l = $l+1; }
if (!$fp) { $status=0; }
else { $status=1; fclose($fp); }
return $status;
}

for($i=0; $i<count($servers); $i++)
{
$log .= date("d M y, g:ia")."~";
$server = explode("|", $servers[$i]);

for($j=0; $j<count($services); $j++)
{
$service_port = explode("|", $services[$j]);

$service_status = portscan("$service_port[1]","$server[1]");
$log .= $service_status;

if($service_status == 0) {
$service_warning .= "$server[1]\n";
}

$log .= "|";
}


if($service_warning) { $service_warn = "The following services failed:\n$service_warning"; }

$log .= "\n";
}

if(ereg("0\\|", $log)) {
$fail_time = date("d M Y g:ia");
$from = "From: $service_warning <infoxxxxxxxxxxxxxxx";
foreach($email_addresses as $email_addresses) {
mail($email_addresses, "DOWN", " $fail_time\n\n$service_warn", "$from\nReply-to:$email_addresses\r\nX-Mailer: PHP\nContent-Type: text/html");
echo "To : $email_addresses ; DOWN ; PROBLEMI $fail_time\n\n$service_warn ; From: $service_warning<info@xxxxxxxxxxxxx>\r\nReply-to:$email_addresses\r\nX-Mailer: PHP\nContent-Type: text/html<br>";
} }
?> 

Edited by Luca

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×