fantu
2008-12-21 cdda6b98d785f103d9be6643a99a882c0d65b64c
server/mods-available/monitor_core_module.inc.php
@@ -120,6 +120,7 @@
        $this->monitorMailQueue();
        $this->monitorRaid();
        $this->monitorRkHunter();
        $this->monitorSysLog();
    }
    function monitorServer(){
@@ -635,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');
                    }
                }
            }
        }
@@ -729,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;