From 045beddf0eab55fe0cf94c43f9d146a1f3ad1e45 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Sun, 25 Jan 2009 06:30:01 -0500 Subject: [PATCH] Fixed: FS#474 - serial not updated for domain after changes --- server/mods-available/monitor_core_module.inc.php | 238 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 174 insertions(+), 64 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index bfed2e1..cf263a2 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -36,7 +36,16 @@ /* No actions at this time. maybe later... */ var $actions_available = array(); - /* + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + global $conf; + + return true; + + } + + /* This function is called when the module is loaded */ function onLoad() { @@ -104,6 +113,7 @@ $this->monitorMailWarnLog(); $this->monitorMailErrLog(); $this->monitorMessagesLog(); + $this->monitorISPCCronLog(); $this->monitorFreshClamLog(); $this->monitorClamAvLog(); $this->monitorIspConfigLog(); @@ -111,6 +121,7 @@ $this->monitorMailQueue(); $this->monitorRaid(); $this->monitorRkHunter(); + $this->monitorSysLog(); } function monitorServer(){ @@ -156,12 +167,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -180,8 +191,8 @@ /** The state of the disk-usage */ $state = 'ok'; - /** Fetch the data into a array */ - $dfData = shell_exec("df"); + /** Fetch the data of ALL devices into a array (needed for monitoring!)*/ + $dfData = shell_exec("df -hT"); // split into array $df = explode("\n", $dfData); @@ -197,11 +208,12 @@ */ $s = preg_split ("/[\s]+/", $df[$i]); $data[$i]['fs'] = $s[0]; - $data[$i]['size'] = $s[1]; - $data[$i]['used'] = $s[2]; - $data[$i]['available'] = $s[3]; - $data[$i]['percent'] = $s[4]; - $data[$i]['mounted'] = $s[5]; + $data[$i]['type'] = $s[1]; + $data[$i]['size'] = $s[2]; + $data[$i]['used'] = $s[3]; + $data[$i]['available'] = $s[4]; + $data[$i]['percent'] = $s[5]; + $data[$i]['mounted'] = $s[6]; /* * calculate the state */ @@ -220,12 +232,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -251,7 +263,7 @@ $memInfo = explode("\n", $miData); foreach($memInfo as $line){ - $part = split(":", $line); + $part = preg_split("/:/", $line); $key = trim($part[0]); $tmp = explode(" ", trim($part[1])); $value = 0; @@ -271,12 +283,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -301,7 +313,7 @@ $cpuInfo = explode("\n", $cpuData); foreach($cpuInfo as $line){ - $part = split(":", $line); + $part = preg_split("/:/", $line); $key = trim($part[0]); $value = trim($part[1]); $data[$key] = $value; @@ -316,12 +328,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -337,7 +349,7 @@ $server_id = intval($conf["server_id"]); /** get the "active" Services of the server from the DB */ - $services = $app->db->queryOneRecord("SELECT * FROM server WHERE server_id = " . $server_id); + $services = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $server_id); /* The type of the Monitor-data */ $type = 'services'; @@ -440,12 +452,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -520,12 +532,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 0, 2); @@ -566,12 +578,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -626,6 +638,22 @@ /* both Disk are not working */ $state = $this->_setState($state, 'error'); } + if (strpos($line, '[UU]') !== false) + { + /* The disks are OK. + * if the next line starts with "[>" or "[=" then + * recovery (resync) is in state and the state is + * information instead of ok + */ + $nextLine = $tmp[$i+1]; + if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { + $state = $this->_setState($state, 'ok'); + } + else + { + $state = $this->_setState($state, 'info'); + } + } } } @@ -649,12 +677,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -682,7 +710,7 @@ /* * Fetch the output */ - $data['output'] = shell_exec('rkhunter --update --check --nocolors --skip-keypress'); + $data['output'] = shell_exec('rkhunter --update --checkall --nocolors --skip-keypress'); /* * At this moment, there is no state (maybe later) @@ -709,18 +737,60 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 0, 2); } - function monitorMailLog() + function monitorSysLog(){ + global $app; + global $conf; + + /* the id of the server as int */ + $server_id = intval($conf["server_id"]); + + /** The type of the data */ + $type = 'sys_log'; + + /* + * is there any warning or error for this server? + */ + $state = 'ok'; + $dbData = $app->dbmaster->queryAllRecords("SELECT loglevel FROM sys_log WHERE server_id = " . $server_id . " AND loglevel > 0"); + if (is_array($dbData)) { + foreach($dbData as $item){ + if ($item['loglevel'] == 1) $state = $this->_setState($state, 'warning'); + if ($item['loglevel'] == 2) $state = $this->_setState($state, 'error'); + } + } + + /** There is no monitor-data because the data is in the sys_log table */ + $data['output']= ''; + + /* + * Insert the data into the database + */ + $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . + "VALUES (". + $server_id . ", " . + "'" . $app->dbmaster->quote($type) . "', " . + time() . ", " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . + "'" . $state . "'" . + ")"; + $app->dbmaster->query($sql); + + /* The new data is written, now we can delete the old one */ + $this->_delOldRecords($type, 10); + } + +function monitorMailLog() { global $app; global $conf; @@ -746,12 +816,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -783,12 +853,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -820,12 +890,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -858,17 +928,54 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); } + function monitorISPCCronLog() + { + global $app; + global $conf; + + /* the id of the server as int */ + $server_id = intval($conf["server_id"]); + + /** The type of the data */ + $type = 'log_ispc_cron'; + + /* Get the data of the log */ + $data = $this->_getLogData($type); + + /* + * actually this info has no state. + * maybe someone knows better...???... + */ + $state = 'no_state'; + + /* + Insert the data into the database + */ + $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . + "VALUES (". + $server_id . ", " . + "'" . $app->dbmaster->quote($type) . "', " . + time() . ", " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . + "'" . $state . "'" . + ")"; + $app->dbmaster->query($sql); + + /* The new data is written, now we can delete the old one */ + $this->_delOldRecords($type, 10); + } + function monitorFreshClamLog() { global $app; @@ -930,12 +1037,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -964,12 +1071,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -998,12 +1105,12 @@ $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . "VALUES (". $server_id . ", " . - "'" . $app->db->quote($type) . "', " . + "'" . $app->dbmaster->quote($type) . "', " . time() . ", " . - "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $app->dbmaster->quote(serialize($data)) . "', " . "'" . $state . "'" . ")"; - $app->db->query($sql); + $app->dbmaster->query($sql); /* The new data is written, now we can delete the old one */ $this->_delOldRecords($type, 10); @@ -1023,6 +1130,9 @@ break; case 'log_messages': $logfile = '/var/log/messages'; + break; + case 'log_ispc_cron': + $logfile = '/var/log/ispconfig/cron.log'; break; case 'log_freshclam': $logfile = '/var/log/clamav/freshclam.log'; @@ -1111,10 +1221,10 @@ $old = $now - ($min * 60) - ($hour * 60 * 60) - ($days * 24 * 60 * 60); $sql = "DELETE FROM monitor_data " . "WHERE " . - "type =" . "'" . $app->db->quote($type) . "' " . + "type =" . "'" . $app->dbmaster->quote($type) . "' " . "AND " . "created < " . $old; - $app->db->query($sql); + $app->dbmaster->query($sql); } /* @@ -1195,4 +1305,4 @@ } // end class -?> \ No newline at end of file +?> -- Gitblit v1.9.1