From 6ad1e4080e9cd8e10ab9ec1e876debece7ae6512 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Thu, 29 Sep 2011 07:33:17 -0400 Subject: [PATCH] - Remove hidden iframe after file upload. --- server/mods-available/monitor_core_module.inc.php | 274 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 170 insertions(+), 104 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index a336786..ec85bed 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -35,7 +35,7 @@ var $class_name = 'monitor_core_module'; /* No actions at this time. maybe later... */ var $actions_available = array(); - /** The Tools*/ + /** The Tools */ private $_tools = null; /** @@ -76,15 +76,17 @@ */ // 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(); @@ -110,8 +112,34 @@ $this->_monitorRaid(); $this->_monitorRkHunter(); $this->_monitorFail2ban(); + $this->_monitorIPTables(); $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; @@ -120,7 +148,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorHDQuota(); - + /* * Insert the data into the database */ @@ -128,14 +156,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorServer() { @@ -145,7 +173,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorServer(); - + /* * Insert the data into the database */ @@ -153,14 +181,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorOsVer() { @@ -170,7 +198,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorOsVer(); - + /* * Insert the data into the database */ @@ -178,14 +206,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorIspcVer() { @@ -195,7 +223,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorIspcVer(); - + /* * Insert the data into the database */ @@ -203,14 +231,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorDiskUsage() { @@ -220,7 +248,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorDiskUsage(); - + /* * Insert the data into the database */ @@ -228,14 +256,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorMemUsage() { @@ -244,7 +272,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorMemUsage(); - + /* * Insert the data into the database */ @@ -252,14 +280,14 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorCpu() { @@ -268,7 +296,7 @@ * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorCpu(); - + /* * Insert the data into the database */ @@ -276,24 +304,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -301,24 +329,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -326,24 +354,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -351,21 +379,21 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorSystemUpdate() { /* * This monitoring is expensive, so do it only once an hour */ - $min = date('i'); + $min = @date('i'); if ($min != 0) return; @@ -373,12 +401,12 @@ * 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 */ @@ -386,24 +414,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -411,24 +439,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -436,34 +464,34 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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'); + $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 */ @@ -471,24 +499,50 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 _monitorIPTables() { global $app; - + /* * First we get the Monitoring-data from the tools */ - $res = $this->_tools->monitorFail2ban(); - + $res = $this->_tools->monitorIPTables(); + /* * Insert the data into the database */ @@ -496,24 +550,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -521,24 +575,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -546,24 +600,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -571,24 +625,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -596,24 +650,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -621,24 +675,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -646,24 +700,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -671,24 +725,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } private function _monitorClamAvLog() { - global $app; - + global $app; + /* * First we get the Monitoring-data from the tools */ $res = $this->_tools->monitorClamAvLog(); - + /* * Insert the data into the database */ @@ -696,24 +750,24 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $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 */ @@ -721,33 +775,45 @@ 'VALUES (' . $res['server_id'] . ', ' . "'" . $app->dbmaster->quote($res['type']) . "', " . - time() . ', ' . + '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($type, 4); + $this->_delOldRecords($res['type'], $res['server_id']); } - /* - Deletes Records older than n. + /** + * 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, $min, $hour=0, $days=0) { + private function _delOldRecords($type, $serverId) { global $app; $now = time(); - $old = $now - ($min * 60) - ($hour * 60 * 60) - ($days * 24 * 60 * 60); + $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) . "' " . + ' type =' . "'" . $app->dbmaster->quote($type) . "' " . 'AND ' . - 'created < ' . $old; + ' created < ' . $old . ' ' . + 'AND ' . + ' server_id = ' . $serverId; $app->dbmaster->query($sql); } } -?> +?> \ No newline at end of file -- Gitblit v1.9.1