From 5ca959fa688255a8de61f89fe2751eb4d24a6912 Mon Sep 17 00:00:00 2001 From: Florian Schaal <florian@schaal-24.de> Date: Tue, 22 Mar 2016 09:22:07 -0400 Subject: [PATCH] fixed typo --- server/lib/classes/cron.d/100-monitor_raid.inc.php | 99 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 90 insertions(+), 9 deletions(-) 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 9edd061..90b9a61 100644 --- a/server/lib/classes/cron.d/100-monitor_raid.inc.php +++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php @@ -177,7 +177,9 @@ system('which tw_cli', $retval); if($retval === 0) { - $data['output'] = shell_exec('tw_cli info c0'); + // TYPOWORX FIX | Determine Controler-ID + $availableControlers = shell_exec('tw_cli info | grep -Eo "c[0-9]+'); + $data['output'] = shell_exec('tw_cli info ' . $availableControlers); $state = 'ok'; if(is_array($data['output'])) { @@ -227,6 +229,91 @@ } } + /* + * HP Proliant + */ + system('which hpacucli', $retval); + if($retval === 0) { + $state = 'ok'; + $data['output'] = shell_exec('/usr/sbin/hpacucli ctrl all show config'); + $tmp = explode("\n", $data['output']); + if(is_array($tmp)) { + foreach ($tmp as $item) { + if (strpos($item, 'logicaldrive') !== false) { + if (strpos($item, 'OK') !== false) { + $this->_tools->_setState($state = 'ok'); + } elseif (strpos($item, 'Recovery Mode') !== false) { + $this->_tools->_setState($state = 'critical'); + break; + } elseif (strpos($item, 'Failed') !== false) { + $this->_tools->_setState($state = 'error'); + break; + } elseif (strpos($item, 'Recovering') !== false) { + $this->_tools->_setState($state = 'info'); + break; + } else { + $this->_tools->_setState($state = 'critical'); + } + } + if (strpos($item, 'physicaldrive') !== false) { + if (strpos($item, 'physicaldrive') !== false) { + if (strpos($item, 'OK') !== false) { + $this->_tools->_setState($state = 'ok'); + } elseif (strpos($item, 'Failed') !== false) { + $this->_tools->_setState($state = 'critical'); + break; + } elseif (strpos($item, 'Rebuilding') !== false) { + $this->_tools->_setState($state = 'info'); + break; + } else { + $this->_tools->_setState($state = 'critical'); + break; + } + } + } + } + } + } + + /* + * 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'); + } + } + + /* + * Adaptec-RAID + */ + system('which arcconf', $retval); + if($retval === 0) { + $state = 'ok'; + $data['output'] = shell_exec('arcconf GETCONFIG 1 LD'); + if(is_array($data['output'])) { + foreach ($data['output'] as $item) { + if (strpos($item, 'Logical device name : RAID') !== false) { + if (strpos($item, 'Optimal') !== false) { + $this->_tools->_setState($state, 'ok'); + } else { + $this->_tools->_setState($state, 'critical'); + } + } + } + } + } $res = array(); $res['server_id'] = $server_id; @@ -238,14 +325,8 @@ * Insert the data into the database */ $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . - 'VALUES (' . - $res['server_id'] . ', ' . - "'" . $app->dbmaster->quote($res['type']) . "', " . - 'UNIX_TIMESTAMP(), ' . - "'" . $app->dbmaster->quote(serialize($res['data'])) . "', " . - "'" . $res['state'] . "'" . - ')'; - $app->dbmaster->query($sql); + 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; + $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); /* The new data is written, now we can delete the old one */ $this->_tools->delOldRecords($res['type'], $res['server_id']); -- Gitblit v1.9.1