diff --git a/server/lib/classes/cron.d/100-monitor_raid.inc.php b/server/lib/classes/cron.d/100-monitor_raid.inc.php index 3480908e30479139631c78f129f317c7ab5b0a9d..c7d8c4e90d31fa33ec20d9104c7508b1a5d697b1 100644 --- a/server/lib/classes/cron.d/100-monitor_raid.inc.php +++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php @@ -275,6 +275,27 @@ class cronjob_monitor_raid extends cronjob { } } + /* + * LSI MegaRaid + */ + system('which megacli', $retval); + system('which megacli64', $retval64); + if($retval === 0 || $retval64 === 0) { + $binary=@($retval === 0)?'megacli':'megacli64'; + $state = 'ok'; + $data['output'] = shell_exec($binary.' -LDInfo -Lall -aAll'); + if (strpos($data['output'], 'Optimal') !== false) { + $this->_tools->_setState($state, 'ok'); + } else if (strpos($data['output'], 'Degraded') !== false) { + $this->_tools->_setState($state, 'critical'); + } else if (strpos($data['output'], 'Offline') !== false) { + $this->_tools->_setState($state, 'critical'); + } else { + $this->_tools->_setState($state, 'critical'); + } + } + + $res = array(); $res['server_id'] = $server_id; $res['type'] = $type;