From 8bbcc1db8b976a9ccfdcac1dcde5a15c01495d60 Mon Sep 17 00:00:00 2001 From: vogelor <vogelor@ispconfig3> Date: Sat, 26 Mar 2011 17:57:52 -0400 Subject: [PATCH] monitor: enhanced the apache-check -> noe we also check if apache was able to send data and not only to establish a connection --- server/lib/classes/monitor_tools.inc.php | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 40 insertions(+), 5 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 1e33ea7..2fbd402 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -332,7 +332,7 @@ /* the ISPC-Version has no state. It is, what it is */ $state = 'no_state'; - + /* * Return the Result */ @@ -446,7 +446,7 @@ * maybe someone knows better...???... */ $state = 'no_state'; - + /* * Return the Result */ @@ -607,7 +607,7 @@ $state = 'error'; // because service is down } } - + /* * Return the Result */ @@ -791,6 +791,28 @@ $state = 'info'; $data['output'] = shell_exec('glsa-check -pv --nocolor affected 2>/dev/null'); } + } elseif (file_exists('/etc/SuSE-release')) { + + /* + * update and find the upgrade. + * if there is any output, then there is a needed update + */ + $aptData = shell_exec('zypper -q lu'); + if ($aptData == '') { + /* There is nothing to update! */ + $state = 'ok'; + } else { + /* + * There is something to update! this is in most cases not critical, so we can + * do a system-update once a month or so... + */ + $state = 'info'; + } + + /* + * Fetch the output + */ + $data['output'] = shell_exec('zypper --non-interactive up'); } else { /* * It is not Debian/Ubuntu, so there is no data and no state @@ -1070,6 +1092,7 @@ } public function monitorSysLog() { + global $app; global $conf; /* the id of the server as int */ @@ -1512,10 +1535,22 @@ $fp = @fsockopen($host, $port, $errno, $errstr, 2); if ($fp) { + /* + * We got a connection, but maybe apache is not able to send data over this + * connection? + */ + fwrite($fp, "GET / HTTP/1.0\r\n\r\n"); + stream_set_timeout($fp, 2); + $res = fread($fp, 10); + $info = stream_get_meta_data($fp); fclose($fp); - return true; + if ($info['timed_out']) { + return false; // Apache was not able to send data over this connection + } else { + return true; // Apache was able to send data over this connection + } } else { - return false; + return false; // Apache was not able to establish a connection } } -- Gitblit v1.9.1