Commit Graph

388 Commits

Author SHA1 Message Date
Tony Murray
63c85429ae Added support for grouping sensors (#9606)
Improves visual identification for sensors

 - [x] Docs

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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2019-01-11 22:42:56 +00:00
Tony Murray
d277dee14d Fix some issues with sensor limits (#9638)
* Fix Zynos temp warn limit
And others, but this seems to be the only one that uses
remove some odd limit restriction in the poller

* More consistent rounding for sensor limits

* round all numeric limits to 10 digits

* update test data

* Remove complex calculation as negative limit values are already swapped as needed.
2019-01-10 19:48:37 -06:00
Tony Murray
3dce7aa90c AirFiber additional modulation rates, fix gpsSync (#9563)
* Add QAM1024 modulation for AirFiber
Move sensors to yaml

* Fix 0 index

* add additional data
make compatible with old sensors

* Fix whitespace
2018-12-28 20:11:24 -06:00
PipoCanaja
0b3f1daed9 Dynamic_discovery_get_value in can_skip_sensor to use all oids in skip_values (#9495)
* Use of dynamic_discovery_get_value in can_skip_sensor in order to use all available oids in skip_values

* Use LibreNMS\Device\YamlDiscovery code instead of keeping duplicated function can_skip_sensor

* Fix Travis errors
2018-12-05 12:40:29 -06:00
Tony Murray
1d48cf7db2 Discovery YAML. Do not implicitly append $index (#9315)
Require it explicitly. Makes it easier to understand and matches the style of other values

Questionable YAML changes (either broken before or now broken):
secureplatform: haStatCode
ptp600: receiveModulationMode

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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-11-10 23:45:24 +00:00
PipoCanaja
c37786d845 fix: #9301: Eaton/APC Galaxy seems to be the exception with divisor 10 for voltage (#9356)
* Adjustment in #9301: Eaton Galaxy HW seems to be the exception here with divisor 10 for voltage

* fix for APC Galaxy UPS (and not Eaton anymore)

* remove Galaxy test data from eaton-mgeups files

* tests: APC Galaxy 7000 test data
2018-10-26 21:05:30 +01:00
PipoCanaja
2125c8640b Updated MGE UPS sensors and added traps (#9301)
* MGE: Improve support for Galaxy devices

* MGE: Improve support for Galaxy devices

* MGE: Improve support for Galaxy devices

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* eaton-mge: test data on a Galaxy 7000

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* eaton-mgeups: test data on a Galaxy 7000

* Add upsmgUtilityFailure and upsmgUtilityRestored trap support for eaton-mgeups

* dev: eaton-mgeups: OID in the dynamic definition for discovery

* dev: eaton-mgeups: cleaning

* add contributor

* add contributor
2018-10-17 17:03:51 +01:00
PipoCanaja
5dae25b48b Feature: Collect VRP Entity details in the Huawei MIB (#8888)
* Feature: Collect VRP Entity details in the Huawei MIB

* Feature: Collect VRP Entity details in the Huawei MIB - Add Test Data

* Renaming of the test file vrp_5720_vrf.snmprec

* Added json test files

* Update vrp_5720_vrf.snmprec

* Update vrp_5720_vrf.snmprec

* Update vrp_5720_vrf.json

* Updated processor and mempool discovery to limit descr field

* Updated test

* Updated tests again

* Updated json test data

* Update vrp_ce12804-entity.json

* Update vrp_ce12804-entity.json

* Update vrp_5720_vrf.json
2018-09-10 23:07:45 -05:00
TheGreatDoc
d7c84785e5 Fixed varchar comparision when using numeric and text sensor_index (#9114) 2018-09-01 10:55:20 -05:00
Tony Murray
c0b667ebc0 Isolate poller and discovery modules (#9074)
An exception in one module should not interrupt the process for other modules.

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-08-25 21:00:03 +01:00
Tony Murray
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
Tony Murray
846cf11331 Support specifying submodules in poller and discovery for debug (#8896)
Mostly useful for debugging

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-12 21:30:39 +01:00
Tony Murray
0ba76e6d62 New python service for poller, discovery + more (#8455)
Currently has a file handle leak (and will eventually run out of handles) related to the self update process.

Either need to fix that or rip out self-update and leave that up to cron or something.


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-30 12:19:49 +01:00
Tony Murray
fea3c77916 fix: Workaround bad lldp that supplies ifAlias instead of ifDescr for lldpRemPortDesc (#8666) 2018-05-07 21:17:45 +01:00
Tom Sealey
ecfdb681a9 bug: Fixed high/low calculations (#8603)
* changed limit values in routeros.yaml to allow for the divisor value of 10

* changed the code so divisor/multiplier is only used for oids

* updated json test file
2018-04-23 21:30:13 +01:00
Neil Lathwood
1c94cddd70 fix: Apply divisor / multiplier to high/low limits in sensors (#8427)
* fix: Apply divisor / multiplier to high/low limits in sensors

* Updated test data for airos

* updated sensors test data

* Updated test data

* Updated test files

* updated dell-rpdu tests

* Updated to do division / multiply after check for value
2018-04-13 21:43:40 -05:00
James Andrewartha
f154846de1 More fixed checks for $entPhysicalIndex/$hrDeviceIndex being numeric like 929d7ece56 (#8295) 2018-02-25 22:27:28 -06:00
Tony Murray
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
Tony Murray
b2762d9fa7 refactor: Prevent function collisions with Laravel (#8166)
Make function call compatible
drop insensitive starts_with and ends_with for now as they aren't needed.
2018-01-29 21:58:21 +00:00
Tony Murray
88b4e31912 refactor: Refactored bgp-peers (#7972)
* bgp-peers update
Use IP parsing library more effectively.
Fix update issue
Include comware bgp-peers test data
deeper refactoring
Allow JunOS fallback to BGP4-MIB, some models only use that.
Add junos bgp4 data
Actually update all bpg data in the poller

* fix arista data. refactor some to prevent missing data from mucking things up

* refactor to use $oid_map for BGP4-MIB too

* A few comments to break up teh file a bit

* Junos bgp data an a quick revert for now.

* small cleanup

* fix ios bgp polling, add test data

* check the correct variable
2018-01-18 20:54:38 +00:00
FTBZ
c80f9726c8 feature: Added new EER and Water Flow Rate sensors (#8104)
* Add new EER sensor

* remove bad RRD option

* add waterflow sensor

* add test data result

* added test json data
2018-01-18 20:50:19 +00:00
Neil Lathwood
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
Sneddo
4fc946bd21 Move ignore_storage call to discover_storage (#7973)
* Move ignore_storage call to discover_storage

* Remove long if statement
2018-01-04 22:24:06 -06:00
Martin Zatloukal
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
bergroth
84fdfdf542 Junos dwdm interface sensor support (#7714)
* Junos dwdm interface sensor support  …
  four new sensors
    Chromatic Dispersion ps/nm
    Delay s (seconds)
    Q_factor (dB)
    preFEC_BER (ratio)

  reuse of
    SNR, dbm, temperature, current

* new dwdm sensors more generic, ber and quality_factor

* new sensors updated

* renamed html graphs new sensors

*  fixed ber polling

* Change to base SI Hz and s.

* update sensor divisors to bigint

* rename sql-schema/216.sql to 218.sql

* YAML junos dwmd sensor definitions, except BER

* bigint divisor fixed

* deafult 1 divisior

* small fixes including schema change for another PR

* schema fix
2017-12-12 20:27:10 -06:00
Neil Lathwood
5357dd9515 feature: Added support for entity values in sensors (#7805)
* Added info on using OIDs in skip_values for sensors

* added more docs + entity support

* remove whitespace
2017-12-02 22:56:57 +00:00
Tony Murray
f1fa61758b feature: Print out operations stats per poller/discovery module (#7839)
* Print out operations stats per poller/discovery module

* Add line return so we can see polled time better.
2017-12-02 22:55:53 +00:00
Chris A. Evans
3720f0e776 feature: Implement dynamic temperature scale detection and value conversion for siteboss (#7734)
* added comments describing changes needed to be implemented

* Added patch by laf to update the underlying function, modified OID value in yaml to poll string instead of integer

* Second patch to discovery function peer laf/murrant
2017-11-28 20:30:24 -06:00
Martin Zatloukal
6b4241381f fix: Fixed UPS time remaining in Mikrotik RouterOs (#7803)
* Fix UPS time remaining in Mikrotik RouterOs

* Fix UPS time remaining in Mikrotik RouterOs

* Remove space
2017-11-27 17:13:09 +00:00
Tony Murray
0dee809607 fix: Discovery os changes weren't properly reflected if os changed (#7779) 2017-11-22 21:48:28 +00:00
Tony Murray
6371e47fea fix: Fixed precache data (#7782)
Missed one pre-cache data layout
fixes: #7777
2017-11-22 21:42:19 +00:00
Neil Lathwood
ccbe3ea2e3 fix: Use correct entity columns for sensors (#7775)
* fix: Use correct entity columns for sensors

* updated schema

* Update custom rules too
2017-11-21 22:41:22 -06:00
Tom Hayward
b42c7de486 refactor: Better default temperature sensor limits (#7754)
* fix: use typical Mikrotik operating range for default temperature sensor limits.

* fix: Use static offsets for default temperature limits. Previous scaling did not work well for small or negative values.
2017-11-17 14:07:50 +00:00
Chris A. Evans
64aed60f09 newdevice: Add OS detection and temperature sensor support for Asentria SiteBoss (#7655)
* Initial commit. OS definition/polling, temp sensor discovery/polling, MIBs, logo, snmprec test

* replaced logo with 32x32, shortened sysObjectID in definitions, modifided sensor discovery

* fix syntax error caught by inspection

* requested chases to siteboss temp discovery file, removal of siteboss temp polling file

* converted temp sensor to yaml and added better support to skip values

* updated to use pre_cache with index
2017-11-14 08:35:32 -06:00
Tony Murray
3dba5cd39d newdevice: Support Avtech RoomAlert 32E/W and RoomAlert 11E (#7614)
* newdevice: support Avtech RoomAlert 32E/W
Move avtech discovery to yaml, took a bit of trickery

* More flexibility when checking pre-cached data
A little cleanup

* Add support for RoomAlert 32E/W external and wish temp sensors
Add RoomAlert 11E support (just temp sensors)
Updated ROOMALERT32E-MIB
2017-11-04 21:25:13 +00:00
Zmegolaz
e74b1c3e51 Fix: discovery.php -h all stops working after ping only device (#7593)
* Temporary array per device in discovery.

* Return at the beginning of discover_device() if snmp_disable.
2017-10-31 08:26:25 -05:00
Tony Murray
7e05fff615 fix: lldp find_port_id finds not the most correct port (#7564)
Order statements to give some results precedence over others.
Union the results but limit 1 so we can stop when we get the first result.
Checking if variables doesn't work very well without the device_id
2017-10-29 13:37:39 -05:00
Zmegolaz
f8d7ccfe0d feature: Support for up/down detection of ping only devices.
* Added support for ping only devices.

* Renamed sql-schema/206 to 207.

* Discovery tried to detect the OS when it shouldn't.

* Updated db_schema.yaml

* Added ping icon.

* Don't show unused graphs and tabs when SNMP is disabled.

* Allow the user to specify OS of ping only devices.

* Removing custom OS now changes it to 'ping'.

* Removed unnecessary use of mres().

* UI select box for SNMP enable/disable.

* Hide device_ping_perf if ping is disable on device.

* Fixed SNMP settings update status messages.

* Added functionality to add ping only devices via the web ui.

* Added ping only option to addhost.php

* Added ping only support to snmp-scan.py

* Moved sql 208 to 211

* Fixed scrutinizer issues.

* Fixed broken ossearch.

* Added ping only support to the API.

* Updated API doc.

* Added (optional) to OS and hardware description. Hid Port Settings, Applications, Modules, Storage, Processors, Memory and Components from the edit menu

* Style fix.

* Updated ping icon.

* clean() instead of mres(). More escaping. Better help in snmp-scan.py and addhost.php

* Fixed scrutinizer issue.

* Always try SNMP in snmp-scan.py, new option for it in addhost.php. Slice instead of chunk in ajax_ossuggest.php. Other minor style changes.

* Updated sql modifications to insert the new column in the same place as in db_schema.yaml.
2017-10-27 22:59:25 -05:00
Neil Lathwood
e751206f74 newdevice: Added more detection for IgniteNet FusionSwitch (#7384)
* newdevice: Added more detection for IgniteNet FusionSwitch

* fixed current graphs descr

* small updates

* small updates recommended by murrant
2017-10-25 08:10:02 -05:00
Tony Murray
f01cf38a3a fix: lldp discovery change local port resolution (#7443)
* fix: lldp discovery change local port resolution
dot1dBasePortIfIndex seems to skip some ports in certain configurations on Cisco devices.
Add quirk for Calix devices that return different port labels than they actually are.

* bdcom uses NMS-LLDP-MIB too.

* use dot1dBasePort to look up ifIndex if we can.
2017-10-24 08:21:32 +01:00
Tony Murray
2f2234da70 fix: cdp matching incorrect ports (#7491)
Need either remote device_id or mac_address to find a port, otherwise, we might match an incorrect port.
2017-10-15 19:49:28 +01:00
Tony Murray
f92449e637 fix: issues with recent discovery refactor (#7437)
fix find_port_id() deleting all variables when device_id was given
improve find_port_id() to find ports where only a number is given
fix orphan deletion count
fix insert and update of links with strings where int are required
2017-10-06 08:53:16 -05:00
Tony Murray
c0b267b49c refactor: Discovery protocols re-write (#7380)
* refactor: discovery protocols re-write
extract more code to make it easier to read
use snmpwalk_group
walk lldpRemTable instead of lldpRemoteSystemsData
Optimize discover_device to reduce dns lookups of bad dns names
Make discovery_by_ip behavior consistent between cdp and lldp
move can_skip_discovery to discovery functions

Tested lldp, cdp, and ospf.

* always discover links even if the remote device isn't in system
Fix discover_link always updating

* fix style

* fix update, not fetching id

* increase platform length.  Most devices use sysDescr here, which is max length 255

* remove orphaned links

* update db_schema.yaml
2017-10-04 08:16:23 +01:00
Neil Lathwood
592e8aca4c newdevice: Added sensor detection for APC In Row RD devices (#7385)
* newdevice: Added sensor detection for APC In Row RD devices

* Update apc.yaml

* Update apc.yaml

* Update cooling.inc.php

* Update pressure.inc.php
2017-09-29 21:13:27 +01:00
Tony Murray
b4d804f2ac fix: rfc1628 runtime - allow os quirks (#7340)
* fix: rfc1628 runtime - allow os quirks
Also, properly divide values at discovery
Remove accidental debug output
2017-09-14 21:55:07 +01:00
Tony Murray
f158a56774 fix incorrect getOsSetting arguments (#7339)
Missed calls when the function definition changed.
2017-09-14 00:43:14 -05:00
Neil Lathwood
b3567041dd newdevice: Added support for SmartOptics M-Series (#7314)
* newdevice: Added support for SmartOptics M-Series

* added os polling file
2017-09-13 21:12:56 -05:00
Tony Murray
98786c0ea7 feature: Allow ignore_mount, ignore_mount_string, ignore_mount_regex per OS (#7304)
* feature: Allow ignore_mount, ignore_mount_string, ignore_mount_regex at OS level

* Change the storage settings to override global instead of merge.
Add documentation
2017-09-13 19:43:21 +01:00
Tony Murray
b18c41b1a9 refactor: Use the Config class includes/discovery (#7299)
* refactor: use the Config class includes/discovery

* fix issue with $config variable not accessible in include-dir.inc.php

* improved whitespace

* Tidy up discovery_by_ip
2017-09-11 21:26:41 +01:00
Tony Murray
7b262a6851 refactor: Improve yaml state discovery (#7221)
* feature: Improve yaml state discovery
Handle state values that are returned as strings instead of int
Synchronize state values for existing state translations so we can change them without creating a new translation and losing historical data
More extensive/verbose yaml discovery phpunit tests
dbBulkInsert, use the first entry instead of requiring the first entry to be at index 0

* Update sensor state documentation
re-order values for better readability
remove os check
Use snmpwalk_group since it is more flexible

* Add some more debug output in dynamic discovery
2017-09-03 19:58:39 +01:00