96 lines
2.9 KiB
PHP
96 lines
2.9 KiB
PHP
<?php
|
|
/*
|
|
* LibreNMS Dantel Webmon generic sensor
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation, either version 3 of the License, or (at your
|
|
* option) any later version. Please see LICENSE.txt at the top level of
|
|
* the source code distribution for details.
|
|
*
|
|
* @package LibreNMS
|
|
* @subpackage webui
|
|
* @link https://www.librenms.org
|
|
* @copyright 2019 LibreNMS
|
|
* @author LibreNMS Contributors
|
|
*/
|
|
|
|
$session_rate = [
|
|
'Sessions/sec 1m avg' => ['.1.3.6.1.4.1.12356.101.4.1.11', 'fgSysSesRate1'], //FORTINET-FORTIGATE-MIB::fgSysSesRate1.0
|
|
'Sessions/sec 10m avg' => ['.1.3.6.1.4.1.12356.101.4.1.12', 'fgSysSesRate10'], //FORTINET-FORTIGATE-MIB::fgSysSesRate10.0
|
|
'Sessions/sec 30m avg' => ['.1.3.6.1.4.1.12356.101.4.1.13', 'fgSysSesRate30'], //FORTINET-FORTIGATE-MIB::fgSysSesRate30.0
|
|
'Sessions/sec 60m avg' => ['.1.3.6.1.4.1.12356.101.4.1.14', 'fgSysSesRate60'], //FORTINET-FORTIGATE-MIB::fgSysSesRate60.0
|
|
'Session count' => ['.1.3.6.1.4.1.12356.101.4.1.8', 'fgSysSesCount'], //FORTINET-FORTIGATE-MIB::fgSysSesCount.0
|
|
];
|
|
|
|
foreach ($session_rate as $descr => $oid) {
|
|
$oid_num = $oid[0];
|
|
$oid_txt = $oid[1];
|
|
$result = snmp_getnext($device, $oid_txt, '-Ovq', 'FORTINET-FORTIGATE-MIB');
|
|
$result = str_replace(' Sessions Per Second', '', $result);
|
|
|
|
discover_sensor(
|
|
$valid['sensor'],
|
|
'count',
|
|
$device,
|
|
$oid_num . '.0',
|
|
$oid_txt . '.0',
|
|
'sessions',
|
|
$descr,
|
|
1,
|
|
1,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
$result
|
|
);
|
|
}
|
|
|
|
// Sensors for clusters
|
|
$fgHaSystemMode_txt = 'fgHaSystemMode.0';
|
|
$systemMode = snmp_get($device, $fgHaSystemMode_txt, '-Ovq', 'FORTINET-FORTIGATE-MIB');
|
|
if ($systemMode == 'activePassive' || $systemMode == 'activeActive') {
|
|
// Contains the indexes of all the cluster members
|
|
$fgHaStatsIndex_num = '.1.3.6.1.4.1.12356.101.13.2.1.1.1';
|
|
$fgHaStatsIndex_txt = 'fgHaStatsIndex';
|
|
|
|
// Fetch the cluster members
|
|
$haStatsEntries = snmpwalk_cache_multi_oid($device, $fgHaStatsIndex_txt, [], 'FORTINET-FORTIGATE-MIB');
|
|
|
|
// Count of results is the amount of cluster members
|
|
$clusterMemberCount = count($haStatsEntries);
|
|
|
|
// Create a count sensor and set warning to current cluster count
|
|
discover_sensor(
|
|
$valid['sensor'],
|
|
'count',
|
|
$device,
|
|
$fgHaStatsIndex_num,
|
|
$fgHaStatsIndex_txt,
|
|
'clusterState',
|
|
'Cluster State',
|
|
1,
|
|
1,
|
|
null,
|
|
$clusterMemberCount,
|
|
null,
|
|
null,
|
|
$result
|
|
);
|
|
}
|
|
|
|
unset(
|
|
$session_rate,
|
|
$descr,
|
|
$oid,
|
|
$oid_num,
|
|
$oid_txt,
|
|
$result,
|
|
$fgHaSystemMode_txt,
|
|
$fgHaStatsIndex_num,
|
|
$fgHaStatsIndex_txt,
|
|
$haStatsEntries,
|
|
$clusterMemberCount
|
|
);
|