From cdda6b98d785f103d9be6643a99a882c0d65b64c Mon Sep 17 00:00:00 2001 From: fantu <fantu@ispconfig3> Date: Sun, 21 Dec 2008 04:51:07 -0500 Subject: [PATCH] fix parse error --- server/mods-available/monitor_core_module.inc.php | 74 +++++++++++++++++++++++++++++++++++- 1 files changed, 71 insertions(+), 3 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index a7d0d51..cbd2417 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() { @@ -111,6 +120,7 @@ $this->monitorMailQueue(); $this->monitorRaid(); $this->monitorRkHunter(); + $this->monitorSysLog(); } function monitorServer(){ @@ -626,6 +636,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'); + } + } } } @@ -682,7 +708,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) @@ -720,7 +746,49 @@ $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; -- Gitblit v1.9.1