Merge pull request #2053 from chrisgfx/issue-1870

Issue 1870 : Pulse Secure OS support
This commit is contained in:
Neil Lathwood
2015-10-10 10:28:01 +01:00
11 changed files with 968 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
<?php
$rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/'.safename('pulse_sessions.rrd');
require 'includes/graphs/common.inc.php';
$ds = 'sessions';
$colour_area = '9999cc';
$colour_line = '0000cc';
$colour_area_max = '9999cc';
$graph_max = 1;
$graph_min = 0;
$unit_text = 'Sessions';
require 'includes/graphs/generic_simplex.inc.php';

View File

@@ -0,0 +1,18 @@
<?php
$rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/'.safename('pulse_users.rrd');
require 'includes/graphs/common.inc.php';
$ds = 'users';
$colour_area = '9999cc';
$colour_line = '0000cc';
$colour_area_max = '9999cc';
$graph_max = 1;
$unit_text = 'Users';
require 'includes/graphs/generic_simplex.inc.php';

View File

@@ -553,6 +553,18 @@ $config['os'][$os]['over'][1]['text'] = 'CPU Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
// Pulse Secure OS definition
$os = 'pulse';
$config['os'][$os]['text'] = 'Pulse Secure';
$config['os'][$os]['type'] = 'firewall';
$config['os'][$os]['icon'] = 'junos';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
$config['os'][$os]['over'][1]['graph'] = 'device_processor';
$config['os'][$os]['over'][1]['text'] = 'CPU Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
$os = 'fortigate';
$config['os'][$os]['text'] = 'Fortinet Fortigate';
$config['os'][$os]['type'] = 'firewall';
@@ -1494,6 +1506,14 @@ $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';
//Pulse Secure Graphs
$config['graph_types']['device']['pulse_users']['section'] = 'firewall';
$config['graph_types']['device']['pulse_users']['order'] = '0';
$config['graph_types']['device']['pulse_users']['descr'] = 'Active Users';
$config['graph_types']['device']['pulse_sessions']['section'] = 'firewall';
$config['graph_types']['device']['pulse_sessions']['order'] = '0';
$config['graph_types']['device']['pulse_sessions']['descr'] = 'Active Sessions';
$config['graph_types']['device']['bits']['section'] = 'netstats';
$config['graph_types']['device']['bits']['order'] = '0';
$config['graph_types']['device']['bits']['descr'] = 'Total Traffic';

View File

@@ -0,0 +1,23 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
//
// Hardcoded discovery of Memory usage on Pulse Secure devices.
//
if ($device['os'] == 'pulse') {
echo 'PULSE-MEMORY-POOL: ';
$usage = str_replace('"', "", snmp_get($device, 'PULSESECURE-PSG-MIB::iveMemoryUtil.0', '-OvQ'));
if (is_numeric($usage)) {
discover_mempool($valid_mempool, $device, 0, 'pulse-mem', 'Main Memory', '100', null, null);
}
}

View File

@@ -0,0 +1,16 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
if (!$os) {
if (strstr($sysDescr, 'Pulse Connect Secure')) {
$os = 'pulse';
}
}

View File

@@ -0,0 +1,25 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
//
// Hardcoded discovery of CPU usage on Pulse Secure devices.
//
if ($device['os'] == 'pulse') {
echo 'Pulse Secure : ';
$descr = 'Processor';
$usage = str_replace('"', "", snmp_get($device, 'PULSESECURE-PSG-MIB::iveCpuUtil.0', '-OvQ'));
if (is_numeric($usage)) {
discover_processor($valid['processor'], $device, 'PULSESECURE-PSG-MIB::iveCpuUtil.0', '0', 'pulse-cpu', $descr,
'100', $usage, null, null);
}
}

View File

@@ -0,0 +1,30 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
// Simple hard-coded poller for Pulse Secure
// Yes, it really can be this simple.
echo 'Pulse Secure MemPool'.'\n';
if ($device['os'] == 'pulse') {
$perc = str_replace('"', "", snmp_get($device, "PULSESECURE-PSG-MIB::iveMemoryUtil.0", '-OvQ'));
$memory_available = str_replace('"', "", snmp_get($device, "UCD-SNMP-MIB::memTotalReal.0", '-OvQ'));
$mempool['total'] = $memory_available;
if (is_numeric($perc)) {
$mempool['used'] = ($memory_available / 100 * $perc);
$mempool['free'] = ($memory_available - $mempool['used']);
}
echo "PERC " .$perc."%\n";
echo "Avail " .$mempool['total']."\n";
}

View File

@@ -0,0 +1,37 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
$version = trim(snmp_get($device, "productVersion.0", "-OQv", "PULSESECURE-PSG-MIB"),'"');
$hardware = "Juniper " . trim(snmp_get($device, "productName.0", "-OQv", "PULSESECURE-PSG-MIB"),'"');
$hostname = trim(snmp_get($device, "sysName.0", "-OQv", "SNMPv2-MIB"),'"');
$usersrrd = $config['rrd_dir'].'/'.$device['hostname'].'/pulse_users.rrd';
$users = snmp_get($device, 'PULSESECURE-PSG-MIB::iveConcurrentUsers.0', '-OQv');
if (is_numeric($users)) {
if (!is_file($usersrrd)) {
rrdtool_create($usersrrd, ' DS:users:GAUGE:600:0:U'.$config['rrd_rra']);
}
rrdtool_update($usersrrd, "N:$users");
$graphs['pulse_users'] = true;
}
$sessrrd = $config['rrd_dir'].'/'.$device['hostname'].'/pulse_sessions.rrd';
$sessions = snmp_get($device, 'PULSESECURE-PSG-MIB::iveConcurrentUsers.0', '-OQv');
if (is_numeric($sessions)) {
if (!is_file($sessrrd)) {
rrdtool_create($sessrrd, ' DS:sessions:GAUGE:600:0:U '.$config['rrd_rra']);
}
rrdtool_update($sessrrd, "N:$sessions");
$graphs['pulse_sessions'] = true;
}

View File

@@ -0,0 +1,23 @@
<?php
/*
* LibreNMS Pulse Secure OS information module
*
* Copyright (c) 2015 Christophe Martinet Chrisgfx <martinet.christophe@gmail.com>
* 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.
*/
// Simple hard-coded poller for Pulse Secure
// Yes, it really can be this simple.
echo 'Pulse Secure CPU Usage';
if ($device['os'] == 'pulse') {
$usage = str_replace('"', "", snmp_get($device, 'PULSESECURE-PSG-MIB::iveCpuUtil.0', '-OvQ'));
if (is_numeric($usage)) {
$proc = ($usage * 100);
}
}

755
mibs/PULSESECURE-PSG-MIB Normal file
View File

@@ -0,0 +1,755 @@
PULSESECURE-PSG-MIB DEFINITIONS ::= BEGIN
IMPORTS
NOTIFICATION-TYPE, MODULE-IDENTITY, enterprises
FROM SNMPv2-SMI
NetworkAddress
FROM RFC1155-SMI
IpAddress
FROM RFC1155-SMI;
pulsesecure-gateway MODULE-IDENTITY
LAST-UPDATED "201410161000Z"
ORGANIZATION "Pulse Secure"
CONTACT-INFO
"Internet: https://www.pulsesecure.net"
DESCRIPTION
"This file defines the private Pulse Secure MIB extensions."
REVISION "201410161000Z"
DESCRIPTION
"Initial Version"
::= { enterprises 12532 }
logFullPercent OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Percentage of log file full"
::= { pulsesecure-gateway 1 }
signedInWebUsers OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Signed-In Web Users"
::= { pulsesecure-gateway 2 }
signedInMailUsers OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Signed-In Mail Users"
::= { pulsesecure-gateway 3 }
blockedIP OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"IP Address that is blocked due to consecutive failed login attempts"
::= { pulsesecure-gateway 4 }
authServerName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Name of an external authentication server"
::= { pulsesecure-gateway 5 }
productName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"IVE Licensed Product Name"
::= { pulsesecure-gateway 6 }
productVersion OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"IVE System Software Version"
::= { pulsesecure-gateway 7 }
fileName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"File name"
::= { pulsesecure-gateway 8 }
meetingUserCount OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"the number of concurrent meeting users"
::= { pulsesecure-gateway 9 }
iveCpuUtil OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The CPU Utilization of the IVE system"
::= { pulsesecure-gateway 10 }
iveMemoryUtil OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Memory Utilization of the IVE system"
::= { pulsesecure-gateway 11 }
iveConcurrentUsers OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of Concurrent user Licenses used for the IVE Node"
::= { pulsesecure-gateway 12 }
clusterConcurrentUsers OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of Concurrent user Licenses used for the Cluster"
::= { pulsesecure-gateway 13 }
iveTotalHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of hits to the IVE since last reboot"
::= { pulsesecure-gateway 14 }
iveFileHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of File hits to the IVE since last reboot"
::= { pulsesecure-gateway 15 }
iveWebHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of hits via the Web Interface since the last reboot"
::= { pulsesecure-gateway 16 }
iveAppletHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of applet hits to the IVE since last reboot"
::= { pulsesecure-gateway 17 }
ivetermHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of terminal hits to the IVE since last reboot"
::= { pulsesecure-gateway 18 }
iveSAMHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of SAM(Secure Application manager)hits of since last
reboot"
::= { pulsesecure-gateway 19 }
iveNCHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of NC(Network Connect) hits of since last reboot"
::= { pulsesecure-gateway 20 }
meetingHits OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of Meeting hits of since last reboot"
::= { pulsesecure-gateway 21 }
meetingCount OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"the number of concurrent meetings"
::= { pulsesecure-gateway 22 }
logName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Name of the log (admin/user/event)"
::= { pulsesecure-gateway 23 }
iveSwapUtil OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Swap Utilization of the IVE system"
::= { pulsesecure-gateway 24 }
diskFullPercent OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Percentage of disk space full"
::= { pulsesecure-gateway 25 }
blockedIPList OBJECT-TYPE
SYNTAX SEQUENCE OF IPEntry
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Table of 10 most recently blocked IPs"
::= { pulsesecure-gateway 26 }
ipEntry OBJECT-TYPE
SYNTAX IPEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing a blocked IP"
INDEX { ipIndex }
::= { blockedIPList 1 }
IPEntry ::= SEQUENCE {
ipIndex Integer32,
ipValue NetworkAddress
}
ipIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Index for IP Table"
::= { ipEntry 1 }
ipValue OBJECT-TYPE
SYNTAX NetworkAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Blocked IP Entry"
::= { ipEntry 2 }
logID OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The unique ID of the log message."
::= { pulsesecure-gateway 27 }
logType OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"String stating whether log message is major or critical."
::= { pulsesecure-gateway 28 }
logDescription OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The actual log message string."
::= { pulsesecure-gateway 29 }
ivsName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Virtual System name"
::= { pulsesecure-gateway 30 }
ocspResponderURL OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Name of an OCSP Responder"
::= { pulsesecure-gateway 31 }
fanDescription OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The status of the fans"
::= { pulsesecure-gateway 32 }
psDescription OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The status of the power supplies"
::= { pulsesecure-gateway 33 }
raidDescription OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The status of the RAID"
::= { pulsesecure-gateway 34 }
-- J&J traps
clusterName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Cluster Name"
::= { pulsesecure-gateway 35 }
nodeList OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"List of disabled nodes"
::= { pulsesecure-gateway 36 }
vipType OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Whether the VIP is external or internal"
::= { pulsesecure-gateway 37 }
currentVIP OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Current value of VIP being changed"
::= { pulsesecure-gateway 38 }
newVIP OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"New value for the VIp being changed"
::= { pulsesecure-gateway 39 }
nicEvent OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Type of event that generated a the Trap: admin, external"
::= { pulsesecure-gateway 40 }
nodeName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Node Name"
::= { pulsesecure-gateway 41 }
iveTemperature OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Temperature of MAG application blade. Other platform such as SA
and IC will return 0"
::= { pulsesecure-gateway 42 }
iveVPNTunnels OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of concurrent Pulse IPSec and NC users"
::= { pulsesecure-gateway 43 }
iveSSLConnections OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of SSL connection "
::= { pulsesecure-gateway 44 }
esapVersion OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Active ESAP Version"
::= { pulsesecure-gateway 45 }
vipChangeReason OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Reason for the VIP node change"
::= { pulsesecure-gateway 46 }
processName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"Process Name"
::= { pulsesecure-gateway 47 }
iveTotalSignedInUsers OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Total number of Users Logged In for the Cluster"
::= { pulsesecure-gateway 48 }
iveTraps OBJECT IDENTIFIER ::= { pulsesecure-gateway 251 }
-- iveTraps.1 and iveTraps.2 are loaded incorrectly in HP OpenView
-- so avoid defining them
iveLogNearlyFull NOTIFICATION-TYPE
OBJECTS { logFullPercent, logName }
STATUS current
DESCRIPTION
"Log file nearly full"
::= { iveTraps 4 }
iveLogFull NOTIFICATION-TYPE
OBJECTS { logName }
STATUS current
DESCRIPTION
"Log file full"
::= { iveTraps 5 }
iveMaxConcurrentUsersSignedIn NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"Maximum number of concurrent users signed in"
::= { iveTraps 6 }
iveTooManyFailedLoginAttempts NOTIFICATION-TYPE
OBJECTS { blockedIP }
STATUS current
DESCRIPTION
"Too many failed login attempts"
::= { iveTraps 7 }
externalAuthServerUnreachable NOTIFICATION-TYPE
OBJECTS { authServerName }
STATUS current
DESCRIPTION
"External authentication server is not responding"
::= { iveTraps 8 }
iveStart NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"IVE startup under administrator's instruction."
::= { iveTraps 9 }
iveShutdown NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"IVE shutdown under administrator's instruction."
::= { iveTraps 10 }
iveReboot NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"IVE reboot under administrator's instruction."
::= { iveTraps 11 }
archiveServerUnreachable NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"Archive server is not responding"
::= { iveTraps 12 }
archiveServerLoginFailed NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"Could not login into archive server. Verify FTP username and
password."
::= { iveTraps 13 }
archiveFileTransferFailed NOTIFICATION-TYPE
OBJECTS { fileName }
STATUS current
DESCRIPTION
"Could not store file on archive server"
::= { iveTraps 14 }
meetingUserLimit NOTIFICATION-TYPE
OBJECTS { meetingUserCount }
STATUS current
DESCRIPTION
"Concurrent user count over license limit"
::= { iveTraps 15 }
iveRestart NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"IVE has restarted under administrator's instruction."
::= { iveTraps 16 }
meetingLimit NOTIFICATION-TYPE
OBJECTS { meetingCount }
STATUS current
DESCRIPTION
"Concurrent meeting count over license limit"
::= { iveTraps 17 }
iveDiskNearlyFull NOTIFICATION-TYPE
OBJECTS { diskFullPercent }
STATUS current
DESCRIPTION
"Disk space nearly full"
::= { iveTraps 18 }
iveDiskFull NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"Disk space full"
::= { iveTraps 19 }
logMessageTrap NOTIFICATION-TYPE
OBJECTS { logID, logType, logDescription }
STATUS current
DESCRIPTION
"The TRAP generated from a log message."
::= { iveTraps 20 }
memUtilNotify NOTIFICATION-TYPE
OBJECTS { iveMemoryUtil }
STATUS current
DESCRIPTION
"IVE memory utilization above threshold"
::= { iveTraps 21 }
cpuUtilNotify NOTIFICATION-TYPE
OBJECTS { iveCpuUtil }
STATUS current
DESCRIPTION
"IVE CPU utilization above threshold"
::= { iveTraps 22 }
swapUtilNotify NOTIFICATION-TYPE
OBJECTS { iveSwapUtil }
STATUS current
DESCRIPTION
"IVE swap utilization above threshold"
::= { iveTraps 23 }
iveMaxConcurrentUsersVirtualSystem NOTIFICATION-TYPE
OBJECTS { ivsName }
STATUS current
DESCRIPTION
"Maximum number of concurrent Virtual System users signed in"
::= { iveTraps 24 }
ocspResponderConnectionFailed NOTIFICATION-TYPE
OBJECTS { ocspResponderURL }
STATUS current
DESCRIPTION
"OCSP Responder cannot be connected"
::= { iveTraps 25 }
iveFanNotify NOTIFICATION-TYPE
OBJECTS { fanDescription }
STATUS current
DESCRIPTION
"The status of the fans has changed"
::= { iveTraps 26 }
ivePowerSupplyNotify NOTIFICATION-TYPE
OBJECTS { psDescription }
STATUS current
DESCRIPTION
"The status of the power supplies has changed"
::= { iveTraps 27 }
iveRaidNotify NOTIFICATION-TYPE
OBJECTS { raidDescription }
STATUS current
DESCRIPTION
"The status of the RAID has changed"
::= { iveTraps 28 }
iveClusterDisableNodeTrap NOTIFICATION-TYPE
OBJECTS { clusterName, nodeList }
STATUS current
DESCRIPTION
"A Given node(s) in a cluster has(have) been disabled"
::= { iveTraps 29 }
iveClusterChangedVIPTrap NOTIFICATION-TYPE
OBJECTS { vipType, currentVIP, newVIP }
STATUS current
DESCRIPTION
"A external/internal VIP has changed from its current value to a new
one"
::= { iveTraps 30 }
iveNetExternalInterfaceDownTrap NOTIFICATION-TYPE
OBJECTS { nicEvent }
STATUS current
DESCRIPTION
"The External interface has gone down, reason is in nicEvent"
::= { iveTraps 31 }
iveClusterDeleteTrap NOTIFICATION-TYPE
OBJECTS { nodeName }
STATUS current
DESCRIPTION
"Cluster delete inititaed by nodeName"
::= { iveTraps 32 }
iveNetInternalInterfaceDownTrap NOTIFICATION-TYPE
OBJECTS { nicEvent }
STATUS current
DESCRIPTION
"The Internal interface has gone down, reason is in nicEvent"
::= { iveTraps 33 }
iveNetManagementInterfaceDownTrap NOTIFICATION-TYPE
OBJECTS { nicEvent }
STATUS current
DESCRIPTION
"The Management interface has gone down, reason is in nicEvent"
::= { iveTraps 34 }
iveTemperatureNotify NOTIFICATION-TYPE
OBJECTS { iveTemperature }
STATUS current
DESCRIPTION
"IVE Temperature is above threshold"
::= { iveTraps 35 }
iveVIPNodeChanged NOTIFICATION-TYPE
OBJECTS { nodeName, vipChangeReason}
STATUS current
DESCRIPTION
"Notifies that VIP node has changed.
nodeName is the new node which is hosting the VIP.
vipChangeReason specifies the reason for the change."
::= { iveTraps 36 }
iveProcessesNearMaxLimit NOTIFICATION-TYPE
OBJECTS { processName }
STATUS current
DESCRIPTION
"The count of processes (by processName) is about reach to maximum
limit"
::= { iveTraps 37 }
iveProcessesReachedMaxLimit NOTIFICATION-TYPE
OBJECTS { processName }
STATUS current
DESCRIPTION
"The count of processes (by processName) has reached to maximum limit"
::= { iveTraps 38 }
-- Product Name
iveSAProduct OBJECT IDENTIFIER ::= { pulsesecure-gateway 252 }
iveICProduct OBJECT IDENTIFIER ::= { pulsesecure-gateway 253 }
iveMAGProduct OBJECT IDENTIFIER ::= { pulsesecure-gateway 254 }
iveVAProduct OBJECT IDENTIFIER ::= { pulsesecure-gateway 255 }
iveProductSA700 OBJECT IDENTIFIER ::= {iveSAProduct 1}
iveProductSA2000 OBJECT IDENTIFIER ::= {iveSAProduct 2 }
iveProductSA2500 OBJECT IDENTIFIER ::= {iveSAProduct 3 }
iveProductSA4000 OBJECT IDENTIFIER ::= {iveSAProduct 4 }
iveProductSA4500 OBJECT IDENTIFIER ::= {iveSAProduct 5 }
iveProductSA6000 OBJECT IDENTIFIER ::= {iveSAProduct 6 }
iveProductSA6500 OBJECT IDENTIFIER ::= {iveSAProduct 7 }
iveProductIC4000 OBJECT IDENTIFIER ::= {iveICProduct 1 }
iveProductIC4500 OBJECT IDENTIFIER ::= {iveICProduct 2 }
iveProductIC6000 OBJECT IDENTIFIER ::= {iveICProduct 3 }
iveProductIC6500 OBJECT IDENTIFIER ::= {iveICProduct 4 }
--MAG platform
iveProductMAG2600 OBJECT IDENTIFIER ::= {iveMAGProduct 1 }
iveProductMAG4610 OBJECT IDENTIFIER ::= {iveMAGProduct 2 }
iveProductSM160 OBJECT IDENTIFIER ::= {iveMAGProduct 3 }
iveProductSM360 OBJECT IDENTIFIER ::= {iveMAGProduct 4 }
--VA platform
iveProductVASPE OBJECT IDENTIFIER ::= {iveVAProduct 1 }
iveProductVADTE OBJECT IDENTIFIER ::= {iveVAProduct 2 }
--SA
iveSA700 OBJECT IDENTIFIER ::= {iveProductSA700 1}
iveSA2000 OBJECT IDENTIFIER ::= {iveProductSA2000 1}
iveSA2500 OBJECT IDENTIFIER ::= {iveProductSA2500 1}
iveSA4000 OBJECT IDENTIFIER ::= {iveProductSA4000 1}
iveSA4500 OBJECT IDENTIFIER ::= {iveProductSA4500 1}
iveSA4000FIPS OBJECT IDENTIFIER ::= {iveProductSA4000 2}
iveSA4500FIPS OBJECT IDENTIFIER ::= {iveProductSA4500 2}
iveSA6000 OBJECT IDENTIFIER ::= {iveProductSA6000 1}
iveSA6500 OBJECT IDENTIFIER ::= {iveProductSA6500 1}
iveSA6000FIPS OBJECT IDENTIFIER ::= {iveProductSA6000 2}
iveSA6500FIPS OBJECT IDENTIFIER ::= {iveProductSA6500 2}
--IC
iveIC4000 OBJECT IDENTIFIER ::= {iveProductIC4000 1}
iveIC6000 OBJECT IDENTIFIER ::= {iveProductIC6000 1}
iveIC4500 OBJECT IDENTIFIER ::= {iveProductIC4500 1}
iveIC6500 OBJECT IDENTIFIER ::= {iveProductIC6500 1}
iveIC6000FIPS OBJECT IDENTIFIER ::= {iveProductIC6000 2}
--MAG platform incase we have other rev
iveMAG2600 OBJECT IDENTIFIER ::= {iveProductMAG2600 1}
iveMAG4610 OBJECT IDENTIFIER ::= {iveProductMAG4610 1}
iveMAGSM160 OBJECT IDENTIFIER ::= {iveProductSM160 1}
iveMAGSM360 OBJECT IDENTIFIER ::= {iveProductSM360 1}
--VA platform incase we have to extend further
iveVASPE OBJECT IDENTIFIER ::= {iveProductVASPE 1}
iveVADTE OBJECT IDENTIFIER ::= {iveProductVADTE 1}
END

2
sql-schema/073.sql Normal file
View File

@@ -0,0 +1,2 @@
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'pulse_users', 'firewall', 'Active Users', '');
INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'pulse_sessions', 'firewall', 'Active Sessions', '');