From 28cd07d1a75c4e9dcaecac49efee0091f2fc62fa Mon Sep 17 00:00:00 2001
From: A. Täffner <darkalex@firesplash.de>
Date: Thu, 07 Apr 2016 05:30:49 -0400
Subject: [PATCH] Implemented a checkbox "enable DNSSEC" in DNS-Wizard. This Checkbox can be enabled or disabled by template.
---
server/lib/classes/cron.d/100-monitor_raid.inc.php | 259 ++++++++++++++++++++++++++++++++++-----------------
1 files changed, 171 insertions(+), 88 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 d49540e..90b9a61 100644
--- a/server/lib/classes/cron.d/100-monitor_raid.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php
@@ -29,39 +29,41 @@
*/
class cronjob_monitor_raid extends cronjob {
-
- // job schedule
- protected $_schedule = '*/5 * * * *';
- protected $_run_at_new = true;
-
- private $_tools = null;
-
- /* this function is optional if it contains no custom code */
- public function onPrepare() {
- global $app;
-
- parent::onPrepare();
- }
-
- /* this function is optional if it contains no custom code */
- public function onBeforeRun() {
- global $app;
-
- return parent::onBeforeRun();
- }
-
- public function onRunJob() {
- global $app, $conf;
-
- /* used for all monitor cronjobs */
- $app->load('monitor_tools');
- $this->_tools = new monitor_tools();
- /* end global section for monitor cronjobs */
-
+
+ // job schedule
+ protected $_schedule = '*/5 * * * *';
+ protected $_run_at_new = true;
+
+ private $_tools = null;
+
+ /* this function is optional if it contains no custom code */
+ public function onPrepare() {
+ global $app;
+
+ parent::onPrepare();
+ }
+
+ /* this function is optional if it contains no custom code */
+ public function onBeforeRun() {
+ global $app;
+
+ return parent::onBeforeRun();
+ }
+
+ public function onRunJob() {
+ global $app, $conf;
+
+ /* used for all monitor cronjobs */
+ $app->load('monitor_tools');
+ $this->_tools = new monitor_tools();
+ /* end global section for monitor cronjobs */
+
/* the id of the server as int */
$server_id = intval($conf['server_id']);
/** The type of the data */
+
+
$type = 'raid_state';
/*
@@ -175,56 +177,143 @@
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'])) {
- foreach ($data['output'] as $item) {
- if (strpos($item, 'RAID') !== false) {
- if (strpos($item, ' VERIFYING ') !== false) {
- $this->_tools->_setState($state, 'info');
- }
- else if (strpos($item, ' MIGRATE-PAUSED ') !== false) {
- $this->_tools->_setState($state, 'info');
- }
- else if (strpos($item, ' MIGRATING ') !== false) {
- $this->_tools->_setState($state, 'ok');
- }
- else if (strpos($item, ' INITIALIZING ') !== false) {
- $this->_tools->_setState($state, 'info');
- }
- else if (strpos($item, ' INIT-PAUSED ') !== false) {
- $this->_tools->_setState($state, 'info');
- }
- else if (strpos($item, ' REBUILDING ') !== false) {
- $this->_tools->_setState($state, 'info');
- }
- else if (strpos($item, ' REBUILD-PAUSED ') !== false) {
- $this->_tools->_setState($state, 'warning');
- }
- else if (strpos($item, ' RECOVERY ') !== false) {
- $this->_tools->_setState($state, 'warning');
- }
- else if (strpos($item, ' DEGRADED ') !== false) {
- $this->_tools->_setState($state, 'critical');
- }
- else if (strpos($item, ' UNKNOWN ') !== false) {
- $this->_tools->_setState($state, 'critical');
- }
- else if (strpos($item, ' OK ') !== false) {
- $this->_tools->_setState($state, 'ok');
- }
- else if (strpos($item, ' OPTIMAL ') !== false) {
- $this->_tools->_setState($state, 'ok');
- }
- else {
- $this->_tools->_setState($state, 'critical');
+ foreach ($data['output'] as $item) {
+ if (strpos($item, 'RAID') !== false) {
+ if (strpos($item, ' VERIFYING ') !== false) {
+ $this->_tools->_setState($state, 'info');
+ }
+ else if (strpos($item, ' MIGRATE-PAUSED ') !== false) {
+ $this->_tools->_setState($state, 'info');
+ }
+ else if (strpos($item, ' MIGRATING ') !== false) {
+ $this->_tools->_setState($state, 'ok');
+ }
+ else if (strpos($item, ' INITIALIZING ') !== false) {
+ $this->_tools->_setState($state, 'info');
+ }
+ else if (strpos($item, ' INIT-PAUSED ') !== false) {
+ $this->_tools->_setState($state, 'info');
+ }
+ else if (strpos($item, ' REBUILDING ') !== false) {
+ $this->_tools->_setState($state, 'info');
+ }
+ else if (strpos($item, ' REBUILD-PAUSED ') !== false) {
+ $this->_tools->_setState($state, 'warning');
+ }
+ else if (strpos($item, ' RECOVERY ') !== false) {
+ $this->_tools->_setState($state, 'warning');
+ }
+ else if (strpos($item, ' DEGRADED ') !== false) {
+ $this->_tools->_setState($state, 'critical');
+ }
+ else if (strpos($item, ' UNKNOWN ') !== false) {
+ $this->_tools->_setState($state, 'critical');
+ }
+ else if (strpos($item, ' OK ') !== false) {
+ $this->_tools->_setState($state, 'ok');
+ }
+ else if (strpos($item, ' OPTIMAL ') !== false) {
+ $this->_tools->_setState($state, 'ok');
+ }
+ else {
+ $this->_tools->_setState($state, 'critical');
+ }
}
}
}
+ }
+
+ /*
+ * 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;
@@ -236,27 +325,21 @@
* 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']);
-
- parent::onRunJob();
- }
-
- /* this function is optional if it contains no custom code */
- public function onAfterRun() {
- global $app;
-
- parent::onAfterRun();
- }
+
+ parent::onRunJob();
+ }
+
+ /* this function is optional if it contains no custom code */
+ public function onAfterRun() {
+ global $app;
+
+ parent::onAfterRun();
+ }
}
--
Gitblit v1.9.1