Merge pull request #2613 from rucarrol/forti_cpu

Adding support for discovering/polling all processors in a Fortigate device
This commit is contained in:
Neil Lathwood
2015-12-18 16:05:16 +00:00
2 changed files with 22 additions and 26 deletions
@@ -1,18 +1,31 @@
<?php
//
// Hardcoded discovery of cpu usage on Fortigate devices.
// Somewhat dynamic processor discovery for Fortigate boxes.
//
// FORTINET-FORTIGATE-MIB::fgSysCpuUsage.0
// FORTINET-FORTIGATE-MIB::fgSysCpuUsage.X where X is the CPU number
// FORTINET-FORTIGATE-MIB::fgProcModDescr.X where X is the CPU number
// FORTINET-FORTIGATE-MIB::fgProcessorCount.0 -> Num CPUs in the device
if ($device['os'] == 'fortigate') {
echo 'Fortigate : ';
echo 'Fortigate : ';
$descr = 'Processor';
$usage = snmp_get($device, '.1.3.6.1.4.1.12356.101.4.1.3.0', '-Ovq');
// Forti have logical CPU numbering - start at 1 and increment to $num_cpu in the box.
$num_cpu = snmp_get($device, 'FORTINET-FORTIGATE-MIB::fgProcessorCount.0', '-Ovq');
if (is_numeric($usage)) {
discover_processor($valid['processor'], $device, '.1.3.6.1.4.1.12356.101.4.1.3.0', '0', 'fortigate-fixed', $descr, '1', $usage, null, null);
}
}
print "Forti-found $num_cpu CPUs\n";
for($i = 1; $i <= $num_cpu; $i++) {
// HERP DERP IM A FORTIGATE AND I PUT NON NUMERIC VALUES IN A GAUGE
$cpu_usage = snmp_get($device, "FORTINET-FORTIGATE-MIB::fgProcessorUsage.$i", '-Ovq');
$usage = trim ( str_replace(" %", "", $cpu_usage ) ) ;
$descr = snmp_get($device, "FORTINET-FORTIGATE-MIB::fgProcModDescr.$i", '-Ovq');
print "CPU: $num_cpu - USAGE: $cpu_usage - TYPE $descr\n";
if (is_numeric($usage)) {
discover_processor($valid['processor'], $device, "FORTINET-FORTIGATE-MIB::fgProcessorUsage." . $num_cpu, '0', 'fortigate-fixed', $descr, '1', $usage, null, null);
}
} // END For loop for CPU discovery
} // END if device is Fortigate
unset($processors_array);
-17
View File
@@ -33,21 +33,4 @@ if (is_numeric($sessions)) {
$graphs['fortigate_sessions'] = true;
}
$cpurrd = $config['rrd_dir'].'/'.$device['hostname'].'/fortigate_cpu.rrd';
$cpu_usage = snmp_get($device, 'FORTINET-FORTIGATE-MIB::fgSysCpuUsage.0', '-Ovq');
if (is_numeric($cpu_usage)) {
if (!is_file($cpurrd)) {
rrdtool_create($cpurrd, ' --step 300 DS:LOAD:GAUGE:600:-1:100 '.$config['rrd_rra']);
}
echo "CPU: $cpu_usage%\n";
$fields = array(
'LOAD' => $cpu_usage,
);
rrdtool_update($cpurrd, $fields);
$graphs['fortigate_cpu'] = true;
}