Commit Graph

2623 Commits

Author SHA1 Message Date
PipoCanaja
bf181b9dc2 Added support for routing table collection in discovery (#10182)
* Clean broken VRF lite code
* Change DB table for route discovery
* Add VRF simple support
* add port_id to db and discovery
* static-fy the translation arrays
* sort and search cleaning
* Sorting refactor and validation
* formatItem shortened
* Handle ifIndex==0 meaning no next hop defined (MPLS)
* Sync all create/updates
* purge in daily
* remove old route table
* get rid of inetCidrRouteNextHop_device_id
* fix wonky column orders
* add route snmprec
* fix sorting by interface
* Move to new config
* rename to route the new table
* Properly display ipv6 compressed addresses
* Translation before merge ./lnms translation:generate
* Update manifest
2019-11-17 16:30:43 +01:00
Vitali Kari
7c1e6cb8cf Add support for ZyXEL IES-5005 and IES-5106 DSLAMs (#10804)
* Add support for ZyXEL IES-5005 and IES-5106 DSLAMs

* remove cpu high_limit

* fix broken mib VDSL2-LINE-TC-MIB
rework os polling
2019-11-16 18:17:25 +01:00
Tony Murray
dec9a498ee Updated device cache support (#10795)
* Device Cache
also some additional device related models

* attribs from cache

* replace common attribute functions

* remove legacy cache usage
tidy up some collection manipulation
remove some unused or single use functions

* cleanup some items

* always return a device, to prevent bugs

* clear device cache when testing after each test

* fix double assignment

* Clean up function to take advantage of null object
2019-11-14 21:56:06 +00:00
Erik
a5f53eee2a Brocade switches - Added names on fiberchannel ports (#10737)
* Added brocade ports

* Create brocade.inc.php

* Update functions.php

* Update functions.php

* Update brocade.inc.php

* Try to remove complexity

* Removed white space

Removed white space

* Added testdata

* removed temp variable

* Update functions.php

* Create brocade.inc.php

* Added fill ifAlias for fibrechannel ports

* Update functions.php

* Update brocade.inc.php

* Update fabos.json
2019-11-13 14:29:30 +00:00
dlesel
c95661b482 Added AIX file system, prefer over hrstorage for AIX (#10588)
* Added AIX file system, ignore hrstorage for AIX

* Add AIX Test Data

* Add AIX Test Data 2

* remove includes/polling/os/aix.inc.php

* Update AIX Test Data

* Corect spaces in code

* Update code to correctly disable hrStorage for AIX

* Update aix.json

* Update aix.svg

* Delete aix.svg

* Update aix.svg

* Delete aix.svg
2019-11-13 06:01:45 +00:00
Vitali Kari
a31aef6313 Add support for ZyXEL IES4206/5206/5212/6217 MSANs (#10789)
* - update yzyxel mibs
- update definitions für ies series
- slot state and alarm support via yaml

* more sensors

*  add new device Zyxel IES4206

* restore original ies files

* revert function stuff

* update to latest official mib

* rebase
2019-11-12 10:22:08 +01:00
PipoCanaja
d9c7772804 Avoid state collisions between 'dell' and 'drac' OSes (#10539)
* avoid state collisions between dell and drac OSes
2019-11-03 12:59:08 +01:00
dGs-
28e34c64f9 If dot1qVlanCurrentTable doesn't exist try dot1qVlanStaticTable (#10262)
* If dot1qVlanCurrentTable doesn't exist try dot1qVlanStaticTable

* Create comware_hpe5700.snmprec

* Create comware_hpe5700.json

* Update comware_hpe5700.json

* Updated comware hpe5700 json test file

* Update comware_hpe5700.json

* add HPE A5500 (Comware) capture

* Delete comware_hpe5700.json

* Delete comware_hpe5700.snmprec

* Create comware_a5500.json

* snmprec with dot1qVlanStaticTable and json without mempool and sensors

* change an interface description
2019-10-21 13:41:47 +00:00
Erik
610fde83ec Removed double Stack Temperature Discovery and Fixed typos in dbm discovery for Dell Switches (#10630)
* Fixed typos in dbm discovery for Dell Switches

Fixed typos in dbm discovery for Dell Switches

* Skip value 0 in temperature sensors

* Update dnos.yaml

* Remove temp M-serie from php, already in yaml

* Create dnos_s4048.snmpsim

* Rename dnos_s4048.snmpsim to dnos_s4048.snmprec

* Create dnos_s4048.json

* Create dell-net.inc.php

Added mempool for Dell Net switches

* Update dnos.yaml

Removed whitespaces in dnos.yaml

* Update dnos_s4048.json

* Delete dnos.json

* Create dnos.json
2019-10-21 01:41:32 +00:00
joseUPV
e0cff12f69 Better Support of Alcatel Switches (#10672)
* Added model, processor, fan and power supply for Alcatel Omnistack Switches

* Removed Index from description of Fan and power supply

* Merged PR #10655

* Added Temperature Sensor for AOS7+ Alcatel Enterprise Switches

* Added AOS7 mempools

* Added Tests

* Update aos.yaml

* Update alerts levels in state sensors

* Add test data
2019-10-20 22:26:21 +00:00
Tobias Heister
728bc5f790 Improved RARITAN PDU/PDU2 MIB (current, power) and external env. sensors (#10616)
* added support for PDU/PDU2 MIB data (current, power) and added external sensor fpr humidity and temperature on PDU MIB

* added test data of 1 PDU-MIB device and 1 PDU2-MIB device

* Create raritan-pdu.json

* forgot to do save-data on last commit
2019-10-20 21:26:40 +00:00
Vitali Kari
e40a336315 add mempool_perc_warn level (#10722)
* add mempool_perc_warn level

* add test data
2019-10-19 20:38:23 +00:00
pobradovic08
a2c69cd62f Added Cisco QFP module (#10637)
* QFP Discovery module
* QFP Polling module - Utilization
* Add Cisco QFP module in module list
* Web UI QFP discovery module
* Add average packet size graph
* Health overview QFP graph
* Polling and UI improvements, test data
* Reformatting and style checks
* Readd snmprec data
* Fix module performance stats collecting
2019-10-05 11:10:34 +02:00
Tony Murray
51e5521d9f Do not update mempool warning % every discovery (#10647) 2019-10-03 00:35:44 +02:00
Vitali Kari
2825a7f7ec add discovery of mempool percent warning limit (#10618)
* add ability to discover percent warning on mempools discovery

* remove wierd charachters from json

* remove database defaults, add defaults for Linux and Vmware

* update db schema

* update test data

* adapt hrstorage mempools

* rebase
2019-09-30 13:22:55 +00:00
soto2080
2139eed306 Add EdgeCore ECS4110-28T Support (#10525)
* Add ECS4110 cpu usage

* Add cpu usage oid for ECS4110
* TESTED

* Fix EdgeCore ifOperStatus does not follow the Cisco convention
* Since EdgeCore use "lowerLayerDown" in ifOperStatus when port is unplugged
* On the other way, Cisco use briefly "down".
* So change "lowerLayerDown" to "down" to workaround the bug that will make port always show as up/up

* Refactor Edgecos cpu usage oid
* Codeclimate is unhappy about it maybe the refactor will make it happy.

* Add EgdeCore ECS4110 MIB

Just got MIB from EdgeCore

* Refactor Egdecos Mempool

* a bit refactor of Mempool discover and polling
* add support for ECS4110 via MIB

* Modify ECS-4110 MIB

* MODULE-IDENTITY change from ECS4110-52P-MIB to ECS4110-MIB
* strip off syntax error part(time range)

* Add EdgeCore ECS-4110 OS polling

* polling OS and Hardware via MIBs

* Fix typo

* Sorry that I am dazzled

* Fix Syntax Check

* Codeclimate is a bit aggressive

* Update edgecos.inc.php

* Update edgecos.inc.php

* Revert "Fix EdgeCore ifOperStatus does not follow the Cisco convention"

This reverts commit 27971b34a8.

* Add snmprec file for unit testing.

* Create edgecos_ecs4110-28t.json
2019-09-28 03:18:24 +00:00
Vitali Kari
4990c871d6 do not discover dbm sensors on shutdown ports (#10610) 2019-09-18 12:39:52 +00:00
Vitali Kari
87d3fc7285 sensors sometime not clean up (#10611)
* do not discover dbm sensors on shutdown ports

* rename confusing name from $sensor_type to $sensor_class

* Revert "do not discover dbm sensors on shutdown ports"

This reverts commit 46963f746a.
2019-09-18 12:29:58 +00:00
Søren Rosiak
9768790440 CiscoSB: Skip notPresent ports from state sensors (#10545)
* CiscoSB: Skip notPresent ports from state sensors

* Update ciscosb.inc.php

* Create ciscosb_sg350x-48.json
2019-09-14 23:43:08 +02:00
nistor
3b5295ad45 Fixed junos vlan discovery when no vlan present (#10599)
* Fixed foreach loop throwing errors when no vlans present, community id post 9528
* Added extra else / debug statement for validation
The modified changes allow for clear information regarding the discovery of devices where no port<->L2 Access/Trunk association is seen.
2019-09-14 23:33:28 +02:00
Serazio
142a1abbfd Fixed Junos port/vlan relationships for els and non-els based software (#10321)
* Fixed Junos port/vlan relationships for els and non-els based software

* fixed tabs

* Add test data

* Updated test data

* Update module_tables.yaml

* Update junos_qfx5100.json

* Update junos_qfx5100.json

* Update junos_qfx5100.json
2019-08-28 07:14:26 -05:00
Martijn Schmidt
3a891ba727 Convert opengear to YAML-based discovery, add some new sensors, add test data (#10553)
* Update opengear MIBs to latest version.

* Replace PHP signal discovery with YAML.

* Update Opengear YAML with new sensors.

* Add test data for Opengear.

* Add the test data json for Opengear.

* Named to numbered index to avoid data loss.
2019-08-27 16:54:08 -05:00
garysteers
c089f3bae4 Populate ipv6_network_id in ipv6_addresses where empty (#10548)
* Populate ipv6_network_id in ipv6_addresses where empty

* Update functions.inc.php
2019-08-22 20:58:35 +01:00
Martin Zatloukal
f16805b71d Added support Ericsson MINI-LINK (#10546)
* Added support Ericsson MINI-LINK
* cleaning
2019-08-22 13:19:50 +02:00
garysteers
a1c8fe63ee Fixed ipv6_network_id query for null context_name (#10544)
* Fix ipv6_network_id query for `null` context_name
2019-08-21 20:07:15 +02:00
PipoCanaja
e7a86add93 Allow num_oid to use OCTET STRING indexes (#10410)
* make index available as OCTET STRING converted to OID
* codeclimate
2019-08-21 10:04:16 +02:00
soto2080
610afac9e7 Enabled FDB table support on Nexus devices (#10522)
* NXOS can build FDB table with the same commands used in IOS/IOSXE
2019-08-18 21:55:48 +02:00
PipoCanaja
67376e2e95 Reduce discovery snmp load of Cisco VTP vlans module (#10510)
* Only poll necessary OIDs for Cisco VTP vlan discovery, the current code overload some nexus devices
* codeclimate
2019-08-14 08:34:35 +02:00
PipoCanaja
9dfae2ff14 Allow filtering of Health sensor discovery (#10485)
* Filter sensor types or by regexp

* codeclimate

* codeclimate
2019-08-07 20:01:58 -05:00
ig0rb
3342210067 FS.net pdu (#10424)
* Added support for snmp monitored PDU from fs.com

* Added support for snmp monitored PDU from fs.com

* Fix sysObjectID 1.3.6.1.4.1.30966

* Create fs-net-pdu.json
2019-07-23 22:55:53 -05:00
CirnoT
cafcf417fa Fix NetAgent II battery voltage (#10427)
* Fix NetAgent II battery voltage

* Add new test data and new icon for NetAgent
2019-07-22 23:34:31 -05:00
bergroth
b085703b2d Added support for DGD and BER on newer infinera-groove FW (#10435)
* Added support for DGD and BER that are avalible on newer infinera-groove FW
* updated tests for new groove sensors
* Update infinera-groove.inc.php
* Update infinera-groove.inc.php
* Force test to run again
2019-07-15 12:47:41 +02:00
PipoCanaja
837765fabe Added VRP SFPs thresholds and map entPhysical to ifIndexes (#10363)
* gather SFPs thresholds and map entPhysical to ifIndexes

* Update entity-physical.inc.php

Comment and force TravisTests

* codeclimate

* Simplify ifIndex collection

* Always update ifIndex

* Missing pre-cache value for skip_value
2019-07-14 18:37:01 -05:00
CirnoT
d4c109232a Ensure that sysName is trimmed on discovery (#10434) 2019-07-10 17:54:24 +02:00
ospfbgp
fc2f0a4552 Updated RAPID-CITY mib for Extreme VSP (#10406)
* Add files via upload

* Update voss.inc.php

* Update voss.inc.php

* Update voss.yaml

* Update voss.inc.php

* Update voss.inc.php

* Update voss.inc.php

* Update voss_7432cq.json

* Update voss_7432cq.json

* Add files via upload

* Add files via upload

* Update voss_8404.json

* Update voss_8608.json

* Update voss_8608.json

* Update voss_8608.json

* Update voss_8608.json

* Update voss_9012.json
2019-07-09 23:54:21 +02:00
rsys-dev
cfaf913896 Added detection for ZTE zxdsl devices (#10344)
* add yaml files

* Added include/definition/zxdsl.yaml (ZTE ZXDSL Support)
Added include/polling/os/zxdsl.inc.php (Set Hardware)

* Changed includes/definitions/zxdsl.yaml type from "dslam" to "network"
Changed includes/polling/os/zxdsl.inc.php removed unnecessary code
Added Testfiles

* Fixed coding guideline errors (missing spaces)

* Removed unnecessary "use"

* Improved model number discovery
Removed unavailable top graphs
Added System temperature

* Changed Temperature limits according to ZTE datasheet

* Updated Tests
2019-07-05 13:06:27 +02:00
Tony Murray
f3ba8947f7 Use Config helper (#10339)
remove usage of global variable
2019-06-23 00:29:12 -05:00
Tony Murray
8b0a1d902a Revert "WIP - Added VRP SFPs thresholds and map entPhysical to ifIndexes (#10355)" (#10362)
This reverts commit a3bb92074e.
2019-06-21 21:42:21 -05:00
PipoCanaja
a3bb92074e WIP - Added VRP SFPs thresholds and map entPhysical to ifIndexes (#10355)
* gather SFPs thresholds and map entPhysical to ifIndexes

* Update entity-physical.inc.php

Comment and force TravisTests

* codeclimate
2019-06-21 21:41:57 -05:00
Martijn Schmidt
048fd0f6ed Remove guessed limits for some health sensors, documentation for sensor classes (#10327)
* Default to null for group yaml discovery.

* Update test data for a154bda yaml group null fix.

* Changes to guessed limit functions for sensors.

Original behaviour
===================

The file `includes/discovery/functions.inc.php` contains
`sensor_limit_low()` and `sensor_limit()` which both attempt to
guess a sane value for sensors when no explicitly defined
low_limit or high_limit can be found during discovery.

Both switch control structures used in those two functions
have empty case statements which means that if one of those matches,
it's going to fall through and run the code for each subsequent
case until a `break` is reached.

For example, when we call `function sensor_low_limit(dbm, -13.036)`
it will return the value `-12.3842` instead of `null`. That is
because there will be a match at `case 'dbm':` which falls through
all the way to `case 'cooling':`, where it performs
`$limit = -13.036 * 0.95` before hitting a `break`.

Changed behaviour
===================

Removed `power_consumed` and `count` guessed low_limit and
high_limit, I personally added those sensor classes in PR #9471
when I didn't understand that a switch control structure has
fall-through behaviour so I can guarantee that guessing limits for
those is a mistake on my behalf. It should not be there, only
power_factor can have guessed limits. Apologies for the issue,
I'm still a beginning programmer!

Furthermore, I removed guessed high_limit values for `current`
and `power` because these are supposed to draw higher values as
more devices or components are installed on for example a PDU or
a chassis.

Finally, I removed guessed low_limit and high_limit for `dbm`
sensors, there is a much too large variance in power budget on
commercially available optical transceivers for there to be a
sensible window where you can guess these values.

* Documentation on adding sensor classes.

* Update test data - sensor limit changes @ 30212d2
2019-06-21 09:03:27 -05:00
TVCABO MZ
1f19eb2146 Fix mysql bug in cisco-sla module (#10357)
* Update cisco-sla.inc.php

Fix SQL error during discovery of cisco-sla.
This error points to /opt/librenms/includes/discovery/cisco-sla.inc.php(80).

LOG ERROR:
[2019-06-18 07:07:01] production.ERROR: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters (SQL: UPDATE slas set device_id=39,sla_nr=1,owner=,tag=xxx.xxx.xxx.xxx,rtt_type=echo,status=1,opstatus=0,deleted=0 WHERE sla_id = 5) (SQL: UPDATE slas set device_id=39,sla_nr=1,owner=,tag=xxx.xxx.xxx.xxx,rtt_type=echo,status=1,opstatus=0,deleted=0 WHERE sla_id = 5)#0 /opt/librenms/includes/discover
y/cisco-sla.inc.php(80): dbUpdate(Array, ‘slas’, ’sla_id = :sla…’, Array)
#1 /opt/librenms/includes/discovery/functions.inc.php(179): include(’/opt/librenms/i…’)
#2 /opt/librenms/discovery.php(120): discover_device(Array, false)
#3 {main}

I suggest to change this lines of code in cisco-sla.inc.php to avoid this error:

line 80: dbUpdate($data, ‘slas’, ’sla_id = :sla_id’, array(‘sla_id’ => $sla_id));
change to: dbUpdate($data, ‘slas’, ’sla_id = ?’, array($sla_id));

line 87: dbUpdate(array(‘deleted’ => 1), ‘slas’, ’sla_id = :sla_id’, array(‘sla_id’ => $existing_sla));
change to: dbUpdate(array(‘deleted’ => 1), ‘slas’, ’sla_id = ?’, array($existing_sla));

* Fix quotes

* Missed one
2019-06-21 07:16:19 -05:00
Kevin Krumm
da9e67b296 Aruba IAP: Fix Radio State Sensor (#10335)
* Aruba IAP: Fix Radio State Sensor 

Fix state sensor for radio status from warning when disabled to unknown state.

* Update aruba-instant.json

* Update aruba-instant_105.json
2019-06-15 10:10:37 -05:00
StackOverBuffer
fec165fb86 Add power sensor for eaton ups (#10306)
* Add power sensor for eaton ups

* removed whitespace at end of line

* add test data
2019-06-11 23:46:43 -05:00
Vitali Kari
00b148dbd3 Add MPLS Support (#10263)
* WIP - Add MPLS Support
This introduce the generic MPLS support
- New database tables for MPLS LSPs
- actually discovery and polling on NOKIA SR OS (Timetra) devices
- new routing->MPLS HTML pages

- ToDo MPLS LSP paths table and views
Suggestions and improvements are welcome

* add db schema

* some fixes

* add path table, discovery and polling

* add path views

* add test data

* Convert MPLS module to new style
Implement a SyncsModels trait to simplify code a lot

* abs() for negative value from snmp (bug?), test data

* fix db schema

* Fix up test data, remove uneeded data in json

* fix whitespace
2019-06-06 16:12:13 -05:00
Marlinc
93f3528bbf Add Ipoman power consumption support (#10244)
* Add Ipoman power consumption support

* Create ipoman.json
2019-05-31 07:43:54 -05:00
Martijn Schmidt
9455a83478 Convert OS mrv-od to yaml, discover more sensors, discover entity-physical (#10266)
* Dynamic entPhysicalIndex values for YamlDiscovery

* Use degree symbol when displaying temperature values

* Adjust SNMP options for new snmp_get_multi()

The OS polling module for mrv-od was using snmpget commands with
-Ovqs, rather than -OQUs, which meant that the equal sign was
stripped in the snmpget output. But that equal sign is now used
as the explode() delimiter so it broke the construction of the
returned array for the snmp_get_multi() function.

Additionally, I removed the NBS-CMMC-MIB:: prefix which is no
longer returned by snmp_get_multi() as part of the OID. Now,
the mrv-od.inc.php OS polling module is retrieving data from
positions in the array with actual content.

* Convert mrv-od to yaml, improve sensors discovery

Converted sensors discovery for mrv-od to yaml, retaining all
functionality for pre-cache, dbm, and temperature. Replaced specific
SFF-8472 Digital Diagnostics state sensors with generic ones, given that
we are now reading out detailed values through new dbm, current, voltage
sensors.

Reasoning: the generic Digital Diagnostics state sensors report state
diagsOk, or else the worst severity level measured among all of the
Digital Diagnostics values for that optical data point. You'd really
only want to set a generic "alarm" so the box can report that it
thinks something is wrong, whereafter a human can look at the graphs
and/or the CLI to draw their conclusions about the alarm. Otherwise,
things would quickly become too spammy as you are essentially duplicating
every sensor across both regular measurements and state measurements.

Further changes:
- Increase maximum number of detected PSUs from 4 to 8 per the MIB.
- State sensor to detect (in)sufficient power budget for all modules.
- Use skip_values to hide state sensors with the notSupported value.
- Use skip_values to hide sensors which are unsupported per the MIB,
  signified by the device returning special values -1 or -2147483648.
- Add dBm, temperature "over" graphs to the mrv-od device header bar.

* Add mrv-od entity-physical support

MRV does not use the ENTITY-MIB data format, so we had to reconstruct
the inventory from their proprietary format using the following tables
from their NBS-CMMC-MIB:

- nbsCmmcChassisTable
- nbsCmmcSlotTable
- nbsCmmcPortTable

Additionally, since sensors didn't have their own ifindex in the
NBS-CMMC-MIB, I went ahead and appended the last OID digit to
the "containing" ifindex create a unique number. The same was
done for the sensors in the yaml-discovery.

* Test data for mrv-od, fix 2* pre-commit.php issues

* Fix entPhysicalIndex returning 0 instead of null

Some unit test breakage was caused by 62167ebcb which changed
the code to return 0 instead of null when {{ $index }} was
set as the entPhysicalIndex in the YamlDiscovery. So now we
detect if it returns some value which may be interpreted as
false, and if so we set null rather than 0.
2019-05-29 13:30:33 -05:00
Michael Ducharme
902c056f62 Fix for RouterOS LLDP discovery (#10265)
* Fix for RouterOS LLDP discovery

Only the first nine neighbors were correct on RouterOS - missing hexdec() led to the remaining neighbors being linked to the wrong ports. Ex. port 10 in hex was incorrectly linked to port 10 decimal when it should be 16 in decimal

* Added test data for MikroTik RouterOS CRS317 switch
2019-05-28 08:32:51 +02:00
Daniele Viganò
e9b3e258e8 Fix power consumption detection on Dell servers (#10250) 2019-05-23 09:54:19 -05:00
Spencer Butler
83522c6fef Added support for East iStars UPS (os: istars) (#10041)
* istars - Added support for East iStars UPS (os: istars)

* typo

* remove duplicate image

* refactored to use rfc1628

* added json

* update is_array to isset for bad rfc1628 implementation

* Update istars.inc.php

* revert rfc1628 changes

* update test data + PR 10240 patch

* update OIDs
2019-05-21 11:03:28 -05:00
Jozef Pivarník
2dc05ee501 Fixed Cisco MAC accounting discovery, polling and HTML templates. (#10158)
* Fix Cisco MAC acounting discovery, polling and HTML templates.

* Remove empty code.

* Provide test data for cisco-mac-accounting module.

* Added module test dependency.
2019-05-20 20:56:19 -05:00