Commit Graph

65 Commits

Author SHA1 Message Date
Angel
93baa514c1 Zhone health (#15276)
* Added Zhone health and reduced ports to only physical ports.

* Liniting

* Move MIBs out of folder, doesn't work

* Add testing data.

* Added test data, sorry for delay

* Added test data again

* Move MIBs to folder

* Unsupported dirrective
2023-12-17 18:52:28 +01:00
Noah Roufus
d472c5cbff Added support for Cambium cnMatrix switches (#15351)
* Added support for Cambium cnMatrix switches

* Fixed styling issues

* Fixed styling issues

* Fixed duplicate, incorrectly labeled LLDP-EXT-DOT3-MIB and LLDP-EXT-DOT1-MIB

* Corrected MIB with the same name but with different OIDs configured: LLDP-EXT-MED/-CAMBIUM/-MIB

* Removed my added duplicate MIBs

* Removed unused MIBs
2023-10-04 01:50:41 -05:00
mtentilucci
e55c4e9e1e Add support for Trellix NSP devices (#14964)
* Add support for Trellix NSP devices

- Add discovery for mlos NSP devices
- Monitor port statistics from non standard MIBs
- Add Trellix MIBs
- Add test data

* Fix StyleCI findings

* Rename MIB files to match MIB names, remove unused MIBs

* regenerate mlos-nsp_ns9500.json to account for changes from PR#14963
2023-05-16 17:25:29 -05:00
AdamB
519fc00367 Change ESXi port naming to be stable (#14639)
* Change ESXi port naming to be stable

Currently every time discovery runs against ESXi, the port names change generating a lot of log spam.

This is because ESXi uses this as the ifDescr:
```Device vmnic1000202 at 01:00.0 nmlx4_en```

The poller parses this, and extracts the interface name, whereas discovery does not, causing the interface names to flip every 6 hours.
https://github.com/librenms/librenms/blob/22.10.0/includes/polling/ports.inc.php#L578-L580

This change gives the discovery process the same behaviour, so the naming is now stable.

* Try to fix test data with a squash

* vcsa test data

* Synthesise VCSA ifName, use it in place of ifDescr

* Refresh test data

* Update ports.inc.php

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-04-16 12:58:38 -05:00
Sander Blomvågnes
cf3f69e67f Adding support for loop-telecom devices (#14674) 2023-01-02 14:47:17 +01:00
rhinoau
03482ddd65 Added Moxa switching ifAlias/portName mapping (#14633)
* WIP: Added Moxa switching ifAlias/portName mapping

* style fixes
2022-12-16 09:59:41 -06:00
Jellyfrog
b6620746c5 Miscellaneous cleanup - part 5 (#14502)
* Miscellaneous cleanup - part 5

* Update includes/discovery/sensors/pre-cache/ipoman.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>

* Update ipoman.inc.php

* string for trim()

* Update ciscosb.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-10-25 19:27:28 +02:00
Jellyfrog
7207614437 Trim whitespaces from device data (#14429)
* Trim whitespace from sensor and ports data

* Update arista_eos_vrf.json

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update Os.php

* wip

* wip

* wip

* Update querybuilder.json
2022-10-11 12:50:38 -05:00
Martin22
19540900a3 Added support for Ubiquiti UFiber OLT (#14256)
* Added support for Ubiquiti UFiber OLT

* Fixed php files with port detection

* Added missing MIB file

* Fixed test data

* Fixed php script to detect ports compatible with php 8.1

* Fix styleci

* Enforcement of new control styleci

* Apply fixes from StyleCI

* Port detection override

* Changed all "Entry" to "Table".

Co-authored-by: StyleCI Bot <bot@styleci.io>
2022-10-07 22:42:03 +02:00
James
b3019f7944 Enhancements for Zyxel OS (#13897)
* Add DBm and State Sensors

Added extra MIB files
Added Dbm levels on ports
Added Stacking State Sensors

* Added include for zynos.inc.php

File patch - includes/discovery/ports/zynos.inc.php

* Create ZYXEL-STACKING-MIB

Official Zyxel MIB

* Create ZYXEL-TRANSCEIVER-MIB

Official Zyxel MIB

* Added test file zynos_xgs4600.json

* Create zynos snmprec test file

* CENSORED zynos_xgs4600.json

* Created new polling file for Zynos ports

Converts zynos SWP port style to be 1/1 style

* Created new discovery for Zynos ports

Changes zynos SWP ports to be 1/1 style during discovery

* Fixing ci complaints in discovery/ports/zynos.inc.php

* Fixing ci complaints in polling/ports/os/zynos.inc.php

* fixing more ci complaints in discovery

* Updated Zynos.snmprec

* Updated zynos.json

* Updated zynos.json

* Removed ifDescr pre-cache

* Removed pre-cache from zynos.yaml

* Reverted zynos.snmprec

* Restored zynos.json

* Updated zynos polling to use zeropad

* Updated zynos discovery to use zeropad

* Updated zynos.yaml

Updated zynos.yaml to include ifname: true to change port names and added '/^ZyXEL/' to sysDescr_regex

* Update zynos.inc.php

* Update zynos.inc.php

* Update zynos_xgs4600.json

* Update zynos_xgs4600.snmprec

* Re-Generated Zynos.json

* Fixed ifOperStatus in Zynos.json

* Delete zynos.inc.php

* Update ports.inc.php

* Added new test data

* Updated zyxel test data and discovery

* Update ports.inc.php

* Update zynos.snmprec

* Updated zynos.json

* Update Zynos.json

* Fix StyleCI issues

* Update zynos.json

* Update zynos.json

* Update zynos.json

* Updated zynos mgs3712.json

* Update zynos_mgs3712.json

* Added back old SFP discovery

-SFP Temperature
-SFP Voltage
2022-04-07 20:49:03 -05:00
Tony Murray
1bfd411995 New device:add code (#13842)
* New device:add code
pre-requisite for updating other code paths
includes option to set display name
separate validation code from device creation

* remove duplicate community and v3 creds

* style fixes

* some lint fixes

* fix phpstan

* Exception cleanup
improved messages and translations

* port association mode to enum
well, pseudo enum

* defaults and cleanups

* fixed/improved validation messages

* fix tests

* fix stupid ide refactor mistake

* lint fixes
2022-03-12 16:14:32 -06:00
Peca Nesovanovic
2d57e49caf Teleste Luminato ports & qam/asi output sensors & yaml (#13616)
* Luminato: bitrate sensor

* bitrate sensor Eloquent

* luminato ports

* luminato ports styleci

* luminato QAM/ASI sensor

* luminato QAM/ASI sensor styleci

* YAML & test

* drop debug $ver from sensor type

* mess with Teleste ifExtPhysInterface/ifExtLogiInterface

* styleci

* test data

* mistake in port discovery

* left out Graphs->Health->Overview->Bitrate label

* fixed Bitrate graph, copy/paste errors
2022-01-08 18:17:08 +01:00
Julian Lehrhuber
a3ec263f78 Bintec be.IP plus support (#12993)
* Introduce OS flag to support devices that deliver OIDs out of order

* Add MIB for Bintec Be.IP Plus

* Add YAML definitions for Bintec Be.IP Plus

* Add Bintec be.IP plus test files

* Rename bintec mib files

mib-standards.mib was deleted, because it included definitions that also
existed in separate files

* Add test data

* Remove standard mib files from bintec dir

* Add regex to parse Bintec Be.IP Plus OS version

* Update test data for Bintec Be.IP Plus

* Calculate Bintec Be.IP Plus CPU load from inverse of idle time

* Improve Bintec Be.IP Plus discovery and tests

* Use MIB instead of numerical OIDs where possible

* Update tests to comply with updated discovery

* Remove unused MIBs

* Remove json props that let tests fail

* Update Settings.md

* Remove `snmp_out_of_order_oids` definition from bintec-beip-plus

* Add `-Cc` snmp param for prots module

* Add `-Cc` snmp param for arp-table module

* remove snmp_out_of_order_oids

* Remove snmp_out_of_order_oids

* Update snmp.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-10-28 13:05:43 -05:00
Erik
27c124f19f FabOS remove disabled dbm sensors (#12877)
* add check if adminstatus is up

* added testdata

* Changed ifAdminStatus state detection

* updated testdata

* updated testdata2

* Update fabos_6520.json

* Update fabos.json

* Update fabos_6520.json

* Update fabos.json

* fix fabos.json

* fix bug in discovery include

Co-authored-by: Erik <johndoe@example.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-10-20 18:51:49 -05:00
Tony Murray
8a883140cb Infer character encoding for ifAlias and sysLocation (#13248)
* Infer character encoding for ifAlias and sysLocation
Tries to convert character encoding for non-UTF-8 encoded strings.
This will only work for snmp strings that are type-hinted, not ones forced to ASCII with -Oa or similar
Only works for your default charset or Windows-1251 or LATIN1.
You can set your character encoding in .env with CHARSET

Please save us all and just use UTF-8

* style fixes

* less Yoda

* ensure return type

* fall back to passed string

* don't convert strings with any unprintable characters (such as line return)

* Update LibreNMS/Util/StringHelpers.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Fix CP850

* fix space

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-09-21 08:47:44 -05:00
SourceDoctor
1544eadd37 default port_group for new ports (#13166)
* default port_group for new ports

* .

* adding Docs, default Value, change keyname

* .

* Update Configuration.md

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-08-24 20:28:18 +02:00
Tony Murray
1c379dcd05 Remove legacy function calls (#12651)
* massive inlines

* fix style and wtf

* remove rrdtool.inc.php include

* fix CommonFunctions namespace issues

* looking for missing class space, fix undefined class issues

* style fixes
2021-03-29 00:25:30 +02:00
Heath Barnhart
8a921567ba New OS: Ekinops (#12088)
* Initial push

* renamed mib files

* adding eki mgmt event trap handler

* Adding handler to config/snmptraps.php

* added slot state monitoring

* Ekinops port discovery script

* cleanup

* moved ifDescr change from discovery to poller

* simplified port poller script

* fixed poller array

* add Mgnt2TrapNMSEvent handler

* Adding nms alarm handler

* adding handler to snmptrap.php

* Updated handler names, exapanded event traphandler

* beginning tests and cleanup

* adding snmpsim data

* making tests

* finished trap tests

* fixed ekinops.yaml

* style and lint pass

* new snmpsim data and fixes

* adding correct snmpsim

* fixed test data

* Update ekinops.svg

* Update ekinops.svg

* Update ekinops.yaml

* new os discovery method

* remove unneeded precache line

* removing unneccesary pre-cache script

* styleci fixes

* few more style fixes

* trim whitespace in discovery

* remove unused mibs

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-09-23 18:23:57 +02:00
Jellyfrog
82f43cb98d Apply fixes from StyleCI (#12120) 2020-09-21 15:40:17 +02:00
Denny Friebe
cba51763cc Fix incorrect eth0 status for Ubiquiti AirFiber 5XHD (#12025)
* UBNT AF LTU: Fix incorrect eth0 status during discovery

* UBNT AF LTU: Update test data

* UBNT AF LTU: Remove eth0 if afLTUethConnected is not set

* UBNT AF LTU: Use require instead of require_once
2020-09-16 22:48:32 +02:00
LEV82
9ce7c83caa Add bad_ifoperstatus for filtering interfaces having a status for example 'notPresent' (#10977)
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent

* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent

* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
2020-01-24 05:58:01 -06: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
Erik
a6451860fc Fix if discover (#9643)
* fix_if_discover

* Update ports.inc.php

* Fixed overwriting IfDescr and IfAlias overwriting

* removed whitespace

* added ifname, ifalias and ifdescr copy if it is emtpy or null

* removed ifAlias from update to prevent overwrite

* removed ifName and ifDescr from update to prevent overwrite

* added is_port_valid before doing copy actions between ifDescr,ifAlias&ifName also added back ifDescr&ifName update

* Update ports.inc.php

* Update functions.php

* Update ports.inc.php

* Update exa_e7-2.json

* Update fortigate.json
2019-01-19 11:48:30 -06:00
Tony Murray
de7ce7c757 Fix ifName and ifAlias being blanked by discovery (#9589)
* Fix ifName and ifAlias being blanked by discovery
on devices that have blank ifName or ifAlias

* Update test data

* work around net-snmp bug
2018-12-24 10:29:02 -06:00
PipoCanaja
b67634bc5a Fixed ifType being removed when a port is down (#9493)
* Adding ifType to base_oids

* Improve discovery (update ifType) and polling (save ifType)

* Updated test data

* Updated json test data

* vlan isn't filtered by default :P

* With default ignored ports

* Update newer test data
2018-12-11 21:07:56 -06: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
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
8d1b7d5493 fix: fix marking invalid ports as deleted in discovery (#6665)
There seem to be other issues in this file, such as $ports_l is never defined...
2017-05-17 22:25:47 +01:00
Neil Lathwood
cc51a68f85 feature: Optional partial port polling (#5805)
* feature: Added ability to switch port polling mode

* update, speed things up slightly by walking certain tables

* more fixes

* updates

* updates

* update to exclude ports that are down

* wrong variable used

* update to set previous port status when null

* small update to port disco
2017-02-14 17:26:07 -06:00
Neil Lathwood
21898a3c29 Disco / Poller tidy up + Added display of module mem usage (#5778)
* tidyup + added mem usage for poller modules

* tidied up discovery modules

* fix sensors
2017-02-07 22:54:30 -06:00
Tony Murray
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
Tony Murray
57650e4ffc Remove nfs requirement for distributed poller (with rrdtool 1.5+)
Use data_update instead of rrd_update/rrd_create and influx_update
Centralize rrd file check so we can check against a remote rrdcached server too
Use rrd_name() to generate rrd file names
2016-07-07 21:10:06 -05:00
Maximilian Wilhelm
d53619ab4f Fix database update queries in discovery.php.
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-06-14 13:13:24 +02:00
Maximilian Wilhelm
2fd9879278 Fix database query for known ports in discovery.
While adding configurable port mapping in 2c9df26bbf
  I broke the query for known ports from the database so discovery.php considered
  ALL ports to be new every time it ran. Whoops.

  This went undetected for so long as there is a unique constraint on the ports
  table (device_id+ifIndex) which prevented ports from being added again and
  again.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-06-14 13:12:12 +02:00
Maximilian Wilhelm
2c9df26bbf Update discovery and poller to allow stable interface mapping by ifName/ifDescr based port mapping.
By default libreNMS used the ifIndex to associate ports just found via SNMP
  with ports discoverd/polled before and stored in the database. On Linux boxes
  this is a problem as ifIndexes are rather likely to be unstable between reboots
  or (re)configuration of tunnel interfaces (think: GRE/OpenVPN/Tinc/...), bridges,
  Vlan interfaces, Bonding interfaces, etc.

  This patch adds a »port association mode« configuration option per device which
  allows to map discovered and known ports by their ifIndex, ifName, ifDescr, or
  maybe other means in the future.
  The default port association mode still is ifIndex for compatibility reasons.

  As port RRD files were stored by their ifIndex before, they are now identified
  by their unique and stable port_id to ensure a stable and unique mapping and
  allow future port association modes to be added without requireing any further
  internal changes. Existing RRD files are renamend accordingly in discovery and
  poller tools to ensure stability of port associations in both modules as we
  don't know which might run first after an update.

Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>
2016-01-26 13:49:30 +01:00
Mark Schouten
677a4f3f5f Remove all unneeded if($debug)-statements and replace them with d_echo . discovery dir.. 2015-08-21 16:10:01 +02:00
Job Snijders
d8693f05ae Fix coding style part 2 2015-07-15 11:04:22 +02:00
Alexander Sosna
5a7988e2e4 chmod 0644 to php files not directly executed 2015-04-28 22:58:03 +02:00
Adam Amstrong
b273e04241 /// -> //
git-svn-id: http://www.observium.org/svn/observer/trunk@3240 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-25 12:24:34 +00:00
Adam Amstrong
cacf913a55 # -> / for phpdoc
git-svn-id: http://www.observium.org/svn/observer/trunk@3239 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-25 11:29:53 +00:00
Adam Amstrong
4db1454e92 move from port_id to interface_id. make ports discovery only discover. add some cleaner functions. add a tiny bit of alerting infrastructure.
git-svn-id: http://www.observium.org/svn/observer/trunk@3195 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-16 13:25:50 +00:00
Tom Laermans
4985943822 syntaxer run
git-svn-id: http://www.observium.org/svn/observer/trunk@3185 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-15 15:18:57 +00:00
Adam Amstrong
b891b6f4f2 ports poller update (fix not adding filtered interfaces)
git-svn-id: http://www.observium.org/svn/observer/trunk@3173 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-11 18:08:48 +00:00
Adam Amstrong
606751f6fd port poller
git-svn-id: http://www.observium.org/svn/observer/trunk@3172 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-11 18:01:28 +00:00
Adam Amstrong
9af156eb95 ports discovery updates
git-svn-id: http://www.observium.org/svn/observer/trunk@3171 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-11 17:43:30 +00:00
Adam Amstrong
f768558e7e fix auth for graphs to allow cidr filter. fix schema 006
git-svn-id: http://www.observium.org/svn/observer/trunk@3169 61d68cd4-352d-0410-923a-c4978735b2b8
2012-05-11 15:21:42 +00:00
Adam Amstrong
a433ecf05a kankerhoer
git-svn-id: http://www.observium.org/svn/observer/trunk@2948 61d68cd4-352d-0410-923a-c4978735b2b8
2012-04-03 10:36:26 +00:00
Tom Laermans
a369c442eb syntaxer run
git-svn-id: http://www.observium.org/svn/observer/trunk@2643 61d68cd4-352d-0410-923a-c4978735b2b8
2011-10-04 14:38:54 +00:00
Adam Amstrong
5033e81e87 don't discover ports that shouldn't be discovered!
git-svn-id: http://www.observium.org/svn/observer/trunk@2347 61d68cd4-352d-0410-923a-c4978735b2b8
2011-05-18 23:08:45 +00:00
Tom Laermans
f55a30f744 some formatting cleanups, introduce some more FIXMEs to look at, plus replace mysql_fetch_array by mysql_fetch_assoc, for great justice
git-svn-id: http://www.observium.org/svn/observer/trunk@2029 61d68cd4-352d-0410-923a-c4978735b2b8
2011-04-06 13:54:50 +00:00