From 2332b2279d8a8599b4f041370315edc9544b1560 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 02 Aug 2013 10:48:38 -0400
Subject: [PATCH] Added support for mongodb. Many thanks to MaddinXx for the patch. http://www.howtoforge.com/forums/showthread.php?t=62691
---
server/lib/classes/monitor_tools.inc.php | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 56 insertions(+), 1 deletions(-)
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 9ce9556..6b93e1e 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -755,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
+ }
}
/*
@@ -1299,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;
@@ -1745,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';
@@ -1926,4 +1981,4 @@
}
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1