From fd8c8d34ffa7dd75a70759c208c0f1734a2f018b Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:27:26 +0200 Subject: [PATCH 01/11] Create PULSESECURE-PSG-MIB --- mibs/PULSESECURE-PSG-MIB | 755 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 755 insertions(+) create mode 100644 mibs/PULSESECURE-PSG-MIB diff --git a/mibs/PULSESECURE-PSG-MIB b/mibs/PULSESECURE-PSG-MIB new file mode 100644 index 0000000000..24df6882ed --- /dev/null +++ b/mibs/PULSESECURE-PSG-MIB @@ -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 From 36e036a761b427d71c5fa18190cd668eefa76a4d Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:38:22 +0200 Subject: [PATCH 02/11] Update definitions.inc.php --- includes/definitions.inc.php | 68 +++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index 618f871b39..7acbf0c4a8 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -30,6 +30,19 @@ else { $database_db = mysql_select_db($config['db_name'], $database_link); } +if ($config['memcached']['enable'] === true) { + if (class_exists('Memcached')) { + $config['memcached']['ttl'] = 60; + $config['memcached']['resource'] = new Memcached(); + $config['memcached']['resource']->addServer($config['memcached']['host'], $config['memcached']['port']); + } + else { + echo "WARNING: You have enabled memcached but have not installed the PHP bindings. Disabling memcached support.\n"; + echo "Try 'apt-get install php5-memcached' or 'pecl install memcached'. You will need the php5-dev and libmemcached-dev packages to use pecl.\n\n"; + $config['memcached']['enable'] = 0; + } +} + $clone = $config; foreach (dbFetchRows('select config_name,config_value from config') as $obj) { $clone = array_replace_recursive($clone, mergecnf($obj)); @@ -413,6 +426,10 @@ $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'; +$config['os'][$os]['over'][3]['graph'] = 'device_ciscowlc_numaps'; +$config['os'][$os]['over'][3]['text'] = 'Number of APs'; +$config['os'][$os]['over'][4]['graph'] = 'device_ciscowlc_numclients'; +$config['os'][$os]['over'][4]['text'] = 'Number of Clients'; $config['os'][$os]['icon'] = 'cisco'; // Brocade NOS @@ -536,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'; @@ -634,6 +663,12 @@ $config['os'][$os]['icon'] = 'avaya'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Device Traffic'; +$os = 'avaya-ipo'; +$config['os'][$os]['text'] = 'IP Office Firmware'; +$config['os'][$os]['type'] = 'network'; +$config['os'][$os]['icon'] = 'avaya'; + + $os = 'arista_eos'; $config['os'][$os]['text'] = 'Arista EOS'; $config['os'][$os]['type'] = 'network'; @@ -848,6 +883,10 @@ $config['os'][$os]['text'] = 'SonicWALL'; $config['os'][$os]['type'] = 'firewall'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$config['os'][$os]['over'][1]['text'] = 'CPU'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory'; $os = 'zywall'; $config['os'][$os]['text'] = 'ZyXEL ZyWALL'; @@ -1284,6 +1323,14 @@ $config['os'][$os]['icon'] = 'generic'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; +// HP MSM +$os = 'hpmsm'; +$config['os'][$os]['text'] = 'HP MSM'; +$config['os'][$os]['type'] = 'wireless'; +$config['os'][$os]['icon'] = 'hp'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; + // Appliances $os = 'fortios'; $config['os'][$os]['text'] = 'FortiOS'; @@ -1459,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'; @@ -1685,19 +1740,6 @@ if (isset($_SERVER['HTTPS'])) { $config['base_url'] = preg_replace('/^http:/', 'https:', $config['base_url']); } -if ($config['memcached']['enable'] === true) { - if (class_exists('Memcached')) { - $memcache = new Memcached(); - $memcache->addServer($config['memcached']['host'], $config['memcached']['port']); - $memcache->getStats(); - } - else { - echo "WARNING: You have enabled memcached but have not installed the PHP bindings. Disabling memcached support.\n"; - echo "Try 'apt-get install php5-memcached' or 'pecl install memcached'. You will need the php5-dev and libmemcached-dev packages to use pecl.\n\n"; - $config['memcached']['enable'] = 0; - } -} - // Set some times needed by loads of scripts (it's dynamic, so we do it here!) $config['time']['now'] = time(); $config['time']['now'] -= ($config['time']['now'] % 300); From 15ece0f14c12536cdf6e14cf07f14487afb941fe Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:41:25 +0200 Subject: [PATCH 03/11] Create pulse.inc.php --- includes/discovery/os/pulse.inc.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 includes/discovery/os/pulse.inc.php diff --git a/includes/discovery/os/pulse.inc.php b/includes/discovery/os/pulse.inc.php new file mode 100644 index 0000000000..608403dc03 --- /dev/null +++ b/includes/discovery/os/pulse.inc.php @@ -0,0 +1,16 @@ + + * 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'; + } +} From dbb6e1d7b0544bdf009cd7533914234ed05bd71c Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:44:30 +0200 Subject: [PATCH 04/11] Create pulse.inc.php --- includes/discovery/mempools/pulse.inc.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 includes/discovery/mempools/pulse.inc.php diff --git a/includes/discovery/mempools/pulse.inc.php b/includes/discovery/mempools/pulse.inc.php new file mode 100644 index 0000000000..97b514a989 --- /dev/null +++ b/includes/discovery/mempools/pulse.inc.php @@ -0,0 +1,23 @@ + + * 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); + } +} From 25eb2d166d354e54681f739b3a44dab3ea41dae1 Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:45:49 +0200 Subject: [PATCH 05/11] Create pulse.inc.php --- includes/discovery/processors/pulse.inc.php | 25 +++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 includes/discovery/processors/pulse.inc.php diff --git a/includes/discovery/processors/pulse.inc.php b/includes/discovery/processors/pulse.inc.php new file mode 100644 index 0000000000..4faa47dbb5 --- /dev/null +++ b/includes/discovery/processors/pulse.inc.php @@ -0,0 +1,25 @@ + + * 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); + } +} From 5544313363266e082ac89f10b33c5cca334d18c3 Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:47:55 +0200 Subject: [PATCH 06/11] Create pulse-mem.inc.php --- includes/polling/mempools/pulse-mem.inc.php | 30 +++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 includes/polling/mempools/pulse-mem.inc.php diff --git a/includes/polling/mempools/pulse-mem.inc.php b/includes/polling/mempools/pulse-mem.inc.php new file mode 100644 index 0000000000..cfee9f7ee5 --- /dev/null +++ b/includes/polling/mempools/pulse-mem.inc.php @@ -0,0 +1,30 @@ + + * 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"; + +} From 295e4eada9443ffe3730d6be09d63ab662662d55 Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:48:39 +0200 Subject: [PATCH 07/11] Create pulse-cpu.inc.php --- includes/polling/processors/pulse-cpu.inc.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 includes/polling/processors/pulse-cpu.inc.php diff --git a/includes/polling/processors/pulse-cpu.inc.php b/includes/polling/processors/pulse-cpu.inc.php new file mode 100644 index 0000000000..03413c3b90 --- /dev/null +++ b/includes/polling/processors/pulse-cpu.inc.php @@ -0,0 +1,23 @@ + + * 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); + } +} From 6fdcb035774ff5e9d64f56d9613b132eddc9515c Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:49:42 +0200 Subject: [PATCH 08/11] Create pulse.inc.php --- includes/polling/os/pulse.inc.php | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 includes/polling/os/pulse.inc.php diff --git a/includes/polling/os/pulse.inc.php b/includes/polling/os/pulse.inc.php new file mode 100644 index 0000000000..f52d9ac0c6 --- /dev/null +++ b/includes/polling/os/pulse.inc.php @@ -0,0 +1,37 @@ + + * 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; +} From 24efc0176d0d27e5f6efeecde3ab46b20dfa0858 Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:51:14 +0200 Subject: [PATCH 09/11] Create 073.sql --- sql-schema/073.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sql-schema/073.sql diff --git a/sql-schema/073.sql b/sql-schema/073.sql new file mode 100644 index 0000000000..635de4cb45 --- /dev/null +++ b/sql-schema/073.sql @@ -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', ''); From adc445a565c0c46980d9f87393f94b00026800a6 Mon Sep 17 00:00:00 2001 From: chrisgfx Date: Sat, 3 Oct 2015 11:56:05 +0200 Subject: [PATCH 10/11] Create pulse_sessions.inc.php --- .../graphs/device/pulse_sessions.inc.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 html/includes/graphs/device/pulse_sessions.inc.php diff --git a/html/includes/graphs/device/pulse_sessions.inc.php b/html/includes/graphs/device/pulse_sessions.inc.php new file mode 100644 index 0000000000..bedbdb0cc7 --- /dev/null +++ b/html/includes/graphs/device/pulse_sessions.inc.php @@ -0,0 +1,19 @@ + Date: Sat, 3 Oct 2015 11:56:54 +0200 Subject: [PATCH 11/11] Create pulse_users.inc.php --- .../includes/graphs/device/pulse_users.inc.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 html/includes/graphs/device/pulse_users.inc.php diff --git a/html/includes/graphs/device/pulse_users.inc.php b/html/includes/graphs/device/pulse_users.inc.php new file mode 100644 index 0000000000..355c195dea --- /dev/null +++ b/html/includes/graphs/device/pulse_users.inc.php @@ -0,0 +1,18 @@ +