From ed30c60150ffda0301eb1f8d30c93cac94de41df Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 25 Jul 2011 10:38:22 -0400
Subject: [PATCH] Fixed some warnings in the installer.
---
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