mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Add support for memory, power status and transceiver monitoring to Fiberstore S3900 series switches (#16225)
This commit is contained in:
committed by
GitHub
parent
090611f6c1
commit
23965cee49
@@ -31,6 +31,26 @@ use LibreNMS\OS;
|
||||
|
||||
class FsSwitch extends OS implements ProcessorDiscovery
|
||||
{
|
||||
public static function normalizeTransceiverValues($value): float
|
||||
{
|
||||
// Convert fixed-point integer thresholds to float
|
||||
$type = gettype($value);
|
||||
if ($type === 'integer') {
|
||||
// Thresholds are integers
|
||||
$value /= 100.0;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
public static function normalizeTransceiverValuesCurrent($value): float
|
||||
{
|
||||
$value = FsSwitch::normalizeTransceiverValues($value);
|
||||
$value *= 0.001; // mA to A
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Discover processors.
|
||||
* Returns an array of LibreNMS\Device\Processor objects that have been discovered
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# FS-MIB entries are for the S3900 (non -R) series
|
||||
# They are most likely manufactured by Accton.
|
||||
# The MIB FS-MIB file is very simmilar to the edgecos MIB files (with fiberstore using their own enterprise ID)
|
||||
#
|
||||
# SWITCH MIB entries are for centec based switches where Fiberstore forgot to change the enterprise IDs
|
||||
# e.g. the S5800-8TF12S before version 5.3.11.r3
|
||||
mib: FS-MIB
|
||||
modules:
|
||||
mempools:
|
||||
@@ -8,6 +14,12 @@ modules:
|
||||
used: SWITCH::memTotalUsed
|
||||
precision: 1024
|
||||
descr: 'Chassis Memory'
|
||||
-
|
||||
total: FS-MIB::memoryTotal
|
||||
free: FS-MIB::memoryFreed
|
||||
used: FS-MIB::memoryAllocated
|
||||
precision: 1024
|
||||
descr: 'Memory'
|
||||
os:
|
||||
hardware:
|
||||
- SWITCH::lswSlotCurrentType.1.1
|
||||
@@ -26,6 +38,13 @@ modules:
|
||||
num_oid: '..1.3.6.1.4.1.52642.2.1.45.1.39.2.1.{{ $index }}'
|
||||
descr: 'Processor'
|
||||
sensors:
|
||||
pre-cache:
|
||||
data:
|
||||
-
|
||||
oid:
|
||||
- ifName
|
||||
- FS-MIB::portMediaInfoTable
|
||||
- FS-MIB::portTransceiverThresholdInfoTable
|
||||
temperature:
|
||||
data:
|
||||
-
|
||||
@@ -34,6 +53,82 @@ modules:
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.1.11.1.3.{{ $index }}'
|
||||
index: 'temp1.{{ $index }}'
|
||||
descr: 'Temperature Unit {{ $subindex0 }} sensor {{ $subindex1 }}'
|
||||
-
|
||||
oid: portOpticalMonitoringInfoTable
|
||||
value: portOpticalMonitoringInfoTemperature
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.2.11.1.2.{{ $index }}'
|
||||
descr: '{{ $ifName }} temperature'
|
||||
index: 'portOpticalMonitoringInfoTemperature.{{ $index }}'
|
||||
group: 'Transceiver: {{ $ifName }} (Vendor: {{ FS-MIB::portMediaInfoVendorName }} PN: {{ FS-MIB::portMediaInfoPartNumber }} S/N: {{ FS-MIB::portMediaInfoSerialNumber }})'
|
||||
entPhysicalIndex: '{{ $index }}'
|
||||
entPhysicalIndex_measured: ports
|
||||
low_limit: FS-MIB::portTransceiverThresholdInfoTemperatureLowAlarm
|
||||
low_warn_limit: FS-MIB::portTransceiverThresholdInfoTemperatureLowWarn
|
||||
warn_limit: FS-MIB::portTransceiverThresholdInfoTemperatureHighWarn
|
||||
high_limit: FS-MIB::portTransceiverThresholdInfoTemperatureHighAlarm
|
||||
user_func: \LibreNMS\OS\FsSwitch::normalizeTransceiverValues
|
||||
voltage:
|
||||
data:
|
||||
-
|
||||
oid: portOpticalMonitoringInfoTable
|
||||
value: portOpticalMonitoringInfoVcc
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.2.11.1.3.{{ $index }}'
|
||||
descr: '{{ $ifName }} voltage'
|
||||
index: 'portOpticalMonitoringInfoVcc.{{ $index }}'
|
||||
group: 'Transceiver: {{ $ifName }} (Vendor: {{ FS-MIB::portMediaInfoVendorName }} PN: {{ FS-MIB::portMediaInfoPartNumber }} S/N: {{ FS-MIB::portMediaInfoSerialNumber }})'
|
||||
entPhysicalIndex: '{{ $index }}'
|
||||
entPhysicalIndex_measured: ports
|
||||
low_limit: FS-MIB::portTransceiverThresholdInfoVccLowAlarm
|
||||
low_warn_limit: FS-MIB::portTransceiverThresholdInfoVccLowWarn
|
||||
warn_limit: FS-MIB::portTransceiverThresholdInfoVccHighWarn
|
||||
high_limit: FS-MIB::portTransceiverThresholdInfoVccHighAlarm
|
||||
user_func: \LibreNMS\OS\FsSwitch::normalizeTransceiverValues
|
||||
current:
|
||||
data:
|
||||
-
|
||||
oid: portOpticalMonitoringInfoTable
|
||||
value: portOpticalMonitoringInfoTxBiasCurrent
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.2.11.1.4.{{ $index }}'
|
||||
descr: '{{ $ifName }} current'
|
||||
index: 'portOpticalMonitoringInfoTxBiasCurrent.{{ $index }}'
|
||||
group: 'Transceiver: {{ $ifName }} (Vendor: {{ FS-MIB::portMediaInfoVendorName }} PN: {{ FS-MIB::portMediaInfoPartNumber }} S/N: {{ FS-MIB::portMediaInfoSerialNumber }})'
|
||||
entPhysicalIndex: '{{ $index }}'
|
||||
entPhysicalIndex_measured: ports
|
||||
low_limit: FS-MIB::portTransceiverThresholdInfoTxBiasCurrentLowAlarm
|
||||
low_warn_limit: FS-MIB::portTransceiverThresholdInfoTxBiasCurrentLowWarn
|
||||
warn_limit: FS-MIB::portTransceiverThresholdInfoTxBiasCurrentHighWarn
|
||||
high_limit: FS-MIB::portTransceiverThresholdInfoTxBiasCurrentHighAlarm
|
||||
user_func: \LibreNMS\OS\FsSwitch::normalizeTransceiverValuesCurrent
|
||||
dbm:
|
||||
data:
|
||||
-
|
||||
oid: portOpticalMonitoringInfoTable
|
||||
value: portOpticalMonitoringInfoTxPower
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.2.11.1.5.{{ $index }}'
|
||||
descr: '{{ $ifName }} TxPower'
|
||||
index: 'portOpticalMonitoringInfoTxPower.{{ $index }}'
|
||||
group: 'Transceiver: {{ $ifName }} (Vendor: {{ FS-MIB::portMediaInfoVendorName }} PN: {{ FS-MIB::portMediaInfoPartNumber }} S/N: {{ FS-MIB::portMediaInfoSerialNumber }})'
|
||||
entPhysicalIndex: '{{ $index }}'
|
||||
entPhysicalIndex_measured: ports
|
||||
low_limit: FS-MIB::portTransceiverThresholdInfoTxPowerLowAlarm
|
||||
low_warn_limit: FS-MIB::portTransceiverThresholdInfoTxPowerLowWarn
|
||||
warn_limit: FS-MIB::portTransceiverThresholdInfoTxPowerHighWarn
|
||||
high_limit: FS-MIB::portTransceiverThresholdInfoTxPowerHighAlarm
|
||||
user_func: \LibreNMS\OS\FsSwitch::normalizeTransceiverValues
|
||||
-
|
||||
oid: portOpticalMonitoringInfoTable
|
||||
value: portOpticalMonitoringInfoRxPower
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.2.11.1.6.{{ $index }}'
|
||||
descr: '{{ $ifName }} RxPower'
|
||||
index: 'portOpticalMonitoringInfoRxPower.{{ $index }}'
|
||||
group: 'Transceiver: {{ $ifName }} (Vendor: {{ FS-MIB::portMediaInfoVendorName }} PN: {{ FS-MIB::portMediaInfoPartNumber }} S/N: {{ FS-MIB::portMediaInfoSerialNumber }})'
|
||||
entPhysicalIndex: '{{ $index }}'
|
||||
entPhysicalIndex_measured: ports
|
||||
low_limit: FS-MIB::portTransceiverThresholdInfoRxPowerLowAlarm
|
||||
low_warn_limit: FS-MIB::portTransceiverThresholdInfoRxPowerLowWarn
|
||||
warn_limit: FS-MIB::portTransceiverThresholdInfoRxPowerHighWarn
|
||||
high_limit: FS-MIB::portTransceiverThresholdInfoRxPowerHighAlarm
|
||||
user_func: \LibreNMS\OS\FsSwitch::normalizeTransceiverValues
|
||||
state:
|
||||
data:
|
||||
-
|
||||
@@ -48,3 +143,19 @@ modules:
|
||||
- { value: 4, generic: 1, descr: noncritical, graph: 0 }
|
||||
- { value: 5, generic: 2, descr: critical, graph: 0 }
|
||||
- { value: 6, generic: 2, descr: unrecoverable, graph: 0 }
|
||||
-
|
||||
oid: swPowerStatus
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.1.3.1.8.1'
|
||||
descr: 'Power status'
|
||||
states:
|
||||
- { value: 1, generic: 0, graph: 1, descr: internalPower }
|
||||
- { value: 2, generic: 0, graph: 1, descr: redundantPower }
|
||||
- { value: 3, generic: 0, graph: 1, descr: internalAndRedundantPower }
|
||||
-
|
||||
oid: swIndivPowerStatus
|
||||
num_oid: '.1.3.6.1.4.1.52642.2.1.45.1.1.6.1.3.{{ $index }}'
|
||||
descr: 'Power Unit {{ $subindex0 }} ({{ $subindex1 }}) status'
|
||||
states:
|
||||
- { value: 1, generic: 1, graph: 1, descr: notPresent }
|
||||
- { value: 2, generic: 0, graph: 1, descr: green }
|
||||
- { value: 3, generic: 2, graph: 1, descr: red }
|
||||
|
||||
@@ -15,6 +15,8 @@ discovery:
|
||||
- .1.3.6.1.4.1.52642
|
||||
- .1.3.6.1.4.1.27975
|
||||
- .1.3.6.1.4.1.12345
|
||||
# - .1.3.6.1.4.1.52642.2.1.45.101 # S3900-24T4S
|
||||
# - .1.3.6.1.4.1.52642.2.1.45.103 # S3900-24F4S
|
||||
sysObjectID_except:
|
||||
- .1.3.6.1.4.1.52642.1.1.10.1.805
|
||||
- .1.3.6.1.4.1.52642.1.1.10.1.514
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user