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