From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'
---
server/mods-available/monitor_core_module.inc.php | 806 ++-------------------------------------------------------
1 files changed, 30 insertions(+), 776 deletions(-)
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index a0410c8..a5a38c6 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -1,792 +1,46 @@
<?php
-
/*
- Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
- All rights reserved.
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh, Oliver Vogel www.muv.com
+All rights reserved.
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of ISPConfig nor the names of its contributors
- may be used to endorse or promote products derived from this software without
- specific prior written permission.
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
class monitor_core_module {
-
- var $interval = 5; // do the monitoring every 5 minutes
- var $module_name = 'monitor_core_module';
- var $class_name = 'monitor_core_module';
- /* No actions at this time. maybe later... */
+ var $module_name = 'remoteaction_core_module';
+ var $class_name = 'remoteaction_core_module';
var $actions_available = array();
- /** The Tools */
- private $_tools = null;
- /**
- * This function is called during ispconfig installation to determine
- * if a symlink shall be created for this plugin.
- */
- public function onInstall() {
- global $conf;
- return true;
+ function onInstall() {
+ return false;
}
- /**
- * This function is called when the module is loaded
- */
- public function onLoad() {
- global $app;
-
- /*
- * Do the monitor every n minutes and write the result to the db
- */
- $min = @date('i');
- if (($min % $this->interval) == 0) {
- $this->_doMonitor();
- }
+ function onLoad() {
}
- /**
- * This function is called when a change in one of the registered tables is detected.
- * The function then raises the events for the plugins.
- */
- public function process($tablename, $action, $data) {
- // not needed
+ function process() {
}
-
- /**
- * This method is called every n minutes, when the module ist loaded.
- * The method then does a system-monitoring
- */
- // TODO: what monitoring is done should be a config-var
- private function _doMonitor() {
- global $app;
- /*
- * We need the tools in almost every method, so initialize them once...
- */
- $app->load('monitor_tools');
- $this->_tools = new monitor_tools();
-
- /*
- * Calls the single Monitoring steps
- */
-// $this->_monitorEmailQuota();
- $this->_monitorHDQuota();
- $this->_monitorServer();
- $this->_monitorOsVer();
- $this->_monitorIspcVer();
- $this->_monitorDiskUsage();
- $this->_monitorMemUsage();
- $this->_monitorCpu();
- $this->_monitorServices();
- if (@file_exists('/proc/user_beancounters')) {
- $this->_monitorOpenVzHost();
- $this->_monitorOpenVzUserBeancounter();
- }
- $this->_monitorMailLog();
- $this->_monitorMailWarnLog();
- $this->_monitorMailErrLog();
- $this->_monitorMessagesLog();
- $this->_monitorISPCCronLog();
- $this->_monitorFreshClamLog();
- $this->_monitorClamAvLog();
- $this->_monitorIspConfigLog();
- $this->_monitorSystemUpdate();
- $this->_monitorMailQueue();
- $this->_monitorRaid();
- $this->_monitorRkHunter();
- $this->_monitorFail2ban();
- $this->_monitorSysLog();
- }
-
- private function _monitorEmailQuota() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorEmailQuota();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorHDQuota() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorHDQuota();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorServer() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorServer();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorOsVer() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorOsVer();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorIspcVer() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorIspcVer();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorDiskUsage() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorDiskUsage();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMemUsage() {
- global $app;
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMemUsage();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorCpu() {
- global $app;
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorCpu();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorServices() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorServices();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorOpenVzHost() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorOpenVzHost();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorOpenVzUserBeancounter() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorOpenVzUserBeancounter();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorSystemUpdate() {
- /*
- * This monitoring is expensive, so do it only once an hour
- */
- $min = @date('i');
- if ($min != 0)
- return;
-
- /*
- * OK - here we go...
- */
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorSystemUpdate();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMailQueue() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMailQueue();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorRaid() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorRaid();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorRkHunter() {
- /*
- * This monitoring is expensive, so do it only once a day
- */
- $min = @date('i');
- $hour = @date('H');
- if (!($min == 0 && $hour == 23))
- return;
- /*
- * OK . here we go...
- */
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorRkHunter();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorFail2ban() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorFail2ban();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorSysLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorSysLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMailLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMailLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMailWarnLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMailWarnLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMailErrLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMailErrLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorMessagesLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorMessagesLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorISPCCronLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorISPCCronLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorFreshClamLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorFreshClamLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorClamAvLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorClamAvLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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 _monitorIspConfigLog() {
- global $app;
-
- /*
- * First we get the Monitoring-data from the tools
- */
- $res = $this->_tools->monitorIspConfigLog();
-
- /*
- * Insert the data into the database
- */
- $sql = 'INSERT 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']);
- }
-
- /**
- * Deletes Records older than 4 minutes.
- * The monitor writes new data every 5 minutes or longer (4 hour, 1 day).
- * So if i delete all Date older than 4 minutes i can be sure, that all old data
- * are deleted...
- */
- private function _delOldRecords($type, $serverId) {
- global $app;
-
- $now = time();
- $old = $now - (4 * 60); // 4 minutes
- /*
- * 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
- * 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
- * the server-id!
- */
- $sql = 'DELETE FROM monitor_data ' .
- 'WHERE ' .
- ' type =' . "'" . $app->dbmaster->quote($type) . "' " .
- 'AND ' .
- ' created < ' . $old . ' ' .
- 'AND ' .
- ' server_id = ' . $serverId;
- $app->dbmaster->query($sql);
- }
-
}
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1