tbrehm
2011-09-26 ba3e3e48e6ec4523ae26dc6c206d5bfdfa08d332
server/lib/classes/monitor_tools.inc.php
@@ -407,6 +407,15 @@
             * calculate the state
             */
            $usePercent = floatval($data[$i]['percent']);
            //* get the free memsize
            if(substr($data[$i]['available'],-1) == 'G') {
               $freesize = floatval($data[$i]['available'])*1024;
            } elseif(substr($data[$i]['available'],-1) == 'T') {
               $freesize = floatval($data[$i]['available'])*1024*1024;
            } else {
               $freesize = floatval($data[$i]['available']);
            }
            //* We don't want to check some filesystem which have no sensible filling levels
            switch ($data[$i]['type']) {
@@ -418,13 +427,13 @@
               case 'udev':
                  break;
               default:
                  if ($usePercent > 75)
                  if ($usePercent > 75 && $freesize < 2000)
                     $state = $this->_setState($state, 'info');
                  if ($usePercent > 80)
                  if ($usePercent > 80 && $freesize < 1000)
                     $state = $this->_setState($state, 'warning');
                  if ($usePercent > 90)
                  if ($usePercent > 90 && $freesize < 500)
                     $state = $this->_setState($state, 'critical');
                  if ($usePercent > 95)
                  if ($usePercent > 95 && $freesize < 100)
                     $state = $this->_setState($state, 'error');
                  break;
            }
@@ -1026,6 +1035,61 @@
            }
         }
      }
      /*
      * 3ware Controller
      */
      system('which tw_cli', $retval);
      if($retval === 0) {
         $data['output'] = shell_exec('tw_cli info c0');
         $state = 'ok';
         foreach ($data['output'] as $item) {
            if (strpos($item, 'RAID') !== false) {
               if (strpos($item, ' VERIFYING ') !== false) {
                  $this->_setState($state, 'info');
               }
               else if (strpos($item, ' MIGRATE-PAUSED ') !== false) {
                  $this->_setState($state, 'info');
               }
               else if (strpos($item, ' MIGRATING ') !== false) {
                  $this->_setState($state, 'ok');
               }
               else if (strpos($item, ' INITIALIZING ') !== false) {
                  $this->_setState($state, 'info');
               }
               else if (strpos($item, ' INIT-PAUSED ') !== false) {
                  $this->_setState($state, 'info');
               }
               else if (strpos($item, ' REBUILDING ') !== false) {
                  $this->_setState($state, 'info');
               }
               else if (strpos($item, ' REBUILD-PAUSED ') !== false) {
                  $this->_setState($state, 'warning');
               }
               else if (strpos($item, ' RECOVERY ') !== false) {
                  $this->_setState($state, 'warning');
               }
               else if (strpos($item, ' DEGRADED ') !== false) {
                  $this->_setState($state, 'critical');
               }
               else if (strpos($item, ' UNKNOWN ') !== false) {
                  $this->_setState($state, 'critical');
               }
               else if (strpos($item, ' OK ') !== false) {
                  $this->_setState($state, 'ok');
               }
               else if (strpos($item, ' OPTIMAL ') !== false) {
                  $this->_setState($state, 'ok');
               }
               else {
                  $this->_setState($state, 'critical');
               }
            }
         }
      }
      /*
       * Return the Result
@@ -1140,7 +1204,23 @@
        system('which iptables', $retval); // Debian, Ubuntu, Fedora
        if ($retval === 0) {
            /*  Get the data of the log */
            $data['output'] = shell_exec('iptables -S');
            $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S');
            /*
             * At this moment, there is no state (maybe later)
             */
            $state = 'no_state';
        } else {
            $state = 'no_state';
            $data = '';
        }
        /* This monitoring is only available if fail2ban is installed */
        system('which ip6tables', $retval); // Debian, Ubuntu, Fedora
        if ($retval === 0) {
            /*  Get the data of the log */
            $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S');
            /*
             * At this moment, there is no state (maybe later)