From 671a41a278bf435f5245ff29124b4c02b2d2b6f9 Mon Sep 17 00:00:00 2001
From: vogelor <vogelor@ispconfig3>
Date: Fri, 12 Dec 2008 07:41:27 -0500
Subject: [PATCH] monitor: the ispconfig - Log is now part of the system-state

---
 interface/web/monitor/show_sys_state.php          |   26 ++++++++++++
 server/mods-available/monitor_core_module.inc.php |   45 ++++++++++++++++++++++
 2 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/interface/web/monitor/show_sys_state.php b/interface/web/monitor/show_sys_state.php
index 3d94a4e..d316119 100644
--- a/interface/web/monitor/show_sys_state.php
+++ b/interface/web/monitor/show_sys_state.php
@@ -381,10 +381,33 @@
                 break;
         }
     }
+
+	if ($type == 'sys_log'){
+		switch ($record['state']) {
+			case 'ok':
+                $messages['ok'][] = 'The System-Log is O.K. ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[more...]</a>";
+                break;
+            case 'warning':
+                $messages['warning'][] = 'There are some warnings in your System-Log ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[more...]</a>";
+                break;
+            case 'error':
+                $messages['error'][] = 'There are errors in your System-Log ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[more...]</a>";
+                break;
+            default:
+                $messages['unknown'][] = 'sys-log:??? ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[more...]</a>";
+                break;
+        }
+    }
+
     if ($type == 'log_clamav'){
         /* this type has no state */
     }
-    if ($type == 'log_freshclam'){
+
+	if ($type == 'log_freshclam'){
         switch ($record['state']) {
             case 'ok':
                 $messages['ok'][] = 'Your Virus-protection is ok ' .
@@ -400,6 +423,7 @@
                 break;
         }
     }
+
     if ($type == 'log_ispconfig'){
         /* this type has no state */
     }
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 1ff82b1..335986f 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -120,6 +120,7 @@
         $this->monitorMailQueue();
         $this->monitorRaid();
         $this->monitorRkHunter();
+        $this->monitorSysLog();
     }
 
     function monitorServer(){
@@ -729,7 +730,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