From 7b47c0aa0aeee6f059f00008e36cc210ca89ecb9 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 21 Aug 2013 10:28:20 -0400 Subject: [PATCH] Merged revisions 4069-4117 from stable branch. --- server/lib/classes/monitor_tools.inc.php | 68 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 5 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 92b3ecb..6b93e1e 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -132,7 +132,7 @@ $distver = 'Squeeze/Sid'; $distid = 'debian60'; $distbaseid = 'debian'; - } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') { + } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || strstr(trim(file_get_contents('/etc/debian_version')), '7.1') || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') { $distname = 'Debian'; $distver = 'Wheezy/Sid'; $distid = 'debian60'; @@ -473,7 +473,7 @@ } public function monitorDiskUsage() { - global $conf; + global $app,$conf; /* the id of the server as int */ $server_id = intval($conf['server_id']); @@ -485,7 +485,10 @@ $state = 'ok'; /** Fetch the data of ALL devices into a array (needed for monitoring!) */ - $dfData = shell_exec('df -hT 2>/dev/null'); + //$dfData = shell_exec('df -hT 2>/dev/null'); + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + $dfData = shell_exec('df -hT|grep -v "'.$web_config['website_basedir'].'/" 2>/dev/null'); // split into array $df = explode("\n", $dfData); @@ -752,6 +755,13 @@ $data['mysqlserver'] = 0; $state = 'error'; // because service is down } + + if ($this->_checkTcp('localhost', 27017)) { + $data['mongodbserver'] = 1; + } else { + $data['mongodbserver'] = 0; + $state = 'error'; // because service is down + } } /* @@ -897,7 +907,7 @@ /* * Fetch the output */ - $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); + $data['output'] = $aptData; } elseif (file_exists('/etc/gentoo-release')) { /* @@ -1275,6 +1285,51 @@ } else { /* * fail2ban is not installed, so there is no data and no state + * + * no_state, NOT unknown, because "unknown" is shown as state + * inside the GUI. no_state is hidden. + * + * We have to write NO DATA inside the DB, because the GUI + * could not know, if there is any dat, or not... + */ + $state = 'no_state'; + $data = ''; + } + + /* + * Return the Result + */ + $res['server_id'] = $server_id; + $res['type'] = $type; + $res['data'] = $data; + $res['state'] = $state; + return $res; + } + + public function monitorMongoDB() { + global $conf; + + /* the id of the server as int */ + $server_id = intval($conf['server_id']); + + /** The type of the data */ + $type = 'log_mongodb'; + + /* This monitoring is only available if MongoDB is installed */ + system('which mongod', $retval); // Debian, Ubuntu, Fedora + if ($retval !== 0) + system('which mongod', $retval); // CentOS + if ($retval === 0) { + /* Get the data of the log */ + $data = $this->_getLogData($type); + + /* + * At this moment, there is no state (maybe later) + */ + $state = 'no_state'; + } else { + /* + * MongoDB is not installed, so there is no data and no state * * no_state, NOT unknown, because "unknown" is shown as state * inside the GUI. no_state is hidden. @@ -1742,6 +1797,9 @@ $logfile = '/var/log/fail2ban.log'; } break; + case 'log_mongodb': + $logfile = '/var/log/mongodb/mongodb.log'; + break; case 'log_ispconfig': if ($dist == 'debian') { $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; @@ -1923,4 +1981,4 @@ } -?> \ No newline at end of file +?> -- Gitblit v1.9.1