Commit Graph

879 Commits

Author SHA1 Message Date
N-Mi
fce185b55c Fix doc test after changelog split (#10412) 2019-07-04 08:01:46 -05:00
jozefrebjak
3531454a6e Added VPN sensors for Fortinet Fortigate (#10384)
* Added IPSEC VPN state

* Added more VPN sensors

* Test Data cleaned
2019-07-02 15:58:42 +01:00
SniperVegeta
f419419830 Added panasonic ns1000 os (#10390)
* Add files via upload

panasonic png

* Create panasonic-ns.yaml

Panasonic NS

* Create panasonic-ns.inc.php

Panasonic NS Series

* Create KX-NS.mib

Panasonic NS mib file

* Add files via upload

Add snmprec

* Add files via upload

add panasonic-ns data

* Update panasonic-ns.inc.php

Space?
2019-07-02 00:08:04 +02:00
ospfbgp
9740120e97 Added support for Extreme VSP-7432CQ (#10393)
* Update xos.yaml

* Update voss.yaml

* Update voss.yaml

* Add files via upload

* Add files via upload
2019-07-02 00:06:42 +02:00
Tony Murray
f3ba8947f7
Use Config helper (#10339)
remove usage of global variable
2019-06-23 00:29:12 -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
Tony Murray
7f6a342d71
Fix device group queries that don't start with devices table (#10360) 2019-06-21 06:53:48 -05:00
Tony Murray
1a60c44eb0
Device groups rewrite (#10346)
* Device Groups rewrite
Updated web ui
Static or dynamic groups allowed
Alert rule query builder
Translation support
Permissions support

* cleanup, make relationship save, and validate it

* builder WIP

* rules builder and rules saving/loading

* Parse query builder to Laravel Fluent query

* Upgrade existing groups when editing.
Properly update only dynamic groups when polling.

* remove unused old code
Update API and other places to use Eloquent

* debug output in poller restored

* Fix up some things
creating static
improved validation
fix js error on creation
Fix static groups in polling

* hide pattern for static group

* Implement authorization
Use in the menu too

* update schema

* fix rollback

* Don't abort on invalid queries

* fixes to query builder

* add test data, looks like macros aren't handled (omitted them because groups don't use them generally)

* Add macro support for QueryBuilderFluentParser

* add test for macro that accepts value

* More space in forms
Retain rules when converted to static
no duplicate names allowed

* Better error feedback
Update related devices on save

* Add button icon

* format

* update docs

* fix tests

* Fix some QueryBuilderFluentParser issues with OR
updated/more test data

* Show device groups runtime
fix querybuilder.json format

* Store table joins in the rules to minimize polling time
Update group joins in daily.sh (and when they are saved)

* Update daily.php

* Add units to time
2019-06-19 16:01:53 -05:00
Tony Murray
c2b09b8f80
Revert "Rewritten device groups (including static) (#10295)" (#10340)
This reverts commit cfc51d51f5.
2019-06-16 21:52:57 -05:00
Tony Murray
cfc51d51f5
Rewritten device groups (including static) (#10295)
* Device Groups rewrite
Updated web ui
Static or dynamic groups allowed
Alert rule query builder
Translation support
Permissions support

* cleanup, make relationship save, and validate it

* builder WIP

* rules builder and rules saving/loading

* Parse query builder to Laravel Fluent query

* Upgrade existing groups when editing.
Properly update only dynamic groups when polling.

* remove unused old code
Update API and other places to use Eloquent

* debug output in poller restored

* Fix up some things
creating static
improved validation
fix js error on creation
Fix static groups in polling

* hide pattern for static group

* Implement authorization
Use in the menu too

* update schema

* fix rollback

* Don't abort on invalid queries

* fixes to query builder

* add test data, looks like macros aren't handled (omitted them because groups don't use them generally)

* Add macro support for QueryBuilderFluentParser

* add test for macro that accepts value

* More space in forms
Retain rules when converted to static
no duplicate names allowed

* Better error feedback
Update related devices on save

* Add button icon

* format

* update docs

* fix tests
2019-06-16 08:27:22 -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
Vitali Kari
19914adc55 add raisecom os version, hardware and serial data (#10336) 2019-06-15 07:49:03 -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
TheGreatDoc
8c69d7dac8 Support for Fibernet XMUX4+ (#10331)
* Support for Fibernet XMUX4+

* Update fibernet.svg

remove length and width, add viewbox
2019-06-11 22:16:10 -05:00
djamp42
e6ad2b5bb8 Cisco UCOS Version and Feature Fix (#10307)
* Fix Software Version #

I don't think setting $firmware does anything, not to mention the regex wasn't matching correctly. I tested this fix tons of different software versions and they all seem to work.

* Revert "OS CIMC Software Version Number"

* version and features

* fixed feature

* Fix Extra Blank line EOF
2019-06-06 23:37:26 -05:00
Daniele Viganò
c7228e3b55 Extend the Dell drac module to report CMC status and sensors (#10310)
* Extend the Dell drac module to report CMC status and sensors

* CMC status sensors do not have chassis id

* Update test data for drac OS

* Add missing test data for drac os
2019-06-06 23:21:52 -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
Tony Murray
3129dd3148
Restore cimc data (#10308) 2019-06-04 20:41:44 -05:00
djamp42
e514cbc3e1 CIMC Version Fix (#10284)
* Fix Software Version #

I don't think setting $firmware does anything, not to mention the regex wasn't matching correctly. I tested this fix tons of different software versions and they all seem to work.

* Revert "OS CIMC Software Version Number"

* cimc-version-fix

* added test data

* Update cimc.snmprec
2019-06-03 22:32:41 -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
Arnoud Vermeer
f14b90a1ef Icotera support for 6400 and 6800 series. (#9755)
* Icotera support for 6400 and 6800 series

* Fix broken test data
2019-05-29 09:37:10 -05:00
jozefrebjak
824bcb7f16 Added detection and sensors for Huawei SMU device (#10267)
* added new os huawei-smu
* Create huawei-smu.inc.php
* added snmprec test
* added json test
* Update huawei-smu.json
* Update huawei-smu.json
* updated os definition
* added sensors of SMU
* Update huawei-smu.inc.php
* Create HUAWEI-SITE-MONITOR-MIB
* Update huawei-smu.snmprec
* Update huawei-smu.yaml
* Update huawei-smu.json
* Update huawei-smu.snmprec
2019-05-28 14:57:11 +02: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
Spencer Butler
5c39c41891 Updated OS (ftd) for Cisco FirePOWER devices (#10046)
* Adding support for Cisco FirePOWER devices

* update OS (ftd)

* Update ftd.yaml
2019-05-24 08:02:51 -05:00
kmpanilla
dbd0066269 Update to planetos.inc.php for ISG-* models (#10152)
* Update to planetos.inc.php for ISG-* models

Gets the proper hardware model# and version of the planet IGS-* series.

* Added test files

* Update planetos.inc.php

* Update planetos.inc.php

* Update planetos.json

* Update planetos.json

* Delete planetos.json

* Update planetos_igs-10020mt.json
2019-05-24 08:01:58 -05:00
Timothy Willey
a000b4a6de ArubaOS - fix client count polling, add ap count polling. (#10231)
* fix client count polling, add ap count polling.

* Set low warning/critical thresholds for AP count sensors

* Add Aruba AP Count Warning and Critical Alerts to collection, lint alert_rules.json

* add newline at end of alert_rules.json

* add/update tests/data/arubaos*.json test data
2019-05-23 10:17:09 -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
Tony Murray
4387ab052e
Fix docs tests (#10240) 2019-05-20 19:23:44 -05:00
Tony Murray
604a200891
Python dispatcher service v2 (#10050)
* Refactor LibreNMS service
add ping

* services ported
remote legacy stats collection

* alerting

* implement unique queues

* update discovery queue manager

* remove message

* more cleanup

* Don't shuffle queue

* clean up imports

* don't try to discover ping only devices

* Fix for discovery not running timer

* Update docs a bit and and add some additional config options.
Intentionally undocumented.

* Wait until the device is marked up by the poller before discovering

* Handle loosing connection to db gracefully

* Attempt to release master after 5 db failures

* Sleep to give other nodes a chance to acquire

* Update docs and rename the doc to Dispatcher Service to more accurately reflect its function.

* add local notification
2019-05-20 11:35:47 -05:00
corsoblaster
3e2c999706 Collect Appliance serial number from Sophos device (#10210)
* Collect Appliance serial number from Sophos device

Add serial number read. Added on polling session instead of discovery because the S/N changes in case HA functionality is enabled, and there is a switch between active and standby.

* Update cyberoam-utm.inc.php
2019-05-20 08:11:20 +02:00
kmpanilla
8fc9593c4f Fix Siklu Version/Serial (#10235)
* Fix Siklu Version/Serial

Siklu allows for two software images. We must first determine which SW bank is "running" in order to report the correct version.
Also adding correct Serial Number detection for Siklu devices.

* Update siklu.inc.php

* Update siklu.snmprec

* Create siklu.json
2019-05-18 23:19:04 -05:00
PipoCanaja
393b0e688f Added Wireless discovery to Huawei Vrp (#9516)
* HUAWEI Wireless MIB files

* Adding support for Wireless Controller capabilities of Huawei VRP Switches

* CodeClimate Fixes

* Add clientPerRadio polling for VRP

* Cache snmpwalk_group and  snmpwalk_cache_oid separately

* Travis

* Travis

* Cleaning sensors not available

* isset corrected

* tests

* clean

* default value for depth

* Update Vrp.php

* Update Vrp.php

* Update vrp.inc.php

* Update vrp_ac6605-26.json
2019-05-18 23:00:53 -05:00
Vitali Kari
953f26d4d5 Add support for ZyNOS MGS switches (#10234)
* Update zynos.yaml

add support for MGS Switches

* Create zynos_mgs3712.json

* Create zynos_mgs3712.snmprec

* Create ZYXEL-MGS3712-MIB
2019-05-18 22:52:33 -05:00
jozefrebjak
9d56593a2c Initial detection for huawei gpon MDU (#9733)
* added initial detection for huawei gpon MDU

* Add files via upload

* Add files via upload

* Fixed tests
2019-05-14 22:13:53 -05:00
Heath Barnhart
b7053ad064 SNMP Trap Handlers for Ruckus Wireless (#10175)
* pushing handlers and AP event tests

* adding tests for SZ events

* Fixed state handler, added state handler tests

* Style checks and cleanup

* fixed a style issue in RuckusSzClusterInMaintenance.php

* removed SNMP Cold Start trap

* fixed snmptraps.php to remove unhandled traps
2019-05-13 17:53:56 -05:00
Timothy Willey
0d656590ec NEW OS Aruba Instant (#9954)
* New OS: Aruba Instant

* New OS: Aruba Instant

* recreate test data

* remove aruba_instant test data

* remove empty file includes/definitions/discovery/aruba-instant.yaml

* fix state sensor discovery

* remove minor changes to includes/polling/functions.inc.phpwq

* move mac helper functions to Rewrite class

* simplify snmpwalk_group usage, general code cleanup

* fixes

* fixes

* fixes

* fixes

* fixes

* fixes

* recreate test data for 105 variant

* Add Client sensors for 8.4.0.0+

* begin stream-lining discovery and polling. separating discovery functions

* update test data

* update test data

* update test data

* improve mempool discovery/polling, clean up os polling, improve state discovery, improve os definition, misc fixes to wireless sensors module

* attempt to implement custom AP and client discovery and polling

* code fixes

* re-add ap count top graph

* more fixes

* more fixes

* more fixes

* more fixes

* remove some debugging, update test data

* code cleanup

* code cleanup

* address some scrutinizer warnings
2019-05-13 10:06:12 -05:00
Heath Barnhart
2187967854 Modified BGP4 handler to write to db (#10180) 2019-05-12 23:44:14 -05:00
Marvin Kuurstra
966ce85c19 Fortigate sessions sensors (#10183)
* Adding sensor for sessions

* Adding test data

* Fix index mistake and update test data (#12)

* Update test data for existing fortigate
2019-05-09 23:58:03 -05:00
CirnoT
f63c7e3508 Update bridge STP trap handlers to log events under stp type (#10192) 2019-05-09 21:45:21 -05:00
CirnoT
f036b1df3d Added support for PoE state sensor on Mikrotik devices (#10201) 2019-05-09 23:14:42 +02:00
CirnoT
eb8600e1fd Added additional generic SNMP trap handlers (#10177)
* Add more generic SNMP trap handlers

* Sort snmptraps config alphabetically
2019-05-02 21:50:18 +01:00
Tony Murray
3e7970b814 Fixed Avtech discovery (#10163)
* Fix Avtech discovery
pre-cache stored the data incorrectly

* Fix RA-4E external sensors
sen1 had incorrect oids (duplicate of sen2)
Description oid from data doesn't match the mib, perhaps outdated MIB?

* add test data

* Updated 4E MIB
2019-05-02 21:37:00 +01:00
CirnoT
308145d2da Fixed Raspberry Pi sensors discovery (#10176)
* Fixed Raspberry Pi frequency, voltage and state sensors discovery
* Added tests
2019-05-02 08:10:20 +02:00
h-barnhart
554e22d927 Juniper SNMP Trap Handlers (#10136)
* initial commit of junos handlers

* added DOM alarm test, refactored handlers for DOM alarms

* fixed some formating issues with last commit

* Created DOM alarm handlers and unit tests

* Made tests for LSP Down handler

* Added trap tests for JnxVpnSes*, JnxVpnIf*, JnxVpnPw*

* Added BGP4 trap handlers and tests

* Fixed some variable names for codeclimate

* Simplified JnxBGPM2* handlers

* updated unit tests
2019-05-01 11:12:51 -05:00
CirnoT
9d5e780c59 Added support for APC PDU outlet state sensors (#10166)
* Add support for APC PDU outlet state sensors

* Update tests
2019-05-01 09:09:36 +01:00
Tony Murray
f2b6aaeb11
Fix transition os (#10169) 2019-04-30 09:18:18 -05:00
CirnoT
9950ae3f47 Add failed user login trap for Netgear switches (#10161)
* Add failed user login trap for Netgear managed switches

* Add failed user login trap for Netgear smart switches

* Add tests

* Remove unused $ipv4 from tests
2019-04-30 07:52:27 -05:00
JoshWeepie
4e62838cce Add support for Transition NIDs (#9729)
* Add support for Transition NIDs

* Upload Transition logo

* Create transition

* Add files via upload

* Add files via upload

* Delete transition

* Delete MEF-UNI-MIB.smi

* Delete PTP-MIB.smi

* Delete BRIDGE-MIB.smi

* Delete ENTITY-STATE-TC-MIB.smi

removed standard mibs

* remove extensions from mibs

* Create TN-AC-MIB

* Removed extensions from Transition MIBs

* Delete TN-AC-MIB

* Create transition.snmprec

Added test data

* Renamed some mibs + updated tests

* Update transition.json
2019-04-29 22:14:46 -05:00