diff --git a/html/includes/graphs/device/junos_jsrx_spu_sessions.inc.php b/html/includes/graphs/device/junos_jsrx_spu_sessions.inc.php new file mode 100644 index 0000000000..95c2b7f0c0 --- /dev/null +++ b/html/includes/graphs/device/junos_jsrx_spu_sessions.inc.php @@ -0,0 +1,18 @@ + RrdDefinition::make()->addDataset('spu_flow_sessions', 'GAUGE', 0), + ); + $fields = array( + 'spu_flow_sessions' => $junos[0]['jnxJsSPUMonitoringCurrentFlowSession'], + ); + + data_update($device, 'junos_jsrx_spu_sessions', $tags, $fields); + + $graphs['junos_jsrx_spu_sessions'] = true; + echo ' Flow Sessions'; +} + $version = snmp_get($device, 'jnxVirtualChassisMemberSWVersion.0', '-Oqv', 'JUNIPER-VIRTUALCHASSIS-MIB'); if (empty($version)) { preg_match('/\[(.+)\]/', snmp_get($device, '.1.3.6.1.2.1.25.6.3.1.2.2', '-Oqv', 'HOST-RESOURCES-MIB'), $jun_ver); diff --git a/mibs/junos/JUNIPER-SRX5000-SPU-MONITORING-MIB b/mibs/junos/JUNIPER-SRX5000-SPU-MONITORING-MIB new file mode 100644 index 0000000000..80b3a24688 --- /dev/null +++ b/mibs/junos/JUNIPER-SRX5000-SPU-MONITORING-MIB @@ -0,0 +1,350 @@ +-- +-- Juniper Enterprise specific MIB: SRX5000 SPU monitoring MIB +-- +-- Copyright (c) 2008-2010, Juniper Networks, Inc. +-- All rights reserved. +-- +-- The contents of this document are subject to change without notice. +-- + +JUNIPER-SRX5000-SPU-MONITORING-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Gauge32, Unsigned32 + FROM SNMPv2-SMI + CounterBasedGauge64 + FROM HCNUM-TC + DisplayString + FROM SNMPv2-TC + jnxJsSPUMonitoringRoot + FROM JUNIPER-JS-SMI; + +jnxJsSPUMonitoringMIB MODULE-IDENTITY + LAST-UPDATED "201003250000Z" -- Mar 25 00:00:00 2010 UTC + ORGANIZATION "Juniper Networks, Inc." + CONTACT-INFO + " Juniper Technical Assistance Center + Juniper Networks, Inc. + 1194 N. Mathilda Avenue + Sunnyvale, CA 94089 + E-mail: support@juniper.net" + DESCRIPTION + "This is Juniper Networks' implementation of enterprise + specific MIB for SRX5000 SPU monitoring." + REVISION + "201207040000Z" -- Jul 04 00:00:00 2012 UTC + DESCRIPTION + "add MIB for session counters of IPv4 and IPv6 respectively." + + ::= { jnxJsSPUMonitoringRoot 1 } + + jnxJsSPUMonitoringObjectsTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxJsSPUMonitoringObjectsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table exposes SPUs utilization statistics." + ::= { jnxJsSPUMonitoringMIB 1 } + + jnxJsSPUMonitoringObjectsEntry OBJECT-TYPE + SYNTAX JnxJsSPUMonitoringObjectsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry collects CPU/Memory utilization for a SPU." + INDEX { jnxJsSPUMonitoringIndex } + ::= { jnxJsSPUMonitoringObjectsTable 1 } + + JnxJsSPUMonitoringObjectsEntry ::= SEQUENCE + { + jnxJsSPUMonitoringIndex Unsigned32, + jnxJsSPUMonitoringFPCIndex Unsigned32, + jnxJsSPUMonitoringSPUIndex Unsigned32, + jnxJsSPUMonitoringCPUUsage Unsigned32, + jnxJsSPUMonitoringMemoryUsage Unsigned32, + jnxJsSPUMonitoringCurrentFlowSession Unsigned32, + jnxJsSPUMonitoringMaxFlowSession Unsigned32, + jnxJsSPUMonitoringCurrentCPSession Unsigned32, + jnxJsSPUMonitoringMaxCPSession Unsigned32, + jnxJsSPUMonitoringNodeIndex Unsigned32, + jnxJsSPUMonitoringNodeDescr DisplayString, + jnxJsSPUMonitoringFlowSessIPv4 Unsigned32, + jnxJsSPUMonitoringFlowSessIPv6 Unsigned32, + jnxJsSPUMonitoringCPSessIPv4 Unsigned32, + jnxJsSPUMonitoringCPSessIPv6 Unsigned32 + } + + jnxJsSPUMonitoringIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SPU's overall index in platform." + ::= { jnxJsSPUMonitoringObjectsEntry 1 } + + jnxJsSPUMonitoringFPCIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Which FPC SPU is on." + ::= { jnxJsSPUMonitoringObjectsEntry 2 } + + jnxJsSPUMonitoringSPUIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SPU'Index inside the FPC." + ::= { jnxJsSPUMonitoringObjectsEntry 3 } + + jnxJsSPUMonitoringCPUUsage OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current SPU(CPU) Utilization in percentage." + ::= { jnxJsSPUMonitoringObjectsEntry 4 } + + jnxJsSPUMonitoringMemoryUsage OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current memory usage of SPU(CPU) in percentage." + ::= { jnxJsSPUMonitoringObjectsEntry 5 } + + jnxJsSPUMonitoringCurrentFlowSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current flow session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 6 } + + jnxJsSPUMonitoringMaxFlowSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Max flow session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 7 } + + jnxJsSPUMonitoringCurrentCPSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current CP session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 8 } + + jnxJsSPUMonitoringMaxCPSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Max CP session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 9 } + + jnxJsSPUMonitoringNodeIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute is used to identify a chassis. A chassis can + be configured in a single or cluster mode. When it is in a + cluster mode, the chassis can be denote as a cluster node." + ::= { jnxJsSPUMonitoringObjectsEntry 10 } + + jnxJsSPUMonitoringNodeDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute is used to describe the chassis/cluster + node information. Chassis can be configured as a single, or + cluster node. When it is cluster mode, the chassis can be + denoted as a cluster node." + ::= { jnxJsSPUMonitoringObjectsEntry 11 } + + jnxJsSPUMonitoringFlowSessIPv4 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current IPv4 flow session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 12 } + + + jnxJsSPUMonitoringFlowSessIPv6 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current IPv6 flow session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 13 } + + + jnxJsSPUMonitoringCPSessIPv4 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current IPv4 CP session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 14 } + + + jnxJsSPUMonitoringCPSessIPv6 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current IPv6 CP session number of SPU." + ::= { jnxJsSPUMonitoringObjectsEntry 15 } + + + jnxJsSPUMonitoringCurrentTotalSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System level total session in use." + ::= { jnxJsSPUMonitoringMIB 2 } + + + jnxJsSPUMonitoringMaxTotalSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System level max session possible." + ::= { jnxJsSPUMonitoringMIB 3 } + + + jnxSPUClusterObjectsTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxSPUClusterObjectsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table exposes SPU monitoring objects in HA cluster." + ::= { jnxJsSPUMonitoringMIB 4 } + + + jnxSPUClusterObjectsEntry OBJECT-TYPE + SYNTAX JnxSPUClusterObjectsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry collects SPU monitoring contents in HA cluster." + INDEX { jnxJsClusterMonitoringNodeIndex } + ::= { jnxSPUClusterObjectsTable 1 } + + JnxSPUClusterObjectsEntry ::= SEQUENCE + { + jnxJsClusterMonitoringNodeIndex Unsigned32, + jnxJsClusterMonitoringNodeDescr DisplayString, + jnxJsNodeCurrentTotalSession Unsigned32, + jnxJsNodeMaxTotalSession Unsigned32, + jnxJsNodeSessionCreationPerSecond CounterBasedGauge64, + jnxJsNodeSessCreationPerSecIPv4 CounterBasedGauge64, + jnxJsNodeSessCreationPerSecIPv6 CounterBasedGauge64, + jnxJsNodeCurrentTotalSessIPv4 Unsigned32, + jnxJsNodeCurrentTotalSessIPv6 Unsigned32 + } + + jnxJsClusterMonitoringNodeIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This attribute is used to identify a chassis. A chassis can + be configured in a single or cluster mode. When it is in a + cluster mode, the chassis can be denote as a cluster node." + ::= { jnxSPUClusterObjectsEntry 1 } + + jnxJsClusterMonitoringNodeDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute is used to describe the chassis/cluster + node information. Chassis can be configured as a single, or + cluster node. When it is cluster mode, the chassis can be + denoted as a cluster node." + ::= { jnxSPUClusterObjectsEntry 2 } + + jnxJsNodeCurrentTotalSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node total session in use." + ::= { jnxSPUClusterObjectsEntry 3 } + + jnxJsNodeMaxTotalSession OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node max session possible." + ::= { jnxSPUClusterObjectsEntry 4 } + + jnxJsNodeSessionCreationPerSecond OBJECT-TYPE + SYNTAX CounterBasedGauge64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node average session created in last 96 seconds." + ::= { jnxSPUClusterObjectsEntry 5 } + + + jnxJsNodeSessCreationPerSecIPv4 OBJECT-TYPE + SYNTAX CounterBasedGauge64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node average IPv4 session created in last 96 seconds." + ::= { jnxSPUClusterObjectsEntry 6 } + + jnxJsNodeSessCreationPerSecIPv6 OBJECT-TYPE + SYNTAX CounterBasedGauge64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node average IPv6 session created in last 96 seconds." + ::= { jnxSPUClusterObjectsEntry 7 } + + jnxJsNodeCurrentTotalSessIPv4 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node total IPv4 session in use." + ::= { jnxSPUClusterObjectsEntry 8 } + + jnxJsNodeCurrentTotalSessIPv6 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Node total IPv6 session in use." + ::= { jnxSPUClusterObjectsEntry 9 } + + jnxJsSPUMonitoringTotalSessIPv4 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System level total IPv4 session in use." + ::= { jnxJsSPUMonitoringMIB 5 } + + jnxJsSPUMonitoringTotalSessIPv6 OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System level total IPv6 session in use." + ::= { jnxJsSPUMonitoringMIB 6 } +END diff --git a/sql-schema/252.sql b/sql-schema/252.sql new file mode 100644 index 0000000000..db74654b94 --- /dev/null +++ b/sql-schema/252.sql @@ -0,0 +1 @@ +INSERT INTO `graph_types`(`graph_type`, `graph_subtype`, `graph_section`, `graph_descr`, `graph_order`) VALUES ('device', 'junos_jsrx_spu_flows', 'network', 'SPU Flows', 0); diff --git a/tests/data/junos_srx340.json b/tests/data/junos_srx340.json new file mode 100644 index 0000000000..83f131b0d9 --- /dev/null +++ b/tests/data/junos_srx340.json @@ -0,0 +1,40 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.2636.1.1.1.2.135", + "sysDescr": "Juniper Networks, Inc. srx340 internet router, kernel JUNOS 15.1X49-D120.3, Build date: 2017-11-04 21:55:34 UTC Copyright (c) 1996-2017 Juniper Networks, Inc.", + "sysContact": null, + "version": null, + "hardware": "", + "features": null, + "location": null, + "os": "junos", + "type": "network", + "serial": null, + "icon": "junos.png" + } + ] + }, + "poller": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.2636.1.1.1.2.135", + "sysDescr": "Juniper Networks, Inc. srx340 internet router, kernel JUNOS 15.1X49-D120.3, Build date: 2017-11-04 21:55:34 UTC Copyright (c) 1996-2017 Juniper Networks, Inc.", + "sysContact": "", + "version": "15.1X49-D120.3", + "hardware": "Juniper SRX340", + "features": null, + "location": "", + "os": "junos", + "type": "network", + "serial": "", + "icon": "junos.png" + } + ] + } + } +} diff --git a/tests/snmpsim/junos_srx340.snmprec b/tests/snmpsim/junos_srx340.snmprec new file mode 100644 index 0000000000..3ce17beb85 --- /dev/null +++ b/tests/snmpsim/junos_srx340.snmprec @@ -0,0 +1,11 @@ +1.3.6.1.2.1.1.1.0|4|Juniper Networks, Inc. srx340 internet router, kernel JUNOS 15.1X49-D120.3, Build date: 2017-11-04 21:55:34 UTC Copyright (c) 1996-2017 Juniper Networks, Inc. +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.2636.1.1.1.2.135 +1.3.6.1.2.1.1.3.0|67|1240463251 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.5.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.2.1.25.1.1.0|67|1240504129 +1.3.6.1.2.1.25.6.3.1.2.2|4|JUNOS Software Release [15.1X49-D120.3] +1.3.6.1.4.1.2636.3.1.3.0|4| +1.3.6.1.4.1.2636.3.39.1.12.1.1.1.6.0|66|109 +1.3.6.1.6.3.10.2.1.3.0|2|12404632