F5 BIG-IP state and count sensors (#15865)

* F5 BIG-IP state and count sensors

* F5 BIG-IP state and count sensors
This commit is contained in:
Rafael Pardim
2024-03-03 18:48:21 -03:00
committed by GitHub
parent 4039d88b3b
commit 10c3f7ae94
4 changed files with 2712 additions and 133 deletions

View File

@@ -1,3 +1,4 @@
mib: F5-BIGIP-SYSTEM-MIB
modules:
os:
hardware: F5-BIGIP-SYSTEM-MIB::sysPlatformInfoMarketingName.0
@@ -20,3 +21,94 @@ modules:
total: F5-BIGIP-SYSTEM-MIB::sysGlobalHostSwapTotal
descr: 'Swap Memory'
index: 2
sensors:
state:
data:
-
oid: sysCmFailoverStatusId
num_oid: '.1.3.6.1.4.1.3375.2.1.14.3.1.{{ $index }}'
index: 'sysCmFailoverStatusId.{{ $index }}'
descr: Failover State
group: HA
states:
- { value: 0, descr: 'Unknown', graph: 0, generic: 3 }
- { value: 1, descr: 'OffLine', graph: 0, generic: 2 }
- { value: 2, descr: 'ForcedOffline', graph: 0, generic: 2 }
- { value: 3, descr: 'Standby', graph: 0, generic: 0 }
- { value: 4, descr: 'Active', graph: 0, generic: 0 }
-
oid: sysCmSyncStatusId
num_oid: '.1.3.6.1.4.1.3375.2.1.14.1.1.{{ $index }}'
index: 'sysCmSyncStatusId.{{ $index }}'
descr: Sync State
group: HA
states:
- { value: 0, descr: 'unknown', graph: 0, generic: 3 }
- { value: 1, descr: 'syncing', graph: 0, generic: 1 }
- { value: 2, descr: 'needManualSync', graph: 0, generic: 2 }
- { value: 3, descr: 'inSync', graph: 0, generic: 0 }
- { value: 4, descr: 'syncFailed', graph: 0, generic: 1 }
- { value: 5, descr: 'syncDisconnected', graph: 0, generic: 2 }
- { value: 6, descr: 'standalone', graph: 0, generic: 0 }
- { value: 7, descr: 'awaitingInitialSync', graph: 0, generic: 1 }
- { value: 8, descr: 'incompatibleVersion', graph: 0, generic: 2 }
- { value: 9, descr: 'partialSync', graph: 0, generic: 2 }
-
oid: sysCmFailoverStatusColor
num_oid: '.1.3.6.1.4.1.3375.2.1.14.3.3.{{ $index }}'
index: 'sysCmFailoverStatusColor.{{ $index }}'
descr: Failover State Color
group: HA
states:
- { value: 0, descr: 'Green: functioning correctly', graph: 0, generic: 0 }
- { value: 1, descr: 'Yellow: functioning suboptimally', graph: 0, generic: 1 }
- { value: 2, descr: 'Red: requires attention to function correctly', graph: 0, generic: 2 }
- { value: 3, descr: 'Blue: status is unknown', graph: 0, generic: 3 }
- { value: 4, descr: 'Gray: intentionally not functioning', graph: 0, generic: 0 }
- { value: 5, descr: 'Black: not connected to any peers', graph: 0, generic: 2 }
-
oid: sysChassisPowerSupplyStatus
num_oid: '.1.3.6.1.4.1.3375.2.1.3.2.2.2.1.2.{{ $index }}'
index: 'sysChassisPowerSupplyStatus.{{ $index }}'
descr: "Power Supply Status {{ $index }}"
group: Hardware
states:
- { value: 0, descr: 'Bad', graph: 0, generic: 2 }
- { value: 1, descr: 'Good', graph: 0, generic: 0 }
- { value: 2, descr: 'NotPresent', graph: 0, generic: 3 }
-
oid: sysChassisFanStatus
num_oid: '.1.3.6.1.4.1.3375.2.1.3.2.1.2.1.2.{{ $index }}'
index: 'sysChassisFanStatus.{{ $index }}'
descr: "Fan Status {{ $index }}"
group: Hardware
states:
- { value: 0, descr: 'Bad', graph: 0, generic: 2 }
- { value: 1, descr: 'Good', graph: 0, generic: 0 }
- { value: 2, descr: 'NotPresent', graph: 0, generic: 3 }
count:
data:
-
oid: sysStatClientCurConns
num_oid: '.1.3.6.1.4.1.3375.2.1.1.2.1.8.{{ $index }}'
index: 'sysStatClientCurConns.{{ $index }}'
descr: 'Current connections from client-side'
group: Connections
-
oid: sysStatServerCurConns
num_oid: '.1.3.6.1.4.1.3375.2.1.1.2.1.15.{{ $index }}'
index: 'sysStatServerCurConns.{{ $index }}'
descr: 'Current connections from server-side'
group: Connections
-
oid: sysStatClientCurConns1m
num_oid: '.1.3.6.1.4.1.3375.2.1.1.2.1.79.{{ $index }}'
index: 'sysStatClientCurConns1m.{{ $index }}'
descr: 'Average current connections from client-side'
group: Connections
-
oid: sysStatServerCurConns1m
num_oid: '.1.3.6.1.4.1.3375.2.1.1.2.1.86.{{ $index }}'
index: 'sysStatServerCurConns1m.{{ $index }}'
descr: 'Average Current connections from server-side'
group: Connections

View File

@@ -1,133 +0,0 @@
<?php
// Power Status OID (Value : 0 Bad, 1 Good, 2 NotPresent)
// Common States - F5 Power supply and FanSpeed State
$states = [
['value' => 0, 'generic' => 2, 'graph' => 0, 'descr' => 'Bad'],
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'Good'],
['value' => 2, 'generic' => 3, 'graph' => 0, 'descr' => 'NotPresent'],
];
$temp = snmpwalk_cache_multi_oid($device, 'sysChassisPowerSupplyTable', [], 'F5-BIGIP-SYSTEM-MIB');
if (is_array($temp)) {
echo 'F5 power supply: ';
//Create State Index
$state_name = 'sysChassisPowerSupplyStatus';
create_state_index($state_name, $states);
foreach ($temp as $index => $data) {
$descr = 'sysChassisPowerSupplyStatus.' . $temp[$index]['sysChassisPowerSupplyIndex'];
$current = $data['sysChassisPowerSupplyStatus'];
$sensorType = 'f5';
$oid = '.1.3.6.1.4.1.3375.2.1.3.2.2.2.1.2.' . $index;
discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, null, null, null, null, $current, 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
} // End foreach (array_keys($temp) as $index)
} // End if (is_array($temp))
$temp = snmpwalk_cache_multi_oid($device, 'sysChassisFanStatus', [], 'F5-BIGIP-SYSTEM-MIB');
if (is_array($temp)) {
echo 'F5 FanSpeed State: ';
//Create State Index
$state_name = 'sysChassisFanStatus';
create_state_index($state_name, $states);
foreach (array_keys($temp) as $index) {
$descr = 'Fan Speed Status ' . $index;
$current = $temp[$index]['sysChassisFanStatus'];
$sensorType = 'f5';
$oid = '.1.3.6.1.4.1.3375.2.1.3.2.1.2.1.2.' . $index;
discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, null, null, null, null, $current, 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
} // End foreach (array_keys($temp) as $index)
} // End if (is_array($temp))
$temp = snmpwalk_cache_multi_oid($device, 'sysCmFailoverStatus', [], 'F5-BIGIP-SYSTEM-MIB');
if (is_array($temp)) {
echo 'F5 FailOver State: ';
//Create State Index
$state_name = 'sysCmFailoverStatusId';
$states = [
['value' => 0, 'generic' => 3, 'graph' => 0, 'descr' => 'Unknown'],
['value' => 1, 'generic' => 2, 'graph' => 0, 'descr' => 'OffLine'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'ForcedOffline'],
['value' => 3, 'generic' => 1, 'graph' => 0, 'descr' => 'Standby'],
['value' => 4, 'generic' => 0, 'graph' => 0, 'descr' => 'Active'],
];
create_state_index($state_name, $states);
foreach (array_keys($temp) as $index) {
$descr = 'sysCmFailoverStatusId.' . $temp[$index]['sysCmFailoverStatusId'];
$current = $temp[$index]['sysCmFailoverStatusId'];
$sensorType = 'f5';
$oid = '.1.3.6.1.4.1.3375.2.1.14.3.1.' . $index;
discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, null, null, null, null, $current, 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
} // End foreach (array_keys($temp) as $index)
} // End if (is_array($temp))
$temp = snmpwalk_cache_multi_oid($device, 'sysCmSyncStatusId', [], 'F5-BIGIP-SYSTEM-MIB');
if (is_array($temp)) {
echo 'F5 Sync State: ';
//Create State Index
$state_name = 'sysCmSyncStatusId';
$states = [
['value' => 0, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 1, 'generic' => 1, 'graph' => 0, 'descr' => 'syncing'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'needManualSync'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'inSync'],
['value' => 4, 'generic' => 1, 'graph' => 0, 'descr' => 'syncFailed'],
['value' => 5, 'generic' => 2, 'graph' => 0, 'descr' => 'syncDisconnected'],
['value' => 6, 'generic' => 0, 'graph' => 0, 'descr' => 'standalone'],
['value' => 7, 'generic' => 1, 'graph' => 0, 'descr' => 'awaitingInitialSync'],
['value' => 8, 'generic' => 2, 'graph' => 0, 'descr' => 'incompatibleVersion'],
['value' => 9, 'generic' => 2, 'graph' => 0, 'descr' => 'partialSync'],
];
create_state_index($state_name, $states);
foreach (array_keys($temp) as $index) {
$descr = 'sysCmSyncStatusId.' . $index;
$current = $temp[$index]['sysCmSyncStatusId'];
$sensorType = 'f5';
$oid = '.1.3.6.1.4.1.3375.2.1.14.1.1.' . $index;
discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, null, null, null, null, $current, 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
} // End foreach (array_keys($temp) as $index)
} // End if (is_array($temp))
$temp = snmpwalk_cache_multi_oid($device, 'sysCmFailoverStatusColor', [], 'F5-BIGIP-SYSTEM-MIB');
if (is_array($temp)) {
echo 'F5 FailOver State Color: ';
//Create State Index
$state_name = 'sysCmFailoverStatusColor';
$states = [
['value' => 0, 'generic' => 0, 'graph' => 0, 'descr' => 'Green: functioning correctly'],
['value' => 1, 'generic' => 1, 'graph' => 0, 'descr' => 'Yellow: functioning suboptimally'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'Red: requires attention to function correctly'],
['value' => 3, 'generic' => 3, 'graph' => 0, 'descr' => 'Blue: status is unknown'],
['value' => 4, 'generic' => 0, 'graph' => 0, 'descr' => 'Gray: intentionally not functioning'],
['value' => 5, 'generic' => 2, 'graph' => 0, 'descr' => 'Black: not connected to any peers'],
];
create_state_index($state_name, $states);
foreach (array_keys($temp) as $index) {
$descr = 'sysCmFailoverStatusColor.' . $index;
$current = $temp[$index]['sysCmFailoverStatusColor'];
$sensorType = 'f5';
$oid = '.1.3.6.1.4.1.3375.2.1.14.3.3.' . $index;
discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, null, null, null, null, $current, 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
} // End foreach (array_keys($temp) as $index)
} // End if (is_array($temp))