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/mods-available/monitor_core_module.inc.php | 44 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 35 insertions(+), 9 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index 2e66d64..88e994d 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -89,7 +89,7 @@ $this->_tools = new monitor_tools(); /* - * Calls the single Monitoring steps + * Calls the single Monitoring steps */ $this->_monitorEmailQuota(); $this->_monitorHDQuota(); @@ -117,6 +117,7 @@ $this->_monitorRaid(); $this->_monitorRkHunter(); $this->_monitorFail2ban(); + $this->_monitorMongoDB(); $this->_monitorIPTables(); $this->_monitorSysLog(); } @@ -129,12 +130,12 @@ */ $min = @date('i', $this->_run_time); if ($min % 15 != 0) return; - + $app->uses('getconf'); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); if($mail_config['mailbox_quota_stats'] == 'n') return; - - + + /* * First we get the Monitoring-data from the tools */ @@ -422,7 +423,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorSystemUpdate(); - + //* Ensure that output is encoded so that it does not break the serialize //$res['data']['output'] = htmlentities($res['data']['output']); $res['data']['output'] = htmlentities($res['data']['output'],ENT_QUOTES,'UTF-8'); @@ -536,6 +537,31 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorFail2ban(); + + /* + * Insert the data into the database + */ + $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . + 'VALUES (' . + $res['server_id'] . ', ' . + "'" . $app->dbmaster->quote($res['type']) . "', " . + 'UNIX_TIMESTAMP(), ' . + "'" . $app->dbmaster->quote(serialize($res['data'])) . "', " . + "'" . $res['state'] . "'" . + ')'; + $app->dbmaster->query($sql); + + /* The new data is written, now we can delete the old one */ + $this->_delOldRecords($res['type'], $res['server_id']); + } + + private function _monitorMongoDB() { + global $app; + + /* + * First we get the Monitoring-data from the tools + */ + $res = $this->_tools->monitorMongoDB(); /* * Insert the data into the database @@ -712,7 +738,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorISPCCronLog(); - + //* Ensure that output is encoded so that it does not break the serialize if(is_array($res) && isset($res['data'])) $res['data'] = htmlentities($res['data']); @@ -820,10 +846,10 @@ // $now = time(); // $old = $now - (4 * 60); // 4 minutes $old = 'UNIX_TIMESTAMP() - 240'; - + /* * ATTENTION if i do NOT pay attention of the server id, i delete all data (of the type) - * of ALL servers. This means, if i have a multiserver-environment and a server has a + * of ALL servers. This means, if i have a multiserver-environment and a server has a * time not synced with the others (for example, all server has 11:00 and ONE server has * 10:45) then the actual data of this server (with the time-stamp 10:45) get lost * even though it is the NEWEST data of this server. To avoid this i HAVE to include @@ -841,4 +867,4 @@ } -?> \ No newline at end of file +?> -- Gitblit v1.9.1