Observium_CE/includes/polling/status/ns-root-mib-ha.inc.php

85 lines
3.3 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage discovery
* @copyright (C) Adam Armstrong
*
*/
// echo(" NS-ROOT-MIB HA ");
// Collect HAMode & HAState
$sysHighAvailabilityMode = snmp_get($device, 'sysHighAvailabilityMode.0', '-Ovq', 'NS-ROOT-MIB');
$haCurState = snmp_get($device, 'haCurState.0', '-Ovq', 'NS-ROOT-MIB');
$haPeerState = snmp_get($device, 'haPeerState.0', '-Ovq', 'NS-ROOT-MIB');
if ($sysHighAvailabilityMode !== '' && $haCurState !== '') {
switch ($sysHighAvailabilityMode) {
case "standalone":
$status_poll['status_event'] = 'ok';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState;
$status_value = "1";
break;
case "primary":
case "secondary":
switch ($haCurState) {
case "up":
case "monitorOk":
switch ($haPeerState) {
case "primary":
case "secondary":
$status_poll['status_event'] = 'ok';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "1";
break;
case "standalone":
$status_poll['status_event'] = 'alert';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "-1";
break;
default:
$status_poll['status_event'] = 'alert';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "-1";
break;
}
break;
case "init":
case "dumb":
case "disabled":
$status_poll['status_event'] = 'warning';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "0";
break;
case "alert":
case "down":
case "partialFail":
case "monitorFail":
case "completeFail":
case "partialFailSsl":
case "routemonitorFail":
$status_poll['status_event'] = 'alert';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "-1";
break;
}
break;
default:
$status_poll['status_event'] = 'warning';
$status_poll['status_name'] = $sysHighAvailabilityMode . '/' . $haCurState . '/' . $haPeerState;
$status_value = "0";
}
} else {
$status_poll['status_event'] = 'warning';
$status_poll['status_name'] = 'unknown';
$status_value = "0";
}
// EOF