91 lines
3.6 KiB
PHP
91 lines
3.6 KiB
PHP
<?php
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage discovery
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Rinvsfp.0 = STRING: Q1-Client1(PORT_Number 1 )
|
|
// NOT EQUIPPED
|
|
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Rinvsfp.1 = STRING: Q2-Client2(PXF-QTS-100G-10G)
|
|
// Component : QSFP28
|
|
// Vendor : FINISAR CORP
|
|
// Part Number : FCBN425QM1C01
|
|
// Revision Level : A0
|
|
// Serial Number : W3DA586
|
|
// Date Code (yymmdd) : 200326
|
|
// Connector Type : No Separable Connector
|
|
// Wavelength (in nm) : 0,0nm
|
|
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Mesrtrscv1Temp.0 = Gauge32: 0
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Mesrtrscv2Temp.0 = Gauge32: 10680
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Mesrtrscv1PowerSupply.0 = Gauge32: 0
|
|
// EKINOPS-Pm200frs02-MIB::pm200frs02Mesrtrscv2PowerSupply.0 = Gauge32: 32613
|
|
|
|
// Q1
|
|
$oid_descr = snmp_get_oid($device, 'pm200frs02Rinvsfp.0', 'EKINOPS-Pm200frs02-MIB');
|
|
if ($oid_descr && !str_contains($oid_descr, 'NOT EQUIPPED')) {
|
|
$index = '0';
|
|
|
|
[$name,] = explode("\n", $oid_descr);
|
|
[, $ifAlias] = explode("(", $name);
|
|
$ifAlias = trim($ifAlias, " )");
|
|
|
|
$match = ['measured_match' => ['entity_type' => 'port', 'field' => 'ifAlias', 'match' => $ifAlias]];
|
|
$options = entity_measured_match_definition($device, $match);
|
|
print_debug_vars($options);
|
|
|
|
$descr = "Client Trscv Temperature ($ifAlias)";
|
|
$class = 'temperature';
|
|
$oid_name = 'pm200frs02Mesrtrscv1Temp';
|
|
$oid_num = '.1.3.6.1.4.1.20044.90.3.1.252.' . $index;
|
|
$scale = 0.00390625; // value/256
|
|
$value = snmp_get_oid($device, $oid_name . '.' . $index, 'EKINOPS-Pm200frs02-MIB');
|
|
discover_sensor_ng($device, $class, $mib, $oid_name, $oid_num, $index, $descr, $scale, $value, $options);
|
|
|
|
$descr = "Client Trscv Voltage ($ifAlias)";
|
|
$class = 'voltage';
|
|
$oid_name = 'pm200frs02Mesrtrscv1PowerSupply';
|
|
$oid_num = '.1.3.6.1.4.1.20044.90.3.1.254.' . $index;
|
|
$scale = 0.0001; // value/10000
|
|
$value = snmp_get_oid($device, $oid_name . '.' . $index, 'EKINOPS-Pm200frs02-MIB');
|
|
discover_sensor_ng($device, $class, $mib, $oid_name, $oid_num, $index, $descr, $scale, $value, $options);
|
|
}
|
|
|
|
// Q2
|
|
$oid_descr = snmp_get_oid($device, 'pm200frs02Rinvsfp.1', 'EKINOPS-Pm200frs02-MIB');
|
|
if ($oid_descr && !str_contains($oid_descr, 'NOT EQUIPPED')) {
|
|
$index = '0';
|
|
|
|
[$name,] = explode("\n", $oid_descr);
|
|
[, $ifAlias] = explode("(", $name);
|
|
$ifAlias = trim($ifAlias, " )");
|
|
|
|
$match = ['measured_match' => ['entity_type' => 'port', 'field' => 'ifAlias', 'match' => $ifAlias]];
|
|
$options = entity_measured_match_definition($device, $match);
|
|
print_debug_vars($options);
|
|
|
|
$descr = "Client Trscv Temperature ($ifAlias)";
|
|
$class = 'temperature';
|
|
$oid_name = 'pm200frs02Mesrtrscv2Temp';
|
|
$oid_num = '.1.3.6.1.4.1.20044.90.3.1.253.' . $index;
|
|
$scale = 0.00390625; // value/256
|
|
$value = snmp_get_oid($device, $oid_name . '.' . $index, 'EKINOPS-Pm200frs02-MIB');
|
|
discover_sensor_ng($device, $class, $mib, $oid_name, $oid_num, $index, $descr, $scale, $value, $options);
|
|
|
|
$descr = "Client Trscv Voltage ($ifAlias)";
|
|
$class = 'voltage';
|
|
$oid_name = 'pm200frs02Mesrtrscv2PowerSupply';
|
|
$oid_num = '.1.3.6.1.4.1.20044.90.3.1.255.' . $index;
|
|
$scale = 0.0001; // value/10000
|
|
$value = snmp_get_oid($device, $oid_name . '.' . $index, 'EKINOPS-Pm200frs02-MIB');
|
|
discover_sensor_ng($device, $class, $mib, $oid_name, $oid_num, $index, $descr, $scale, $value, $options);
|
|
}
|
|
|
|
// EOF
|