Observium_CE/includes/discovery/sensors/timetra-chassis-mib.inc.php

114 lines
6.2 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage discovery
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2020 Observium Limited
*
*/
$mib = 'TIMETRA-CHASSIS-MIB';
//TIMETRA-CHASSIS-MIB::tmnxChassisTotalNumber.0 = INTEGER: 1
$chassis_count = snmp_get_oid($device, "tmnxChassisTotalNumber.0", $mib);
$oids = snmp_cache_table($device, 'tmnxHwTable', NULL, 'TIMETRA-CHASSIS-MIB');
//TIMETRA-CHASSIS-MIB::tmnxHwName.1.50331649 = STRING: "chassis"
//TIMETRA-CHASSIS-MIB::tmnxHwName.1.134217729 = STRING: "Slot 1"
//TIMETRA-CHASSIS-MIB::tmnxHwTempSensor.1.50331649 = INTEGER: true(1)
//TIMETRA-CHASSIS-MIB::tmnxHwTempSensor.1.134217729 = INTEGER: true(1)
//TIMETRA-CHASSIS-MIB::tmnxHwTemperature.1.50331649 = INTEGER: 37 degrees celsius
//TIMETRA-CHASSIS-MIB::tmnxHwTemperature.1.134217729 = INTEGER: 37 degrees celsius
foreach ($oids as $index => $entry)
{
list($chassis, $system_index) = explode('.', $index);
$chassis_name = $chassis_count > 1 ? ", Chassis $chassis" : "";
if ($entry['tmnxHwTempSensor'] == 'true' && $entry['tmnxHwTemperature'] != '-1')
{
$descr = rewrite_entity_name($entry['tmnxHwName']).$chassis_name;
$oid = ".1.3.6.1.4.1.6527.3.1.2.2.1.8.1.18.$index";
$options = array('limit_high' => $entry['tmnxHwTempThreshold']);
discover_sensor('temperature', $device, $oid, $index, 'timetra-chassis-temp', $descr, 1, $entry['tmnxHwTemperature'], $options);
}
}
$timetra_entity = array(
//'tmnxChassisPowerSupplyACStatus' => array('name' => 'Power Supply AC',
// 'class' => 'power',
// 'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.2'),
//'tmnxChassisPowerSupplyDCStatus' => array('name' => 'Power Supply DC',
// 'class' => 'power',
// 'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.3'),
'tmnxChassisPowerSupplyTempStatus' => array('name' => 'Power Supply Temperature',
'class' => 'temperature',
'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.4'),
'tmnxChassisPowerSupply1Status' => array('name' => 'Power Supply 1',
'class' => 'power',
'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.6'),
'tmnxChassisPowerSupply2Status' => array('name' => 'Power Supply 2',
'class' => 'power',
'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.7'),
//'tmnxChassisPowerSupplyInputStatus' => array('name' => 'Power Supply Input',
// 'class' => 'power',
// 'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.9'),
//'tmnxChassisPowerSupplyOutputStatus' => array('name' => 'Power Supply Output',
// 'class' => 'power',
// 'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.5.1.10'),
'tmnxChassisFanOperStatus' => array('name' => 'Fans',
'class' => 'fan',
'oid' => '.1.3.6.1.4.1.6527.3.1.2.2.1.4.1.2'),
);
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyACStatus.1.1 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyACStatus.1.2 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyDCStatus.1.1 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyDCStatus.1.2 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyTempStatus.1.1 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyTempStatus.1.2 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyTempThreshold.1.1 = INTEGER: 58 degrees celsius
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyTempThreshold.1.2 = INTEGER: 58 degrees celsius
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupply1Status.1.1 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupply1Status.1.2 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupply2Status.1.1 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupply2Status.1.2 = INTEGER: deviceNotEquipped(2)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyAssignedType.1.1 = INTEGER: dc(1)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyAssignedType.1.2 = INTEGER: dc(1)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyInputStatus.1.1 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyInputStatus.1.2 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyOutputStatus.1.1 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisPowerSupplyOutputStatus.1.2 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisFanOperStatus.1.1 = INTEGER: deviceStateOk(3)
//TIMETRA-CHASSIS-MIB::tmnxChassisFanSpeed.1.1 = INTEGER: halfSpeed(2)
$cache_discovery['timetra-chassis-state'] = snmpwalk_cache_twopart_oid($device, 'tmnxChassisPowerSupplyEntry', array(), $mib);
$cache_discovery['timetra-chassis-state'] = snmpwalk_cache_twopart_oid($device, 'tmnxChassisFanEntry', $cache_discovery['timetra-chassis-state'], $mib);
print_debug_vars($cache_discovery['timetra-chassis-state']);
foreach ($cache_discovery['timetra-chassis-state'] as $chassis => $entries)
{
$chassis_name = ($chassis_count > 1 ? ", Chassis $chassis" : "");
foreach ($entries as $tray => $entry)
{
foreach ($entry as $oid_name => $value)
{
if (isset($timetra_entity[$oid_name]) && $value != 'deviceNotEquipped')
{
$index = "$oid_name.$chassis.$tray";
$descr = $timetra_entity[$oid_name]['name'].", Tray $tray".$chassis_name;
$oid = $timetra_entity[$oid_name]['oid'].".$chassis.$tray";
$options = array('entPhysicalClass' => $timetra_entity[$oid_name]['class']);
discover_status($device, $oid, $index, 'timetra-chassis-state', $descr, $value, $options);
}
}
}
}
// EOF