9 Commits

Author SHA1 Message Date
e736f5efec Updated YAML schema validation (#8808)
Changed some values to be explicitly boolean


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-06-15 09:45:20 +01:00
11147d3bbf Major Processors rewrite (#8066)
* Extract DiscoveryItem and move some things to better places.
Extract model class
Fix up model construction.  I have problem with construction...
Makeshift model working.  Switch constructor to factory.  discover() and create()
Support legacy discovery.
Remove uneeded custom pollers
Remove netonix custom detection as we try ucd on all os now.
Add a few yaml procs.  Fix a couple things.
More processor discovery conversions
Move Calix e7 to standard hrProcessorLoad, but it doesn't fully implement the HR-MIB, move things around to make it work.
Add a few yaml procs.  Fix a couple things. Correct some stupid mib stuff.
Move more, drop php 5.3
Add netscaler which uses string indexes.  Port fiberhome to yaml and use skip_values
More conversions.  BroadcomProcessorUsage Trait
Serveriron and Ironware share some mibs.  Create a common abstract os for them.
Add yaml support for mib specification in each data entry
Make legacy discover_processor() set 0 for hrDeviceIndex

Untangle Dell switch OS processors

Use use shared OS for groups if they don't have a specific group.
fix silly mib mistake

Make index optional

Move HR and UCD to Traits and out of Processor.

* forgot to update the fortiswitch index

* Make sgos and avaya-ers match the old index.

* fix comware test data

* fix merge errors

* fix dsm and remove pointless empty modules

* file not found exception is in the wrong place.

* Updated processor development docs
2018-02-05 07:39:13 -06:00
42e5819130 refactor: Updated discovery/poller to use numeric sysObjectID (#7922)
* refactor: Updated discovery to use a core module for sysDescr/sysObjectID use

* final update hopefully

* revert changes

* more changes + docs

* migrated poller to use numerical sysObjectID

* more updates for sysObjectID

* update any alert rules which might have enterprises. in

* moved schema file

* small updates

* updated getHostOS()

* scrut fixes

* updated sysObjectId -> sysObjectID

* updated sysObjectId -> sysObjectID

* updated remainder of sysObjectId -> sysObjectID

* another sysObjectId -> sysObjectID

* fixed secureplatform test data

* Fix tests: $device is not pulled from the database before polling
Also, update the db in the core discovery module.
2018-01-06 23:00:47 -06:00
74c7611bca newdevice: Make TiMOS detection more generic, rebrand to Nokia (#6645)
Includes all product lines SR, SAS, ESS
2017-05-15 23:07:14 +01:00
4c0412b14d feature: Wireless Sensors Overhaul (#6471)
* feature: Wireless Sensors
Includes client counts for ios and unifi
Graphing could use some improvement.
Alerting and threshold ui not implemented

WIP: starting OO based wireless sensors.

Class based functionality working
remove old functional files
add schema file

discovery needs to be enabled, not polling

fix up schema

fix Unifi discovery not returning an array

Add some debug when discovering a sensor.
Fix style.

Add missing semicolin

Add a null object (Generic) for OS.
Fill out some phpdocs

Re-organized code
Each sensor type now has it's own discovery and polling interface
Custom polling tested with Unifi CCQ

Left to do:
Implement UI (Graphs and Custom thresholds)
Alerting
Testing

Fix event message text

Remove runDiscovery and runPolling from OS, they are unused and don't belong there.

Cleanups/docs

Missed this file.

Remove the requirement to fetch the current value to check validity.
Do that automatically if current is not specified
A few cleanups here and there

First pass at graphing.
device_ and wireless_ graphs added.

Add RouterOS support

Singleton OS instance isn't required right now.
Remove that to allow some memory to be freed.

Add wireless to the device list metrics.
Make all metrics clickable

Tweak graphs a bit

Implement limit configuration page.
Use sensors page as common code instead of duplicating.
Clean up some javascript interactions:  Allow enter on values to save. Cancel if update is not needed. Enable the clear custom button after setting a custom value.
Add some wireless alert rules to the library.

Add documentation.

Add unifi client counts by ssid in addition to radio.
Optimize Sensor polling a bit.

Add HP MSM clients support (for full controller)
Fix function accessibility

Formalize the discovery and poller interfaces.

Add Xirrus clients and noise floor
move module interfaces to a more appropriate place.
push caching code up to os, unsure about this do to the limitations

No point in selectively enabling wireless discovery.  We only discover if the device supports something.

Add RSSI, Power, and Rate.
Add these sensors for Ubnt Airos.
Clean up some copyrights.

Reduce the amount of files need to add new types.
Leave graph files for consistency and to allow customization.

Remove the old wifi clients graph completely.
ciscowlc should have improved counts (total and per-ssid)

Schema didn't get added.

Impelement the rest of the AirOS sensors
Reformat and re-organize the Airos.php class.

Add several UBNT AirFiber sensors

A few fixes add links to the section headers

Add HP MSM mibs.

* Schema file got dropped in rebase.

* Add wireless menu to view sensors across all devices.
Icons in the menu need help :/

* Add HeliOS, Mimosa, and Siklu support
Sensors added SNR + Noise

* Add power and utilization to Unifi

* Update polling to prefetch all sensor data in a few snmp requests as possible

* Add Extendair: tx+rx power, aggregate rate, frequency

* Add a check for duplicate sensors in discovery.  Just print an error for now.

* Add Bit Error Ratio (named error-ratio to allow for bit error rate to be added if needed)
Fix an incorrect link in the wireless sensors table

* Add error rate and change all bps and Hz to use si units

* Fixes to limits and frequency display

* Fix overview graph frequency display
A few decimal place tweaks

* Don't allow switching sensor and wireless-sensor graphs, it doesn't work.
Change individual distance graphs to use si units

* Go through the OS and make sure I got all the sensors I can (probably missed some still)
Because pollWirelessChannelAsFrequency() is generic and a little complex, so pull it up to OS.
Message to help developers adding supports that don't return an array from discover functions.

* Fix some issues

* Remove noise and signal for now at least
A couple more fixes
Add a notification

* Oopsie

* Bonus AirFiber sensors
2017-05-01 23:49:11 -05:00
f85f8c1e13 newdevice: Add support for Nokia (Alcatel-Lucent) SAS-Sx 7210. Add TiMos version and hardware. (#6344)
* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* Add support for Nokia SAS-Sx 7210

* Revert "I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md."

This reverts commit 2b89f9edb53dc493201102e9dd00db3a911ffc01.

* Edited hardware regex to cover more sample data
2017-04-04 14:35:39 -05:00
008af4cea0 newdevice: Improve support for TiMOS (Alcatel-Lucent) switches #5533
* Improve TiMOS to include 7210 models

* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* correct case of NOS name, don't bother polling for wifi or toner on an ethernet switch

* Remove sysDescr_regex per comment on #5533

* Present correct interface description, based on following:

$ snmpwalk -v2c -c XXX 172.16.100.173 IF-MIB::ifDescr | head -12
IF-MIB::ifDescr.1 = STRING: system, Loopback IP interface
IF-MIB::ifDescr.2 = STRING: info, IP interface
IF-MIB::ifDescr.3 = STRING: port, IP interface
IF-MIB::ifDescr.4 = STRING: to-Richard-1/1/26, IP interface
IF-MIB::ifDescr.35684352 = STRING: 1/1/1, 10/100/Gig Ethernet SFP, \"to CC 1\"
IF-MIB::ifDescr.35717120 = STRING: 1/1/2, 10/100/Gig Ethernet SFP
IF-MIB::ifDescr.35749888 = STRING: 1/1/3, 10/100/Gig Ethernet SFP
IF-MIB::ifDescr.35782656 = STRING: 1/1/4, 10/100/Gig Ethernet SFP
IF-MIB::ifDescr.35815424 = STRING: 1/1/5, 10/100/Gig Ethernet SFP
IF-MIB::ifDescr.35848192 = STRING: 1/1/6, 10/100/Gig Ethernet SFP, \"to 105.403.P24 | to roof PTP to City\"
IF-MIB::ifDescr.35880960 = STRING: 1/1/7, 10/100/Gig Ethernet SFP, \"CLEINT 135790-XYZ | DIA | to 105.403.P04\"
IF-MIB::ifDescr.35913728 = STRING: 1/1/8, 10/100/Gig Ethernet SFP, \"CLEINT 135790-ABCFOO | DIA | to 105.403.P03\"

$ snmpwalk -v2c -c XXX 172.16.100.173 IF-MIB::ifAlias | head -12
IF-MIB::ifAlias.1 = STRING: Loopback IP interface
IF-MIB::ifAlias.2 = STRING: IP interface
IF-MIB::ifAlias.3 = STRING: IP interface
IF-MIB::ifAlias.4 = STRING: IP interface
IF-MIB::ifAlias.35684352 = STRING: to CC 1
IF-MIB::ifAlias.35717120 = STRING: 10/100/Gig Ethernet SFP
IF-MIB::ifAlias.35749888 = STRING: 10/100/Gig Ethernet SFP
IF-MIB::ifAlias.35782656 = STRING: 10/100/Gig Ethernet SFP
IF-MIB::ifAlias.35815424 = STRING: 10/100/Gig Ethernet SFP
IF-MIB::ifAlias.35848192 = STRING: to 105.403.P24 | to roof PTP to City
IF-MIB::ifAlias.35880960 = STRING: CLEINT 135790-XYZ | DIA | to 105.403.P04
IF-MIB::ifAlias.35913728 = STRING: CLEINT 135790-ABCFOO | DIA | to 105.403.P03

$ snmpwalk -v2c -c XXX 172.16.100.173 IF-MIB::ifName | head -12
IF-MIB::ifName.1 = STRING: system
IF-MIB::ifName.2 = STRING: info
IF-MIB::ifName.3 = STRING: port
IF-MIB::ifName.4 = STRING: to-Richard-1/1/26
IF-MIB::ifName.35684352 = STRING: 1/1/1
IF-MIB::ifName.35717120 = STRING: 1/1/2
IF-MIB::ifName.35749888 = STRING: 1/1/3
IF-MIB::ifName.35782656 = STRING: 1/1/4
IF-MIB::ifName.35815424 = STRING: 1/1/5
IF-MIB::ifName.35848192 = STRING: 1/1/6
IF-MIB::ifName.35880960 = STRING: 1/1/7
IF-MIB::ifName.35913728 = STRING: 1/1/8

* OS unit testing as requested

* fixed test unit
2017-02-03 10:01:29 +00:00
81024f0d4e refactor: Moved simple os discovery into yaml config (#5313) 2017-01-05 22:04:30 -06:00
f5a16be0e3 refactor: Move OS definitions into yaml files (#5189) 2016-12-23 17:53:19 +00:00