From 36d307956bcb0c07ad819826831db21913ed8ad5 Mon Sep 17 00:00:00 2001 From: vogelor <vogelor@ispconfig3> Date: Tue, 25 Nov 2008 14:12:01 -0500 Subject: [PATCH] monitor now monitors RAID changed the menu (hopefully now better to understand) fixed some small errors in update-state --- server/mods-available/monitor_core_module.inc.php | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 206 insertions(+), 28 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index aff1c38..342d76a 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -109,6 +109,8 @@ $this->monitorIspConfigLog(); $this->monitorSystemUpdate(); $this->monitorMailQueue(); + $this->monitorRaid(); + $this->monitorRkHunter(); } function monitorServer(){ @@ -452,14 +454,12 @@ function monitorSystemUpdate(){ - /* This monitoring is only available at debian or Ubuntu */ - if(!file_exists('/etc/debian_version')) return; - /* - * This monitoring is expensive, so do it only once a hour! + * This monitoring is expensive, so do it only once a day (at 5:00) */ + $hour = date('G'); $min = date('i'); - if ($min != 0) return; + if (($min != 0) && ($hour != 5)) return; /* * OK - here we go... @@ -476,31 +476,48 @@ /* There is only ONE Update-Data, so delete the old one */ $this->_delOldRecords($type, 0); - /* - * first update the "update-database" - */ - shell_exec('apt-get update'); + /* This monitoring is only available at debian or Ubuntu */ + if(file_exists('/etc/debian_version')){ - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('apt-get -s -qq dist-upgrade'); - if ($aptData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } + /* + * first update the "update-database" + */ + shell_exec('apt-get update'); - /* - * Fetch the output - */ - $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); + /* + * Then test the upgrade. + * if there is any output, then there is a needed update + */ + $aptData = shell_exec('apt-get -s -qq dist-upgrade'); + if ($aptData == '') + { + /* There is nothing to update! */ + $state = 'ok'; + } + else + { + /* There is something to update! */ + $state = 'warning'; + } + + /* + * Fetch the output + */ + $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); + } + else { + /* + * It is not debian/Ubuntu, so there is no data and no state + * + * no_state, NOT unknown, because "unknown" is shown as state + * inside the GUI. no_state is hidden. + * + * We have to write NO DATA inside the DB, because the GUI + * could not know, if there is any dat, or not... + */ + $state = 'no_state'; + $data['output']= ''; + } /* * Insert the data into the database @@ -562,6 +579,87 @@ $app->db->query($sql); } + + function monitorRaid(){ + global $app; + global $conf; + + /* the id of the server as int */ + $server_id = intval($conf["server_id"]); + + /** The type of the data */ + $type = 'raid_state'; + + /* There is only ONE RAID-Data, so delete the old one */ + $this->_delOldRecords($type, 0); + + /* This monitoring is only available if mdadm is installed */ + $location = shell_exec('which mdadm'); + if($location != ''){ + /* + * Fetch the output + */ + $data['output'] = shell_exec('cat /proc/mdstat'); + + /* + * Then calc the state. + */ + $tmp = explode("\n", $data['output']); + $state = 'ok'; + foreach($tmp as $line) { + if (strpos($line, '[U_]' !== false)) + { + /* One Disk is not working */ + $state = $this->_setState($state, 'critical'); + } + if (strpos($line, '[_U]' !== false)) + { + /* One Disk is not working */ + $state = $this->_setState($state, 'critical'); + } + if (strpos($line, '[__]' !== false)) + { + /* both Disk are not working */ + $state = $this->_setState($state, 'error'); + } + if (strpos($line, '[=' !== false)) + { + /* the raid is in resync */ + $state = $this->_setState($state, 'information'); + } + } + + } + else { + /* + * mdadm is not installed, so there is no data and no state + * + * no_state, NOT unknown, because "unknown" is shown as state + * inside the GUI. no_state is hidden. + * + * We have to write NO DATA inside the DB, because the GUI + * could not know, if there is any dat, or not... + */ + $state = 'no_state'; + $data['output']= ''; + } + + /* + * Insert the data into the database + */ + $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . + "VALUES (". + $server_id . ", " . + "'" . $app->db->quote($type) . "', " . + time() . ", " . + "'" . $app->db->quote(serialize($data)) . "', " . + "'" . $state . "'" . + ")"; + $app->db->query($sql); + } + + function monitorRkHunter(){ + } function monitorMailLog() { @@ -781,6 +879,86 @@ "'" . $state . "'" . ")"; $app->db->query($sql); + +/* for later (to detect that the version is outdated) +-------------------------------------- +Received signal: wake up +ClamAV update process started at Sun Nov 23 12:03:49 2008 +main.cvd is up to date (version: 49, sigs: 437972, f-level: 35, builder: sven) +Trying host db.local.clamav.net (85.214.20.182)... +Downloading daily-8675.cdiff [100%] +Downloading daily-8676.cdiff [100%] +daily.cld updated (version: 8676, sigs: 26800, f-level: 35, builder: ccordes) +Database updated (464772 signatures) from db.local.clamav.net (IP: 85.214.20.182) +Clamd successfully notified about the update. +-------------------------------------- +-------------------------------------- +freshclam daemon 0.90.1 (OS: linux-gnu, ARCH: i386, CPU: i486) +ClamAV update process started at Sun Nov 23 12:37:49 2008 +WARNING: Your ClamAV installation is OUTDATED! +WARNING: Local version: 0.90.1 Recommended version: 0.94.1 +DON'T PANIC! Read http://www.clamav.net/support/faq +Downloading main-43.cdiff [0%] +Downloading main-44.cdiff [0%] +Downloading main-45.cdiff [0%] +Downloading main-46.cdiff [0%] +Downloading main-47.cdiff [0%] +Downloading main-48.cdiff [0%] +Downloading main-49.cdiff [0%] +main.cvd updated (version: 49, sigs: 437972, f-level: 35, builder: sven) +WARNING: Your ClamAV installation is OUTDATED! +WARNING: Current functionality level = 14, recommended = 35 +DON'T PANIC! Read http://www.clamav.net/support/faq +ERROR: getfile: daily-2692.cdiff not found on remote server (IP: 62.75.166.141) +ERROR: getpatch: Can't download daily-2692.cdiff from db.local.clamav.net +ERROR: getfile: daily-2692.cdiff not found on remote server (IP: 62.26.160.3) +ERROR: getpatch: Can't download daily-2692.cdiff from db.local.clamav.net +ERROR: getfile: daily-2692.cdiff not found on remote server (IP: 213.174.32.130) +ERROR: getpatch: Can't download daily-2692.cdiff from db.local.clamav.net +ERROR: getfile: daily-2692.cdiff not found on remote server (IP: 212.1.60.18) +ERROR: getpatch: Can't download daily-2692.cdiff from db.local.clamav.net +ERROR: getfile: daily-2692.cdiff not found on remote server (IP: 193.27.50.222) +ERROR: getpatch: Can't download daily-2692.cdiff from db.local.clamav.net +WARNING: Incremental update failed, trying to download daily.cvd +Downloading daily.cvd [0%] +daily.cvd updated (version: 8676, sigs: 26800, f-level: 35, builder: ccordes) +WARNING: Your ClamAV installation is OUTDATED! +WARNING: Current functionality level = 14, recommended = 35 +DON'T PANIC! Read http://www.clamav.net/support/faq +Database updated (464772 signatures) from db.local.clamav.net (IP: 91.198.238.33) +-------------------------------------- +-------------------------------------- +freshclam daemon 0.94.1 (OS: linux-gnu, ARCH: i386, CPU: i486) +ClamAV update process started at Sun Nov 23 13:01:17 2008 +Trying host db.local.clamav.net (193.27.50.222)... +Downloading main.cvd [100%] +main.cvd updated (version: 49, sigs: 437972, f-level: 35, builder: sven) +daily.cvd is up to date (version: 8676, sigs: 26800, f-level: 35, builder: ccordes) +Database updated (464772 signatures) from db.local.clamav.net (IP: 193.27.50.222) +-------------------------------------- +-------------------------------------- +freshclam daemon 0.94.1 (OS: linux-gnu, ARCH: i386, CPU: i486) +ClamAV update process started at Tue Nov 25 19:11:42 2008 +main.cvd is up to date (version: 49, sigs: 437972, f-level: 35, builder: sven) +Trying host db.local.clamav.net (85.214.44.186)... +Downloading daily-8677.cdiff [100%] +Downloading daily-8678.cdiff [100%] +Downloading daily-8679.cdiff [100%] +daily.cld updated (version: 8679, sigs: 26975, f-level: 35, builder: ccordes) +Database updated (464947 signatures) from db.local.clamav.net (IP: 85.214.44.186) +-------------------------------------- +-------------------------------------- +freshclam daemon 0.94.1 (OS: linux-gnu, ARCH: i386, CPU: i486) +ClamAV update process started at Tue Nov 25 19:16:18 2008 +main.cvd is up to date (version: 49, sigs: 437972, f-level: 35, builder: sven) +daily.cld is up to date (version: 8679, sigs: 26975, f-level: 35, builder: ccordes) +-------------------------------------- +Received signal: wake up +ClamAV update process started at Tue Nov 25 20:16:25 2008 +main.cvd is up to date (version: 49, sigs: 437972, f-level: 35, builder: sven) +daily.cld is up to date (version: 8679, sigs: 26975, f-level: 35, builder: ccordes) +-------------------------------------- + */ } function monitorIspConfigLog() -- Gitblit v1.9.1