newdevice: Added firewall graphs for Palo Alto Networks firewall (#7483)

* Features: Add firewall graphs for Palo Alto Networks firewall

* Features: Add firewall graphs for Palo Alto Networks firewall

* Update db_schema.yaml
This commit is contained in:
FTBZ
2017-10-17 13:42:13 +02:00
committed by Neil Lathwood
parent 96ccc49026
commit 89ff05ebea
8 changed files with 181 additions and 12 deletions

View File

@@ -377,12 +377,27 @@ $config['graph_types']['device']['screenos_sessions']['order'] = '0';
$config['graph_types']['device']['screenos_sessions']['descr'] = 'Active Sessions';
//PAN OS Graphs
$config['graph_types']['device']['panos_sessions']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions']['order'] = '0';
$config['graph_types']['device']['panos_sessions']['descr'] = 'Active Sessions';
$config['graph_types']['device']['panos_activetunnels']['section'] = 'firewall';
$config['graph_types']['device']['panos_activetunnels']['order'] = '1';
$config['graph_types']['device']['panos_activetunnels']['descr'] = 'Active GlobalProtect Tunnels';
$config['graph_types']['device']['panos_sessions']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions']['order'] = '0';
$config['graph_types']['device']['panos_sessions']['descr'] = 'Active Sessions';
$config['graph_types']['device']['panos_sessions_tcp']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions_tcp']['order'] = '0';
$config['graph_types']['device']['panos_sessions_tcp']['descr'] = 'Active TCP Sessions';
$config['graph_types']['device']['panos_sessions_udp']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions_udp']['order'] = '0';
$config['graph_types']['device']['panos_sessions_udp']['descr'] = 'Active UDP Sessions';
$config['graph_types']['device']['panos_sessions_icmp']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions_icmp']['order'] = '0';
$config['graph_types']['device']['panos_sessions_icmp']['descr'] = 'Active ICMP Sessions';
$config['graph_types']['device']['panos_sessions_ssl']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions_ssl']['order'] = '0';
$config['graph_types']['device']['panos_sessions_ssl']['descr'] = 'Active SSL Proxy Sessions';
$config['graph_types']['device']['panos_sessions_sslutil']['section'] = 'firewall';
$config['graph_types']['device']['panos_sessions_sslutil']['order'] = '0';
$config['graph_types']['device']['panos_sessions_sslutil']['descr'] = 'Active SSL Proxy Utilization';
$config['graph_types']['device']['panos_activetunnels']['section'] = 'firewall';
$config['graph_types']['device']['panos_activetunnels']['order'] = '0';
$config['graph_types']['device']['panos_activetunnels']['descr'] = 'Active GlobalProtect Tunnels';
//Pulse Secure Graphs
$config['graph_types']['device']['pulse_users']['section'] = 'firewall';

View File

@@ -2,12 +2,18 @@
use LibreNMS\RRD\RrdDefinition;
$hardware = trim(snmp_get($device, '1.3.6.1.4.1.25461.2.1.2.2.1.0', '-OQv', '', ''), '" ');
$version = trim(snmp_get($device, '1.3.6.1.4.1.25461.2.1.2.1.1.0', '-OQv', '', ''), '" ');
$serial = trim(snmp_get($device, '1.3.6.1.4.1.25461.2.1.2.1.3.0', '-OQv', '', ''), '" ');
$oids = snmp_get_multi($device, 'panChassisType.0 panSysSwVersion.0 panSysSerialNumber.0 panSessionActive.0 panSessionActiveTcp.0 panSessionActiveUdp.0 panSessionActiveICMP.0 panSessionActiveSslProxy.0 panSessionSslProxyUtilization.0', '-OQUs', 'PAN-COMMON-MIB');
// list(,,,$hardware) = explode (" ", $poll_device['sysDescr']);
$sessions = snmp_get($device, '1.3.6.1.4.1.25461.2.1.2.3.3.0', '-Ovq');
$hardware = $oids[0]['panChassisType'];
$version = $oids[0]['panSysSwVersion'];
$serial = $oids[0]['panSysSerialNumber'];
$sessions = $oids[0]['panSessionActive'];
$sessions_tcp = $oids[0]['panSessionActiveTcp'];
$sessions_udp = $oids[0]['panSessionActiveUdp'];
$sessions_icmp = $oids[0]['panSessionActiveICMP'];
$sessions_ssl = $oids[0]['panSessionActiveSslProxy'];
$sessions_sslutil = $oids[0]['panSessionSslProxyUtilization'];
$activetunnels = $oids[0]['panGPGWUtilizationActiveTunnels'];
if (is_numeric($sessions)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions', 'GAUGE', 0, 3000000);
@@ -22,7 +28,70 @@ if (is_numeric($sessions)) {
$graphs['panos_sessions'] = true;
}
$activetunnels = snmp_get($device, '1.3.6.1.4.1.25461.2.1.2.5.1.3.0', '-Ovq');
if (is_numeric($sessions_tcp)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions_tcp', 'GAUGE', 0, 3000000);
$fields = array(
'sessions_tcp' => $sessions_tcp,
);
$tags = compact('rrd_def');
data_update($device, 'panos-sessions-tcp', $tags, $fields);
$graphs['panos_sessions_tcp'] = true;
}
if (is_numeric($sessions_udp)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions_udp', 'GAUGE', 0, 3000000);
$fields = array(
'sessions_udp' => $sessions_udp,
);
$tags = compact('rrd_def');
data_update($device, 'panos-sessions-udp', $tags, $fields);
$graphs['panos_sessions_udp'] = true;
}
if (is_numeric($sessions_icmp)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions_icmp', 'GAUGE', 0, 3000000);
$fields = array(
'sessions_icmp' => $sessions_icmp,
);
$tags = compact('rrd_def');
data_update($device, 'panos-sessions-icmp', $tags, $fields);
$graphs['panos_sessions_icmp'] = true;
}
if (is_numeric($sessions_ssl)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions_ssl', 'GAUGE', 0, 3000000);
$fields = array(
'sessions_ssl' => $sessions_ssl,
);
$tags = compact('rrd_def');
data_update($device, 'panos-sessions-ssl', $tags, $fields);
$graphs['panos_sessions_ssl'] = true;
}
if (is_numeric($sessions_sslutil)) {
$rrd_def = RrdDefinition::make()->addDataset('sessions_sslutil', 'GAUGE', 0, 3000000);
$fields = array(
'sessions_sslutil' => $sessions_sslutil,
);
$tags = compact('rrd_def');
data_update($device, 'panos-sessions-sslutil', $tags, $fields);
$graphs['panos_sessions_sslutil'] = true;
}
if (is_numeric($activetunnels)) {
$rrd_def = RrdDefinition::make()->addDataset('activetunnels', 'GAUGE', 0, 3000000);

View File

@@ -0,0 +1,5 @@
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'panos_sessions_tcp', 'firewall', 'Active Users', 0);
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'panos_sessions_udp', 'firewall', 'Active Users', 0);
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'panos_sessions_icmp', 'firewall', 'Active Users', 0);
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'panos_sessions_ssl', 'firewall', 'Active Users', 0);
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'panos_sessions_sslutil', 'firewall', 'Active Users', 0);