Hi,
ich habe mal ein kleines Skript zur Serverüberwachung geschrieben und würde mich sehr über Kritik und Änderungsvorschläge freuen, das Skript soll später dann mal per Cronjob alle 20min ausgeführt werden und wenn etwas nicht erreichbar ist eine Mail verschicken.
Hier das Skript:
Das Skript an sich funktioniert schon, mich interessiert aber, was man noch besser lösen kann...
Gruß
Chris
ich habe mal ein kleines Skript zur Serverüberwachung geschrieben und würde mich sehr über Kritik und Änderungsvorschläge freuen, das Skript soll später dann mal per Cronjob alle 20min ausgeführt werden und wenn etwas nicht erreichbar ist eine Mail verschicken.
Hier das Skript:
PHP:
<?php
$server = ""; //Hostname oder IP
$port1 = ""; //HTTP
$port2 = ""; //FTP
$port3 = ""; //MySQL
$port4 = ""; //SMTP
$port5 = ""; //POP3
$port6 = ""; //IMAP
//HTTP SERVER AUF FUNKTION TESTEN
$http = @fsockopen($server, $port1);
if (!$http)
{
$httpstatus = 'nicht erreichbar';
}else {
$httpstatus = 'erreichbar';
}
//FTP SERVER AUF FUNKTION TESTEN
$ftp = @fsockopen($server, $port2);
if (!$ftp)
{
$ftpstatus = 'nicht erreichbar';
}else {
$ftpstatus = 'erreichbar';
}
//MySQL SERVER AUF FUNKTION TESTEN
$mysql = @fsockopen($server, $port3);
if (!$mysql)
{
$mysqlstatus = 'nicht erreichbar';
}else {
$mysqlstatus = 'erreichbar';
}
//SMTP SERVER AUF FUNKTION TESTEN
$smtp = @fsockopen($server, $port4);
if (!$smtp)
{
$smtpstatus = 'nicht erreichbar';
}else {
$smtpstatus = 'erreichbar';
}
//POP3 SERVER AUF FUNKTION TESTEN
$pop3 = @fsockopen($server, $port5);
if (!$pop3)
{
$pop3status = 'nicht erreichbar';
}else {
$pop3status = 'erreichbar';
}
//IMAP SERVER AUF FUNKTION TESTEN
$imap = @fsockopen($server, $port6);
if (!$imap)
{
$imapstatus = 'nicht erreichbar';
}else {
$imapstatus = 'erreichbar';
}
if ($httpstatus == 'nicht erreichbar'or $ftpstatus == 'nicht erreichbar'or $mysqlstatus == 'nicht erreichbar'or $smtpstatus == 'nicht erreichbar'or $pop3status == 'nicht erreichbar'or $imapstatus == 'nicht erreichbar'){
$sender_name = "Server Monitor";
$empfänger_mail_adresse = ""; //Mailadresse
$nachricht = "Folgende Serverdienste sind auf dem Server: $server ausgefallen bzw. nicht erreichbar:
HTTP: $httpstatus an Port: $port1
FTP: $ftpstatus an Port: $port2
MySQL: $mysqlstatus an Port: $port3
SMTP: $smtpstatus an Port: $port4
POP3: $pop3status an Port: $port5
IMAP: $imapstatus an Port: $port6
";
$betreff = "Serverprobleme";
$headers .= "From: ".$sender_name."";
if (mail($empfänger_mail_adresse, $betreff, $nachricht, $headers));
}
?>
Das Skript an sich funktioniert schon, mich interessiert aber, was man noch besser lösen kann...
Gruß
Chris