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 | 81 +++++++++++++++++++++++++++++++++++----- 1 files changed, 70 insertions(+), 11 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index b5ca043..6b93e1e 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -117,7 +117,6 @@ $relname = "UNKNOWN"; } $distver = $ver.$lts." ".$relname; - swriteln("Operating System: ".$distver."\n"); } elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') { $distname = 'Debian'; $distver = '4.0'; @@ -133,10 +132,10 @@ $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 = 'debian70'; + $distid = 'debian60'; $distbaseid = 'debian'; } else { $distname = 'Debian'; @@ -303,7 +302,7 @@ $state = 'ok'; //* Fetch the data for all users - $dfData = shell_exec('repquota -au'); + $dfData = shell_exec('repquota -au 2>/dev/null'); //* Split into array $df = explode("\n", $dfData); @@ -331,7 +330,7 @@ } //** Fetch the data for all users - $dfData = shell_exec('repquota -ag'); + $dfData = shell_exec('repquota -ag 2>/dev/null'); //* split into array $df = explode("\n", $dfData); @@ -474,7 +473,7 @@ } public function monitorDiskUsage() { - global $conf; + global $app,$conf; /* the id of the server as int */ $server_id = intval($conf['server_id']); @@ -486,7 +485,10 @@ $state = 'ok'; /** Fetch the data of ALL devices into a array (needed for monitoring!) */ - $dfData = shell_exec('df -hT'); + //$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); @@ -753,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 + } } /* @@ -898,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')) { /* @@ -1149,6 +1158,7 @@ $data['output'] = shell_exec('tw_cli info c0'); $state = 'ok'; + if(is_array($data['output'])) { foreach ($data['output'] as $item) { if (strpos($item, 'RAID') !== false) { if (strpos($item, ' VERIFYING ') !== false) { @@ -1191,6 +1201,7 @@ $this->_setState($state, 'critical'); } } + } } } @@ -1295,6 +1306,51 @@ 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. + * + * 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 monitorIPTables() { global $conf; @@ -1308,7 +1364,7 @@ system('which iptables', $retval); // Debian, Ubuntu, Fedora if ($retval === 0) { /* Get the data of the log */ - $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S'); + $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S 2>/dev/null'); /* * At this moment, there is no state (maybe later) @@ -1324,7 +1380,7 @@ system('which ip6tables', $retval); // Debian, Ubuntu, Fedora if ($retval === 0) { /* Get the data of the log */ - $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S'); + $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S 2>/dev/null'); /* * At this moment, there is no state (maybe later) @@ -1741,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'; @@ -1922,4 +1981,4 @@ } -?> \ No newline at end of file +?> -- Gitblit v1.9.1