tbrehm
2011-09-05 ae8bfe0d361f0d2054c50267243ca930f1b89893
server/lib/classes/monitor_tools.inc.php
@@ -149,7 +149,6 @@
      return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'baseid' => $distbaseid);
   }
/*
    //** Email Quota
    public function monitorEmailQuota() {
        global $conf;
@@ -184,7 +183,6 @@
      $res['state'] = $state;
        return $res;
    }
*/
    //** Filesystem Quota
   public function monitorHDQuota() {
@@ -995,32 +993,34 @@
             * Then calc the state.
             */
            $state = 'ok';
            foreach ($data['output'] as $item) {
               /*
                * The output contains information for every RAID and every HDD.
                * We only need the state of the RAID
                */
               if (strpos($item, 'raidlevel:') !== false) {
            if(is_array($data['output'])) {
               foreach ($data['output'] as $item) {
                  /*
                   * We found a raid, process the state of it
                   */
                  if (strpos($item, ' ONLINE ') !== false) {
                     $this->_setState($state, 'ok');
                  } elseif (strpos($item, ' OPTIMAL ') !== false) {
                     $this->_setState($state, 'ok');
                  } elseif (strpos($item, ' INITIAL ') !== false) {
                     $this->_setState($state, 'info');
                  } elseif (strpos($item, ' INACTIVE ') !== false) {
                     $this->_setState($state, 'critical');
                  } elseif (strpos($item, ' RESYNC ') !== false) {
                     $this->_setState($state, 'info');
                  } elseif (strpos($item, ' DEGRADED ') !== false) {
                     $this->_setState($state, 'critical');
                  } else {
                     /* we don't know the state. so we set the state to critical, that the
                      * admin is warned, that something is wrong
                      */
                     $this->_setState($state, 'critical');
                  * The output contains information for every RAID and every HDD.
                  * We only need the state of the RAID
                  */
                  if (strpos($item, 'raidlevel:') !== false) {
                     /*
                     * We found a raid, process the state of it
                     */
                     if (strpos($item, ' ONLINE ') !== false) {
                        $this->_setState($state, 'ok');
                     } elseif (strpos($item, ' OPTIMAL ') !== false) {
                        $this->_setState($state, 'ok');
                     } elseif (strpos($item, ' INITIAL ') !== false) {
                        $this->_setState($state, 'info');
                     } elseif (strpos($item, ' INACTIVE ') !== false) {
                        $this->_setState($state, 'critical');
                     } elseif (strpos($item, ' RESYNC ') !== false) {
                        $this->_setState($state, 'info');
                     } elseif (strpos($item, ' DEGRADED ') !== false) {
                        $this->_setState($state, 'critical');
                     } else {
                        /* we don't know the state. so we set the state to critical, that the
                        * admin is warned, that something is wrong
                        */
                        $this->_setState($state, 'critical');
                     }
                  }
               }
            }
@@ -1127,6 +1127,40 @@
      return $res;
   }
   public function monitorIPTables() {
        global $conf;
        /* the id of the server as int */
        $server_id = intval($conf['server_id']);
        /** The type of the data */
        $type = 'iptables_rules';
        /* This monitoring is only available if fail2ban is installed */
        system('which iptables', $retval); // Debian, Ubuntu, Fedora
        if ($retval === 0) {
            /*  Get the data of the log */
            $data['output'] = shell_exec('iptables -S');
            /*
             * At this moment, there is no state (maybe later)
             */
            $state = 'no_state';
        } else {
            $state = 'no_state';
            $data = '';
        }
        /*
         * Return the Result
         */
        $res['server_id'] = $server_id;
        $res['type'] = $type;
        $res['data'] = $data;
        $res['state'] = $state;
        return $res;
    }
   public function monitorSysLog() {
      global $app;
      global $conf;