Commit Graph
33 Commits
Author SHA1 Message Date
e83583f6f4 Adva FSP150cc Health Sensors (#11168)
* initial commit adding sensors

* changed dbm logic for port exclusions

* update mib, added xg116 support, update disc logic

* sfp health appears on ports page

* added sfp temps

* updated mib file names

* updated mib file names

* removed .mib extension

* replace ADVA-MIB

* Add test data

Co-authored-by: Tony Murray <[email protected]>
2020-02-26 12:00:48 -06:00
Martijn SchmidtandGitHub a64bd45dbc Update IronWare sensors & bgp-peers discovery, allow skip_values to target a specific index appended to the OID (#10941)
* Migrate ironware sensor discovery from php to yaml.

* More sensors, add grouping.

* dynamic_discovery_get_value() becomes getValueFromData()

* Target a specific index with skip_values.

* Improve Brocade BGP session discovery/polling

This commit allows for the correct discovery of BGP sessions
with 32-bit ASNs, IPv6 neighbors using the BGP4V2-MIB which is
based on draft-ietf-idr-bgp4-mibv2-11 and also polls for IPv4
unicast received routes through the FOUNDRY-SN-BGP4-GROUP-MIB.

Copied most of the code from PR#8877 by @Mikeburke14, cleaned
up the code a little bit to match the normal LibreNMS style,
and fixed bgpPeers_cbgp discovery as well as polling for the
ipv4.unicast neighbors.

Note that older Brocade IronWare firmware versions are known
to have multiple defects relating to the BGP4V2-MIB which
might result in certain missing non-established neighbors.

Related vendor defect numbers:

- DEFECT000633962
-- Symptom: The OID bgp4V2PeerAdminStatus does not return the
            correct value
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00g

- DEFECT000583319
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
            does not display all the BGP entries
-- Reported: NI 05.6.00
-- Resolved: NI 05.8.00e

- DEFECT000550309
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
            does not display the full information
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00c

* Add ironware CER & ICX platform test data.

* Re-add ironware.json compatible with current master branch.
2020-02-01 23:28:03 +01:00
Vitali KariandTony Murray 4990c871d6 do not discover dbm sensors on shutdown ports (#10610) 2019-09-18 12:39:52 +00:00
Martijn SchmidtandTony Murray 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
KodApa85andTony Murray 7f104d4fd9 Advanced state sensors (#9881)
* refactor: advanced sensor states

mark create_state_index($state_name) as E_USER_DEPRECATED?

* fix: minor corrections

* fix: mib has partialSync(9) and incompatibleVersion(8)

* fix: corrected netagent2upsstate - Sleeping(5)

* fix: NetAgent2 upsThreePhaseUPSStatusInverterOperating correction

* refactor: array() be gone

* Refactoring includes/discovery/sensors/state/extendair.inc.php with arrays
And tidying up array formatting in other files

* fix: minor typo

* standardising array item names

removed redundant "if ($state_index_id !== null) {"

* workaround: procurve & serverscheck

a sensor is causing create_state_index($state) to return null.
The updated code doesn't allow for this and thus a hybrid is being used.

* standardised naming of state info. Caused a typo $state_name instead of $status_name
$state_name is the standard

* converted compas to square arrays

* Converted APC states using preg_match to new create_state_index() call

* Update boss.inc.php
2019-03-04 11:31:17 -06:00
Nick HilliardandTheGreatDoc 09caced7ef Add support for Infinera-Coriant Groove (#9843)
* Add support for Infinera Groove
2019-03-04 17:31:53 +01:00
Vitali KariandTony Murray d60a0da7de Add support for Nokia ISAM (#9793)
* add mibs,first commit

* adds support for Nokia ISAM Plattform

* remove some comments

* change os polling to multi oid

* Restore file headers

* Fix discovery by sysObjectID

* first deactivate checks against IHUB (timos), It not necessary so long we can not provide more thatn one snmp community per device

* move snmp state and temperature from pre-cache

* Update os_schema.json
2019-02-12 20:23:02 -06:00
Vitali KariandTony Murray 65e766156f Add Raisecom Sensors (#9738)
* update some mibs

* extend snmpwalk_cache_twopart_oid function

* add raisecom dbm and temperature sensors

* add test data

* add some more sensors

* Update raisecom.inc.php

* Update raisecom.inc.php
2019-01-30 21:34:15 -06:00
Tony MurrayandNeil Lathwood eeb3d58f5b Improved Logging and Debugging (#8870)
Use Log facility when Laravel is booted.
Update init.php so we can easily boot Laravel for CLI scripts. (and just Eloquent, but that may go away)
Move all debug setup into set_debug() function and use that across all scripts.
Log Laravel database queries.
Send debug output to librenms log file when enabling debug in the webui.
Allow for colorized Log CLI output. (currently will leave % tags in log file output)

** Needs testing and perhaps tweaking still.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-13 23:08:00 +01:00
angrypandNeil Lathwood 1d4f662e02 device: Added SFP sensor discovery for Procurve devices (#8746)
* Added SFP sensor discovery for Procurve devices

* Added SFP sensor discovery for Procurve devices

* Added json test data
2018-05-24 21:30:36 +01:00
Martin ZatloukalandNeil Lathwood e473b03697 Add Huawei VRP sensors to yaml and fix bug in functions.inc.php (#7918)
* Add Huawei sensors to yaml and fix bug in functions.inc.php

* Add Huawei sensors to yaml and fix bug in functions.inc.php
2017-12-16 22:26:43 +00:00
Chris A. EvansandNeil Lathwood 04bb65b762 newdevice: Added Brocade IronWare interface dBm sensor support (#7434)
* Added IronWare iface dBm sensor and related OID pr~e-cache

* fixed syntax violations

* added return_num() function and modified ironware dbm sensor to use it

* Update functions.php

* Update ironware.inc.php
2017-10-17 17:36:49 +01:00
Søren RosiakandTony Murray 701813f3ad fix: Comware dBm Limits && Comware Sensor Descr (#7216) 2017-08-24 15:08:42 -05:00
Søren RosiakandNeil Lathwood 31c641e97a fix: Use Correct Comware dBm Limits (#7207) 2017-08-22 20:42:41 +01:00
Søren RosiakandNeil Lathwood b19116abe6 newdevice: Added CiscoSB DOM Support (#7072) 2017-07-23 19:35:30 +01:00
Neil LathwoodandTony Murray c40825f233 fix: Use the correct high/high warn thresholds for junos dbm sensors (#7056) 2017-07-18 19:47:00 -05:00
CZandNeil Lathwood f784228e93 newdevice: Added support for Adva FSP150CC and FSP3000R7 Series (#6696)
* ADVA device support
- sensors for temperature, voltage, current and dbm
- ADVA mibs for FSP150CC and FSP3000R7

* sysObjectId - changed to level above instead of two entries

* OS for FSP150 and FSP3000R7 now in two seperate OS definitions
- split the files
- removed sysObjectId check for each
- removed hardcoded sensor limits
- removed more generic MIBs

* standardized variables / corrected declarations

* added missing MIB, style check code

* - corrected 'current' readings by adding $devisor
- changed rrdfile names to sensorname+$index
- moved LLDP-V2 mibs to main mib directory
2017-06-02 21:07:55 +01:00
Chris A. EvansandNeil Lathwood 8c8d591d67 newdevice: Add basic support for CradlePoint WiPipe Cellular Broadband Routers (#6695)
* Add basic support for CradlePoint Ceullular Broadband Rotuers

 	new file:   html/images/os/cradlepoint.png
 	new file:   includes/definitions/wipipe.yaml
 	new file:   includes/discovery/sensors/dbm/wipipe.inc.php
 	new file:   includes/discovery/sensors/pre-cache/wipipe.inc.php
 	new file:   includes/discovery/sensors/state/wipipe.inc.php
 	new file:   includes/polling/os/wipipe.inc.php

* Added snmprec test file

* Updated definitions file

* Updated copyright blocks and comments

* Added WIPIPE-MIB#

*  	renamed:    tests/snmpsim/wipipe.smmprec -> tests/snmpsim/wipipe.snmprec

*  	copied:     html/images/os/cradlepoint.png -> html/images/logos/cradlepoint.png
 	modified:   html/images/os/cradlepoint.png
 	modified:   includes/definitions/wipipe.yaml
 	modified:   includes/discovery/sensors/pre-cache/wipipe.inc.php
 	modified:   includes/polling/os/wipipe.inc.php

* Changes requested by laf

 	modified:   includes/discovery/sensors/dbm/wipipe.inc.php
 	modified:   includes/discovery/sensors/pre-cache/wipipe.inc.php
 	modified:   includes/polling/os/wipipe.inc.php

* Reworked devFWUpgradeStatus state sensor
 	modified:   includes/discovery/sensors/state/wipipe.inc.php

* Fixed hardware/OS version detection
 	modified:   includes/polling/os/wipipe.inc.php

* moved mib file to correct location
2017-05-31 21:45:31 +01:00
Neil LathwoodandTony Murray d48be5f507 newdevice: Added detection for Cisco EPC devices (#6690)
* newdevice: Added detection for Cisco EPC devices

* updated test file

* added dbm support

* added snr support
2017-05-23 10:28:44 -05:00
Chris A. EvansandNeil Lathwood e28eb690fe Fixed various issues with MRV OptiDriver sensor detection. (#6682)
modified:   discovery/sensors/dbm/mrv-od.inc.php
	modified:   discovery/sensors/pre-cache/mrv-od.inc.php
	modified:   discovery/sensors/state/mrv-od.inc.php
2017-05-19 09:03:26 +01:00
Chris A. EvansandNeil Lathwood 8565417dfe new device: Added basic support for MRV OptiDriver Optical Transport Platform (#6656)
* Committer: Chris A. Evans <[email protected]>

Add basic support for MRV OptiDriver Optical Transport Platform
 * OS Detection
 * Sensors
  * Chassis temperature
  * State
   * Tx/Rx Optical Interface Power
   * Power Supply
   * Fan

*  	renamed:    includes/definitions/mrv-optidriver.yaml -> includes/definitions/mrv-od.yaml
 	new file:   includes/discovery/sensors/dbm/mrv-od.inc.php
 	deleted:    includes/discovery/sensors/dbm/mrv-optidriver.inc.php
 	renamed:    includes/discovery/sensors/pre-cache/mrv-optidriver.inc.php -> includes/discovery/sensors/pre-cache/mrv-od.inc.php
 	renamed:    includes/discovery/sensors/state/mrv-optidriver.inc.php -> includes/discovery/sensors/state/mrv-od.inc.php
 	new file:   includes/discovery/sensors/temperature/mrv-od.inc.php
 	deleted:    includes/discovery/sensors/temperature/mrv-optidriver.inc.php
 	renamed:    includes/polling/os/mrv-optidriver.inc.php -> includes/polling/os/mrv-od.inc.php

*  	modified:   includes/discovery/sensors/dbm/mrv-od.inc.php

  Added missing ')' in the if conditionals.

*   Requested changes
 	modified:   includes/definitions/mrv-od.yaml
 	modified:   includes/discovery/sensors/state/mrv-od.inc.php
 	modified:   includes/discovery/sensors/temperature/mrv-od.inc.php
 	modified:   includes/polling/os/mrv-od.inc.php
 	removed extensions from all new mib files

* Add snmprec file to satisfy test units
	new file:   tests/snmpsim/mrv-od.snmprec
2017-05-18 22:04:40 +01:00
remydbandNeil Lathwood 0e6b42fc05 Fix duplicate dBm readings for single-lane optics (#6460) 2017-04-19 10:42:10 +01:00
remydbandNeil Lathwood 3884a3c2f7 newdevice: Added support for multi-lane optics on Juniper equipment (#6377)
* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* Poll device for optic lane info

* Add discovery for multiple lanes per optic

* Update formatting

* Update AUTHORS.md
2017-04-13 10:56:16 +01:00
Neil LathwoodandTony Murray d4e8c54516 refactor: Tidy up sensor discovery (#5550)
* refactor: Tidy up sensor discovery

* more files

* removed uneeded files

* updated array check

* updates for linux/supermicro

* small changes

* Update linux.inc.php

* Add supermicro temps back to linux.inc.php

* No need for is_file on rfc1628.inc.php, it exists

* Revert rfc1628 change

* Fix whitespace...

* rebased

* fixed $valid data not being passed to new sensors() function
2017-02-03 06:39:38 -06:00
Søren RosiakandNeil Lathwood 7bae2cf0a7 fix: Add extra check to Junos DOM discovery (#5582) 2017-01-25 20:41:56 +00:00
Neil LathwoodandGitHub 01e4ac3d58 newdevice: Added additional sensor support for Huawei VRP #4279 2017-01-19 16:42:57 +00:00
Neil LathwoodandSøren Rosiak 6c324cd03e refactor: Improve sensors polling for performance increase (#4725)
refactor: Improve sensors polling for performance increase
2016-10-11 19:34:09 +03:00
Alan Gregory c3aa0c3feb Added Datacom Dbm sensor 2016-09-20 18:04:42 -03:00
Tony MurrayandNeil Lathwood 9284bc60ff Update code in includes to be PSR-2 compliant (#4220)
refactor: Update code in /includes to be psr2 compliant #4220
2016-08-28 18:32:58 +01:00
Rosiak a02312eccf Initial commit 2016-07-27 18:48:39 +02:00
vitalisator 65dcdc5ac9 add pbn SFP Sensors 2016-07-10 20:05:33 +02:00
laf e67bbd4963 added copyright 2016-06-29 00:29:11 +01:00
laf e20281aefd Added support for Juniper optic sensors 2016-06-29 00:14:21 +01:00