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