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