Commit Graph

288 Commits

Author SHA1 Message Date
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
Tony Murray
2dcc70301c Fix < 0 exception in ports poller (#13732) 2022-02-02 17:31:54 +01:00
Julian Lehrhuber
064463915c Fix poller for Bintec Be.IP Plus (#13453)
* Fix OID not increasing

* restore default flags

* Update ports.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-10-29 23:20:23 -05:00
Tony Murray
b0e0d65c86 Fixes for misc unset variables in polling (#13421)
Remove $attribs global
2021-10-25 21:35:18 +02:00
Roy Cruse
aa6d685c9e Update ports.inc.php (#13393)
ifType of draytek router reporting as vdsl2 since firmware upgrade to v3.9.6.2
2021-10-20 18:54:56 -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
Tony Murray
b3e2309af6 Format port speed changes in the event log (#13174)
* Format port speed changes in the event log

* Delete SettingSelect2.vue
2021-08-26 17:56:55 +02:00
Tony Murray
d74bb37971 Show port speed on port graphs, optionally set scale (#11858)
* Show ifSpeed on Graph
Drop ifHighSpeed, we really don't want to store that value.

* safer truth check

* Allow global setting and per-graph variable

* match surrounding case

* Style fixes

* Remove old function usage

* update schema

* remove some old usages

* cleanup more ifHighSpeed references

* update test data to remove ifHighSpeed

* fix down migration

* Add button on graph page
Change default
tweak wording
2021-08-23 06:47:44 -05:00
Justin Bronn
d214ec4a28 TP-Link Jetstream DDM and PoE Support (#12990)
* Add TP-Link's DDM and PoE MIBs via their 20210310 archive.

* Add support for DDM sensors on TP-Link Jetstream switches.

* Add support for PoE on TP-Link switches.

* Fix linting issues.

* Fix group discrepancy in test data.

* Fix multiple discrepancies in DDM test data.

* Improve `num_oid` and `index` fields for Jetstream PoE sensors.

* Test data for PoE sensor `index` change.

* Convert Jetstream sensors to YAML and refine index names.
2021-07-04 17:51:57 +02:00
Tony Murray
61c89794e4 Remove debug globals (#12811)
* Remove $debug global
and $vdebug global
makes these variables more accessible and protects from collisions.

* the on boot set sends application as the first parameter, just handle that

* Relocate other debug related functions

* Log debug to stdout

* Wrong output

* remove stupid constants

* Fix lint and style issues
2021-04-29 22:42:18 -05:00
Dave Browning
ea6bd6af85 Allow getting VDSL stats on "down" VDSL ports (#12753)
https://community.librenms.org/t/broken-vdsl-stats-after-update/11471/20
2021-04-14 07:33:12 -05: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
Tony Murray
61316ce2cc PHP 8 fixes (#12528)
* port related errors

* more fixes

* fix storage count

* add tests for php8

* style

* only need not empty

* aix fixes....

* storage WIP

* fix aix discovering hrstorage
fix db test adding .gitkeep
fix os modules when discovery only

* fix aos processors wrong oid

* fix mempool number casting

* fix aos7 cpu

* use + 0 cast instead of floatval()

* more verbose error on invalid json

* remove invalid data in json

* actually fix the json

* correct json error fix

* cast_number() function
fix aruba-instant and aos6 bugs exposed by new function, probably more...

* fix a-f
fix inadequate sort for component data

* fix global port poll time

* fix mempools precent 0, route count, ntp const

* fix schleifenbauer liberal current usage

* further number casting refinement

* vrp

* fix tests

* fix arbos

* warn cleanups adjust to :: change

* fix ciena-sds

* fix drac

* fix dell-rpdu anddlink

* fix and improve arubaos
better error when getting an array in Processor

* fix atenpdu, add missing arubaos files

* aruba-instant to yaml
apparently I didn't need to do this, the diff just looks really odd
It did add ranged sub-index replacements

* docker app, was completely wrong... fixed

* fix sentry4 divide by 0...

* fixed root issue, remove check

* nicer cidr in ipv6 code

* remove bogus enuxus battery bank skip_values

* Fix InfluxDB tests

* remove extra import

* fix other style issues.

* influx "style" fixes
2021-03-12 18:10:14 -06:00
Jellyfrog
28591c0330 Split VMware into seperate OS (#12243)
* Split VMware into separate OS

* Bump VMware MIBs
2020-11-03 21:27:23 +01:00
PipoCanaja
9797be3677 Update DSL stats even if port is down (#12262)
* Update DSL stats even if port is down

* Correct swapped Upload/download on graphs

* Display attainable line speed in the ADSL page

* Correct SNR graph

* Rewrite labels to avoid misunderstanding

* last swap I hope
2020-10-29 02:08:29 +01:00
Jellyfrog
29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog
2fc3a21211 Apply fixes from StyleCI (#12121) 2020-09-21 15:43:38 +02:00
Tony Murray
b9f4b221f7 Include ifName for bad_ifXEntry OS (#12104)
* ifEntry does not include ifName

* Walk ifName for bad_ifXEntry os
2020-09-17 23:00:31 -05:00
craig-nokia
db7ac390b2 Added check for incorrect ifConnectorPresent truth values, if invalid… (#11634)
* Added check for incorrect ifConnectorPresent truth values, if invalid, save it as false

* Added space after comma line 629

* Update ports.inc.php

Updated per murrant and tested.

* Update ports.inc.php

* Update ports.inc.php

Changed to check if ifConnector is set and if the response is not true or false, set it to null.

* Update ports.inc.php

* Update ports.inc.php

Fixed the codeclimate space issue

* Update test data

* fix differing escapes

* fix ciena-sds eol

* Revert timos.json

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-07-08 08:44:45 -05:00
Nick Peelman
e4b2d98222 only try to optimize port polling when it is enable by the global setting. (#11908) 2020-07-06 19:31:45 -05:00
footstep86
031c644ab3 Implemented a generic approach for ifHighSpeed values that cannot be … (#11504)
* Implemented a generic approach for ifHighSpeed values that cannot be stored in the database

Typo

* Added os check
2020-06-12 07:45:00 -05:00
Albert Siersema
cd362b7983 Fix missing PoE port graphs for Cisco Catalyst 9K (#11698)
* Fix missing PoE port graphs for Cisco Catalyst 9K

* Reworked code: 2 assignments, added tests

* Simplify code

Checking the MIBs...
CISCO-POWER-ETHERNET-EXT-MIB: AUGMENTS { pethPsePortEntry  } 
POWER-ETHERNET-MIB: INDEX { pethPsePortGroupIndex , pethPsePortIndex  }

This means cpeExtPsePortEntry is always indexed by exactly 2 values.  No point in populating slot.subslot.port

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-06-04 22:10:06 -05:00
SourceDoctor
fc921a143c Cleanup unused code (#11391)
* Global Settings - Alert Default Settings

* Revert "Global Settings - Alert Default Settings"

This reverts commit a1af62b146.

* remove not more used code

* Travis restart
2020-04-08 15:56:44 -05:00
Tony Murray
217969e140 Update php-codesniffer (#11368)
* PHPCS 3.5+

* Fix newly detected style issues
2020-04-03 08:41:24 -05:00
SourceDoctor
7dfb4ef1df Adding Column ifSpeed_prev, ifHighSpeed_prev to Ports Table (#11348)
* adding Column ifSpeed_prev, ifHighSpeed_prev to Ports table

* grammar fix

* rename migration class

* tests

* .

* .
2020-04-01 10:50:33 +02:00
Tony Murray
df16de9d2f Refactor Datastores to allow future improvements. OpenTSDB Tags. (#11283)
* Datastores to object oriented code, using the Laravel IoC container

Change instantiation
better DI
move OpenTSDB

Small re-orgs

remove unused stuff

Fix graphs and other scripts

Use DI for all except rrd

fix up connection error handling

Add tests, fix up a "few" things
Add Config::forget()

Style fixes

Don't reference legacy code

remove accidental code paste

Add datastores phpunit groups

some tests

* rebase fixes

* some test fixes

* shorter tests

* shorter tests

* Don't except when rrdtool can't be started.

* restore tests

* fix rrd tests

* fix iterable change upstream

* fix isValidDataset

* fix invalid data bug

* fix mysql incorrect ds

* fix issue with data that is too long

* use regular data_update()

* Use log facade

* OpenTSDB mis-ordered arguments fix

* Making a singleton with different options makes different singletons.  Just use the global config settings to disable datastores.

* only filter tags for datastores that won't it don't modify the tags permanently

* Update copyrights to include original authors.

* Stats for all datastores

* Fix mysql sends different rrd / other ds names

* fix snmp last stats not initialized
remove unused function

* remove unused function and move single use function closer to its use

* InfluxDB does not need to update null or U values.
Skip write if all fields are empty

* Fix smart value checks

* fix style issues

* Make sure port data is stored the same way as before for Graphite and OpenTSDB
Add ifIndex tag to all to be compatible

* Missed rrdtool_tune() call

* Test update WIP

* OpenTSDB now includes tags

* fix style
2020-03-16 09:17:58 -05:00
Tony Murray
7fe895bd08 Revert "Refactor datastores to classes (#9179)" (#11273)
This reverts commit e5dad7a64e.
2020-03-11 07:52:52 -05:00
Tony Murray
e5dad7a64e Refactor datastores to classes (#9179)
* Datastores to object oriented code, using the Laravel IoC container

Change instantiation
better DI
move OpenTSDB

Small re-orgs

remove unused stuff

Fix graphs and other scripts

Use DI for all except rrd

fix up connection error handling

Add tests, fix up a "few" things
Add Config::forget()

Style fixes

Don't reference legacy code

remove accidental code paste

Add datastores phpunit groups

some tests

* rebase fixes

* some test fixes

* shorter tests

* shorter tests

* Don't except when rrdtool can't be started.

* restore tests

* fix rrd tests

* fix iterable change upstream

* fix isValidDataset

* fix invalid data bug

* fix mysql incorrect ds

* fix issue with data that is too long

* use regular data_update()

* Use log facade

* OpenTSDB mis-ordered arguments fix

* Making a singleton with different options makes different singletons.  Just use the global config settings to disable datastores.

* only filter tags for datastores that won't it don't modify the tags permanently

* Update copyrights to include original authors.

* Stats for all datastores

* Fix mysql sends different rrd / other ds names

* fix snmp last stats not initialized
remove unused function

* remove unused function and move single use function closer to its use

* InfluxDB does not need to update null or U values.
Skip write if all fields are empty

* Fix smart value checks

* fix style issues
2020-03-10 19:08:00 -05:00
Albert Siersema
398d5fe2b7 Fixed missing PoE graphs for Cisco devices (#11087)
* Fixed missing PoE graphs for Cisco devices where portIfIndex can't be retrieved from CISCO-STACK-MIB

* Codeclimate & Travis error corrections

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2020-02-01 11:01:36 +01:00
Tony Murray
67b28ec4cd Fix Air Fiber port stats (#11079)
* Fix Air Fiber port stats
Define OS port polling includes in a standard way.
Move Air Fiber code to os port polling include.

* Update snmp data

* fix accidental change

* Some formatting fixes

* should be null
2020-01-30 05:40:58 -06:00
PipoCanaja
ee8297df19 Extend FS switches support, handle lowerLayerDown ifOperStatus (#10904)
* extend FS switches support

* MIB compilation

* HW and Ver

* sensors and CPU

* tests

* correct version

* try to handle properly "down" as not up, for OperStat like lowerLayerDown

* try to handle properly "down" as not up, for OperStat like lowerLayerDown

* try to handle properly "down" as not up, for OperStat like lowerLayerDown

* try to replace "down" with "not up" :)

* fix other ifOperStatus checks
2020-01-15 08:28:36 -06:00
louis-oui
891d6966d8 Optimize DB update of ports and ports_statistics tables when polling (#10792)
* Don't update ports stats in database when their ifOperStatus is down and their ifLastChange did change

* Don't update ports stats in database when their ifOperStatus is down and their ifLastChange did change

* Don't update ports stats in database when their ifOperStatus is down and their ifLastChange did change

* Update the poll_time, poll_prev and poll_period of all ports in an unique request per device

* Update the poll_time, poll_prev and poll_period of all ports in an unique request per device

* echo debug

* max array_column

* remove print_r for debug

* optimize update of poll_time, poll_prev and poll_period

* optimize update of poll_time, poll_prev and poll_period

* better code readibility
2020-01-10 10:03:32 -06:00
PipoCanaja
b89d80dc02 Perf optimisation for xDSL mib polling (#10815)
Only call snmpwalk once, instead of 20, to avoid havin to face up to 20 times the timeout. Decreased drastically polling time on some Cisco 887 / 897 devices
2019-11-14 18:39:47 +00: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
pobradovic08
7f32af4f7b Add CISCO-IF-EXTENSION port stats for IOS/IOS-XE (#10644)
* Add CISCO-IF-EXTENSION polling and graph

* Added test data

* Code style

* Move CISCO-IF-EXTENSION-MIB to cisco mib dir

* Test data?

* Recollect test data again

* ios-xe variant 'ports' with ports test data

* Removed unnecessary test data
2019-10-21 00:39:14 +00:00
Tony Murray
699aa8a042 Consolidate configuration settings and implement dynamic webui settings (#9809)
* initial db/defaults dump

* numeric values

* Remove $config['time']

* Use config_definitions.json

* try setting definition as a complete array

* a little more

* fix format

* WIP converting dynamic setting pages

* rewriting the webui

* remove legacy and add translations

* finish email section

* improve navigation
update js a bit

* Import the remaining existing settings

* Update backend still some wip
migration

* fix config loading (db not overriding defaults)

* some cleanup

* more array collapsing

* update settings

* Settings search

* add purge settings to ui, order groups and sections

* collapse more arrays

* Auth definitions WIP

* remove needless slash escapes

* add warning to json

* moving settings from defaults.inc

* remove slow_statistics

* Move rrdtool settings to the poller section

* Use translations more consistently

* removing more settings from defaults.inc.php

* show setting name in tooltip

* allow help text to be shown on mobile

* disable settings that are set in config.php

* Implement undo and reset to default.

* Vue.js functional

* Vue.js WIP

* Implement tabs component

* accordion WIP

* lodash ver update

* two items

* Accordion somewhat working

* hash navigation

* Refine Accordion

* Fix up tab styling a bit

* Cleaner tab selected property
Hide html while loading

* spinner?

* Icon support
property for accordion to active

* WIP

* Tabs/Sections from ajax

* Setting Component skeletons

* Dynamic Component resolution

* Basic functionality

* toggle class

* Refactor components

* translate tabs and accordions

* simple array attempt

* improve readonly tooltip

* array styling

* array value editing

* organize snmp info

* Handle initial tab/section in url

* Use Laravel to parse tab/section, dump old

* Draggable array entries

* v-tooltip, for clickable (and touch) help tooltips
disable draggable

* Navigation WIP

* Navigation WIP

* groups computed

* filter settings

* fix event reference

* vue.js i18n initial

* missing description = just setting name

* en fallback

* tidy up the language support and js generation

* persist value to db

* fix issue with 0

* Delete settings from DB instead of setting them to default

* ldap-groups
fixup style

* Default dashboard selection

* fix array of options instead of object

* allow custom validation for settings

* translate options in SettingSelect

* SNMP v3 WIP

* fix setting arrays

* Split persist out of set

* Hook up events for SNMP v3 Auth
correct Config::persist behaviour with arrays

* dependent settings (primitive for now)
actually update the settings values in the LibrenmsSettings component

* more complex "when" behaviour

* remove un-needed seeder

* add poller_modules.cisco-qfp

* remove en.json (disable warning)

* don't set default for log_dir or log_file, otherwise it won't be processed correctly

* Fix module order
add some missing settings

* more config corrections

* correct graphs
correct loading values set to null (although it should have no difference)
remove project_name_version

* Add nfsen settings.  Docs are very confusing, so might have flubbed something
remove option for array definition of select option as numeric indexes messes it up

* Correct more upstream config differences

* Config cleanup after a bunch of merges.

* Fixes

* add version tags to js/css files
remove old js

* Print out full settings list read-only

* Add http_proxy setting
fix indents in config_definitions.json

* repeaters default is 0 (aka 20)

* cleanups

* rewrite the dynamic config docs

* add language docs

* Don't show snmp v3 auth add/remove if disabled by config.php
2019-10-16 21:22:05 +00:00
Stephen Fletcher
c666af1b8b Added inbit and outbit rate to auxiliary datastores. (#10512) 2019-09-02 23:03:20 +02:00
Tony Murray
f3ba8947f7 Use Config helper (#10339)
remove usage of global variable
2019-06-23 00:29:12 -05:00
PipoCanaja
ccb6e2e614 Removed broken POE graphing code (#10188)
* remove broken POE graphing code

* remove broken POE graphing code

* add missing iosxe condition
2019-05-29 13:37:00 -05:00
PipoCanaja
36e709ebab Improved Linksys support, including POE (#10075)
Fixes #9718 

This PR adds POE graphs, even if not all the values that are polled on other OSes are available on this one.  

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 10075`
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-04-09 20:32:57 +01:00
Ruslan
019c57beaa Add Junos VirtuallChassis ports polling (#9879)
* Update ports.inc.php

* Create junos-vcp.inc.php

* Fix some formatting errors in junos-vcp.inc.php

* Update junos_ex.snmprec

* Update junos_ex.json

* Update tests/data/junos_ex.jso

* Rollback junos_ex data set

* Update ports.inc.php

* Update junos-vcp.inc.php~

* Update tests/snmpsim/junos.snmprec

* Generate new .json files

* Update includes/polling/ports.inc.php

* Rollback tests/data/junos_ex.json

* Update junos.snmprec

* Update junos.snmprec

* Use str_pad in junos-vcp.inc.php
2019-03-12 09:01:35 -05:00
Nick Hilliard
09caced7ef Add support for Infinera-Coriant Groove (#9843)
* Add support for Infinera Groove
2019-03-04 17:31:53 +01:00
Vitali Kari
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
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
Vitali Kari
272e511964 Nokia vrf (#9509)
* update some mibs

* add virtual router ports

* coding style

* refactor

* some refactoring

* some typos

* add snmprec

* Fix capturing VRF entries with no ports

* updated test data

* manually fix test data

Not going to try to fix the data capture for backslashes at this time.

* Revert "manually fix test data"

This reverts commit 2c98450706.

* timos data for net-snmp 5.7.3 ?????
2018-12-20 16:04:24 -06:00
evheros
d7a04f8cb7 Added Fortigate state sensors (#9520)
* Added Fortigate state sensors

* Added snmprec file

* Update fortigate.json

* Fix "awesome" ifHighSpeed implementation...

* Update fortigate.json

* better MAX_INT ifHighSpeed fix

* update for new ifType changes

* ifDescr is not used correctly like most fortinets
2018-12-11 22:18:46 -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
533c9022c9 Fixed Procera ports ifIndex and ports added by the poller (#9384)
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-28 21:08:42 +00:00
Neil Lathwood
a10503b927 Ensure the checks for ASA context devices are strict (#9441) 2018-11-10 21:05:25 +00:00
PipoCanaja
e367f46fee device: Initial support for CXR-Networks Terminal Server (#9169)
* device: Initial support for CXR-Networks Terminal Server

* device: Support for CXR-Networks Terminal Server - CodeClimate + cleaning

* device: renamed cxr-networks-ts and code improvement

* device: cxr-networks-ts test data

* device: renamed os as cxr-ts

* device: renamed os as cxr-ts, test data
2018-09-10 21:32:06 -05:00