| | |
| | | * 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']) { |
| | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 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 |
| | |
| | | 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) |