vogelor
2009-01-26 476a60908e004bd330a111a0e6028d61053fafa5
server/mods-available/monitor_core_module.inc.php
@@ -121,6 +121,7 @@
        $this->monitorMailQueue();
        $this->monitorRaid();
        $this->monitorRkHunter();
      $this->monitorFail2ban();
        $this->monitorSysLog();
    }
@@ -748,6 +749,58 @@
        $this->_delOldRecords($type, 0, 2);
    }
    function monitorFail2ban(){
        global $app;
        global $conf;
        /* the id of the server as int */
        $server_id = intval($conf["server_id"]);
        /** The type of the data */
        $type = 'log_fail2ban';
        /* This monitoring is only available if fail2ban is installed */
        $location = shell_exec('which fail2ban-client');
        if($location != ''){
         /*  Get the data of the log */
         $data = $this->_getLogData($type);
            /*
             * At this moment, there is no state (maybe later)
             */
            $state = 'no_state';
        }
        else {
            /*
             * fail2ban 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 = '';
        }
        /*
         * 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 monitorSysLog(){
        global $app;
        global $conf;
@@ -1140,6 +1193,9 @@
            case 'log_clamav':
                $logfile = '/var/log/clamav/clamav.log';
                break;
            case 'log_fail2ban':
                $logfile = '/var/log/fail2ban.log';
                break;
            case 'log_ispconfig':
                $logfile = '/var/log/ispconfig/ispconfig.log';
                break;