Commit Graph

988 Commits

Author SHA1 Message Date
Tony Murray
98ee237420 Bump version to 21.10.0 2021-10-16 08:02:35 -05:00
Tony Murray
eb653619a3 Dispatcher bugfix queues not being disabled properly (#13364)
* Dispatcher bugfix queues not being disabled properly
Introduced in #13355
Affected queues: Alerting, Discovery, Services, Ping

Adjust log level of several messages

* better formatting? looks like garbage python black
2021-10-14 23:39:08 -05:00
Tony Murray
da57ea65f6 Dispatcher: Don't update poller groups when updating stats (#13363)
* Dispatcher: Don't update workers/frequency when updating stats

* Fix the right thing

* Don't set poller groups on the cluster entry, this way config.php can override if it hasn't been set by the webui
2021-10-14 19:41:35 -05:00
Tony Murray
436487f5f2 Dispatch Service: always start queue managers (#13355)
* dispatch service always start queue managers
Only start workers if they are enabled for this node

* style

* please stop mr ide, sir
2021-10-13 21:49:43 -05:00
Tony Murray
526afd437f SnmpQuery updates and more tests (#13359)
* SnmpQuery updates and more tests
improvements to translate handling

* fix method description

* fix whitespace
2021-10-13 08:49:19 -05:00
Tony Murray
4bab6d7ed2 Remove load_os and load_discovery functions (#13345)
* Remove load_os and load_discovery functions
Put bits where they belong and use $os

* remove extra line return

* OS loading code in the wrong place

* fixes

* line
2021-10-08 14:04:11 -05:00
Tony Murray
4e94c1e0a1 Rename NetSnmp to SnmpQuery (#13344)
* Rename NetSnmp to SnmpQuery
Always resolve a new instance.  It was not expected to be a singleton, set options persisted.
This means numeric() works properly now

* fix snmpfetch call and style

* Ability to set device from device array
2021-10-07 17:03:53 -05:00
Tony Murray
8d5bc3fc41 Use Measurements for all statistic collection (#13333)
* Use Measurements for all statistic collection

* fix space

* Use colors
cleanup

* fix style

* manually fix license notice

* add return times and new line

* add return times and new line

* fix mistake in copyright template

* fix style
2021-10-06 17:09:54 -05:00
Maikel de Boer
f28802bb2b Ericsson TN - Wireless MSE (#13328)
* Initial commit

* Removed unused function

* fixed style

* fixed style

* fixed test data

* Initial commit

* end of the day commit

* finish + test data

* Delete ericsson-tn_ericsson-tn.snmprec

* Added wireless MSE

* Delete ciena-saos.yaml

* Delete NORTEL-MIB

* Delete ciena-saos.yaml

* Delete NORTEL-OPTICAL-GENERIC-MIB

* Delete ciena-saos_saos.snmprec

* Delete ciena-saos_saos.json

* Delete NORTEL-OPTICAL-PM-MIB

* fixed style

* fixe
2021-10-06 23:37:10 +02:00
Tony Murray
0b8b97bb68 Push Notifications (Mobile and PC) (#13277)
* Update manifest and add service worker
cleanup icons a bit

* Push notifications WIP

* navigate working

* cleanup

* acknowledge wired up

* Set VAPID keys on composer install

* Component to control notification permissions.

* Allow all user option to validate

* Enable on browser load if transport exists.

* Check for transport before showing user permissions
translations

* Documentation

* style fixes

* access via the attribute model

* fix alerting test

* update schema

* cleanup subscription on disable

* non-configurable db and table for webpush subscriptions (respect system connection)

* revert AlertTransport change
hopefully phpstan can figure it out

* phpstan fixes

* Support custom details display

* Match transport names to brand's preferred display

* less duplicate id errors

* Tests are done in Laravel code now so
remove legacy function usage... could be better, but ok

* Style fixes

* Style fixes 2

* Fix alert test

* Doc updates requires HTTPS and GMP

* unregister subscription when permission is set to denied

* cleanup after user deletion

* delete the right thing

* fix whitespace

* update install docs to include php-gmp

* suggest ext-gmp

* update javascript

* Update functions.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-10-06 07:29:47 -05:00
Tony Murray
7fe8ddfb24 don't leak stderr (#13332)
nullable
2021-10-05 09:27:21 +02:00
Tony Murray
b5b532fbc5 Automatically set rrdtool_version once (#13327)
* Automatically set rrdtool_version once
on first run if not already set

* In about controller too
2021-10-04 23:05:42 +02:00
Tony Murray
681508f45b Fix device query when last_polled_timetaken is null (#13331)
Caused by recent bug
2021-10-04 16:04:44 -05:00
Tony Murray
aa35d2f0c0 Connectivity Helper to check and record device reachability (#13315)
* Fping WIP

* Update availability, move ping rrd update in the same place as db update.

* move classes around

* make device:ping command work

* use new code, remove legacy code

* save metrics boolean prevents all saves
style fixes

* update device array

* style fixes

* Update unit test

* fix whitespace

* Fix Fping stub

* fix backwards if

* fix phpstan complaining

* Fix return type

* add fillable to DeviceOutage model.

* device_outage migration to add id...

* missed line in db_schema.yaml

* 1 billion more comments on the brain damage up/down code

* tests for status and status_reason fields

* fix style again :D

* Duplicate legacy isSNMPable() functionality
but with only one snmp call ever 😎

* Remove unused variable

* fix migrations for sqlite
2021-10-03 22:45:10 -05:00
La
e5f540eed8 fix alert transport api with POST method (#13288) 2021-10-02 23:56:49 +02:00
Nash Kaminski
cb56ae5f46 Improvements to SSO Authorization and logout handling (#13311)
* Improvements to SSO Authorization and logout handling

Changes:
* Adds support for a default access level in the SSO authorization
  plugin when group mapping is enabled.
* Restore functionality of the auth_logout_handler configuration option,
  allowing the user to be redirected to a configured URL to complete
  logout from an external IdP.
* Documentation and test coverage updates

* Set sso.static_level to 0 in AuthSSOTest:testGroupParsing()

* Simplify implementation to use default values in Config::get()
2021-10-02 08:02:42 -05:00
Tony Murray
a828bb00c3 lnms snmp:fetch command and new SNMP code (#13303)
* SNMP WIP

* cleanup, more types

* Include my snmp:fetch command

* Fix Facade name conflict

* Command WIP
remove mib

* Ignore exit code
cleanups

* Doc blocks and style fixes

* forgot to use parseOid

* Hopefully final fixes

* missed on (:

* small changes
deviates from existing code, hopefully doesn't re-add too many corner cases.

* add some simple tests, will make it easier to add more in the future when we find corner cases.

* test numeric

* API refinements, try to avoid setting textual net-snmp options directly

* change numeric to a toggle makes for nicer usage

* make ci happy

* Some errors happen only in stderr, pass that to SnmpResponse for parsing.
Add error message access

* More consistent naming
2021-10-01 18:58:12 -05:00
Jellyfrog
8ffd573cf2 Remove text about report sql issues (#13307) 2021-10-01 14:03:53 -05:00
Tony Murray
c84b462ac0 Fix python config fetch disrupted by stderr output (#13295)
* Fix python config fetch disrupted by stderr output

I have no idea how to make command_runner not include debug output, so just use subprocess.check_output

* restore import
2021-10-01 07:58:17 -05:00
Jellyfrog
0680dc8cd5 Use the same error message for different kind of authentiction errors (#13306)
This prevents usernames to be guess as the application confirms or denies their existence.
2021-10-01 14:12:48 +02:00
Maikel de Boer
b3c1d036b4 Ericsson Traffic Node support (#13299)
* Initial commit

* Removed unused function

* fixed style

* fixed style

* fixed test data

* Delete ericsson-tn_ericsson-tn.snmprec

* Update ericsson-tn.yaml
2021-09-30 08:29:31 -05:00
Cathal Mooney
6bfe1555be Modified Prometheus extension to support adding a prefix to metric names (#13272)
* Modified Prometheus extension to allow for a configurable prefix on metric names.

* Added reference in config_definitions.json and updated docs.

* Fixed whitespace in config_definitions.json.

* Added reference to prometheus.prefix in settings.php

* Defined prefix var as private in Prometheus.php
2021-09-28 19:30:28 -05:00
Tony Murray
66dddbaa66 SNMP Capabilities (#13289)
* SNMP Capabilities
Allow all available auth algorithms to be set in global settings
cleanup other usages

* fix style
2021-09-28 18:35:59 -05:00
Tony Murray
add06be809 Fix poller wrapper error (#13290)
* Fix poller wrapper error
trying to reference value from try block in catch block

* remove redundant item
2021-09-28 17:47:04 -05:00
Orsiris de Jong
bfa200f3f7 Full Python code fusion / refactor and hardening 2nd edition (#13188)
* New service/discovery/poller wrapper

* Convert old wrapper scripts to bootstrap loaders for wrapper.py

* Move wrapper.py to LibreNMS module directory

* Reformat files

* File reformatting

* bootstrap files reformatting

* Fusion service and wrapper database connections and get_config_data functions

* Moved subprocess calls to command_runner

* LibreNMS library and __init__ fusion

* Reformat files

* Normalize logging use

* Reformatting code

* Fix missing argument for error log

* Fix refactor typo in DBConfig class

* Add default timeout for config.php data fetching

* distributed discovery should finish with a timestamp instead of an epoch

* Fix docstring inside dict prevents service key to work

* Fix poller insert statement

* Fix service wrapper typo

* Update docstring since we changed function behavior

* Normalize SQL statements

* Convert optparse to argparse

* Revert discovery thread number

* Handle debug logging

* Fix file option typo

* Reformat code

* Add credits to source package

* Rename logs depending on the wrapper type

* Cap max logfile size to 10MB

* Reformat code

* Add exception for Redis < 5.0

* Make sure we always log something from service

* Fix bogus description

* Add an error message on missing config file

* Improve error message when .env file cannot be loaded

* Improve wrapper logging

* Fix cron run may fail when environment path is not set

* Add missing -wrapper suffix for logs

* Conform to prior naming scheme

* Linter fix

* Add inline copy of command_runner

* Another linter fix

* Raise exception after logging

* Updated inline command_runner

* Add command_runner to requirements

* I guess I love linter fixes ;)

* Don't spawn more threads than devices

* Fix typo in log call

* Add exit codes to log on error, add command line to debug log

* Add thread name to error message

* Log errors in end message for easier debugging

* Typo fix

* In love of linting
2021-09-27 14:24:25 -05:00
Cupid@zul
9eecca51c7 Teldat: Wireless and GSM Basic Monitoring (#13255)
* Teldat: Wireless and GSM Basic Monitoring

* Teldat: Wireless IfIndex fix

* Teldat: Wireless and GSM tests

* minor comment correction

* Teldat: Wireless and GSM add json test data

* linter.warn: bugfix access_point_id = null, generally used for controllers, TELDATs are never controllers

* Teldat: Wireless and GSM tests replay results.

* linter.warn: fix #17 $entPhysicalMeasured expects float|int|null set to: null

* Teldat: Wireless and GSM some updates, bugfixes and lint updates as requested.

* linter : some more fixes...

* Teldat: Wireless and GSM, apply recommendations.

* minor styleCI fix.

* linter: fix

* linter: fix.

* Delete WirelessLteCellPolling.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-09-23 11:55:14 -05:00
Kevin Zink
f796396e0b HP Fault Traps (#13254)
* HP Fault Trap

* Add typehints

* Fix style

* Fix style

* Try to fix wrong test

* Next try
2021-09-21 16:20: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
Kevin Zink
59859c2ea3 Veeam backup SNMP Traps (#13170)
* SNMP Trap Veeam backupjob status

* Add  onVmBackupJobCompleted

* add mib

* fix style

* fix style

* Split backupjob and vm backup

* Add Traptest

* Fix style

* Fit style

* typehint on tests

* Fix handling empty string

* Fix wrong check

* Fix styl

* Fix style

* Update VeeamBackupJobCompleted.php

* Update VeeamVmBackupJobCompleted.php

* Update VeeamTrapTest.php

* Update VeeamTrapTest.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-09-19 08:21:31 -05:00
Tony Murray
c41c25cab6 reorganize release categories a bit (#13249) 2021-09-18 13:22:54 -05:00
Noah Roufus
eff9c134cd Added SAF Integra-X OS Support (#13236)
* Added SAF Integra-X support.

* Fixed discovery confusion between Integra-B and Integra-X.

* Removed a missed unusued use statement.

* Fixed CPU sensor issues related to MIB display hints throwing off math.

* Fix to Integra-X snmprec and test data.
2021-09-17 09:13:10 -05:00
Tony Murray
b4b4820cba Bump version to 21.9.0 2021-09-16 22:45:07 -05:00
Tony Murray
117036bf29 Fix Dell server sensors (#13247)
missing mib directory
2021-09-16 21:05:31 +02:00
Tony Murray
a6fcbba10a Fix mempool unit display (#13241)
MiiB to MiB
2021-09-15 17:45:57 +02:00
ottorei
b2d34cac4a Fix PagerDuty transport's group field (#13235)
* Do not poll passive interfaces

* Bug

* Update payload
2021-09-13 21:14:11 +02:00
Jellyfrog
258505ed44 Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
Tony Murray
c5b63bde86 New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197)
* working popover

* popup component

* cleanup

* finalize device-link component

* attributes WIP

* working graph component

* widgets WIP

* More dynamic configs

* Graph row component

* Build CSS so we can use a dark theme

* graph row set columns

* only one popup visible at a time.

* Just set graph row width statically

* responsive WIP

* rsponsive option for graph-row "working"

* remove @deviceLink and @portLink

* fix non-responsive graph row

* update js/css

* fix style

* bad type?

* types

* types

* types #3

* remove testing code

* full rebel, no closing tags for meta and link

* match previous formatting

* fix vlans display

* restore newline

* remove silly comment

* remove unused line

* style I guess
2021-09-10 08:07:08 -05:00
Jellyfrog
26b95c0ccc Apply fixes from StyleCI (#13208) 2021-09-08 23:35:56 +02:00
Noah Roufus
ebb582f0f2 Updated OS Support: Dragonwave Horizon (#13193)
* Removed older Horizon definitions

* Added Horizon Compact definitions via YAML.

* Added Horizon Duo definitions via YAML.

* Added Horizon Compact Plus definitions via YAML.

* Fixed issue with OID name casing for Horizon Duo EnetPort2CRC sensor

* Moved SNR/RSL/Tx Power to wireless sensor definitions.

* Reordered use statements to make StyleCI happy.
2021-09-08 08:40:23 -05:00
Jellyfrog
232b9a414c Apply fixes from StyleCI (#13201) 2021-09-07 20:33:54 -05:00
Jellyfrog
4f50c3c05d Rename nobulk -> snmp_bulk (#13098) 2021-09-01 19:01:41 -05:00
Tony Murray
e81ee98b31 Validate schema in utc (#13182)
if timestamp is off, prepend sql query to set UTC for session
2021-08-30 11:02:48 -05:00
mzacchi
71cd81269a Update Api.php to include Options variable in the Body for POST requests (#13167)
* Update Api.php
* Update Api.php
Correct syntax for variable replacement : '{{ $' . $metric . ' }}'
* style
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2021-08-28 23:19:06 +02:00
Tony Murray
9b8b1b814a Validate APP_KEY (#13171)
* Validate APP_KEY
key:rotate command to rotate keys, only rotates validation data for now

* fixes, swapped encrypters, not saving new value to db, check that key exists first

* add confirmation

* Option to generate new key, re-encrypt data and then save it to .env
A lot more text to try to prevent disaster.  Print out both keys 1-2 times.
Fix bug in EnvHelper (when key is commented but not empty)

* fix style

* oops, good phpstan
2021-08-27 22:48:21 -05:00
ottorei
c08b203ed7 Do not poll passive ISIS-circuits (#13168)
* Do not poll passive interfaces

* Apply fixes from StyleCI

* discovering with mib active returns true/false

Co-authored-by: ottorei <ottorei@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-08-24 12:21:49 -05:00
Tony Murray
8e409ba051 Rewrite ISIS Adjacency discovery/polling (#13155)
* Rewrite ISIS Adjacency discovery/polling
hopefully much faster now, do most work in discovery and just check up/down in poller.

* unused variable

* Implement option for OS override

* fix an incorrect typehint

* test data

* work around stupid migration name

* update schema

* better handling for the on-demand discovery

* more detailed phpdoc

* fix when adjacency is not found

* don't clear out data when adjacency goes away

* Adjust nullable fields

* fixes

* fix class name

* correct migration

* fix bug causing adjacency data to always be blank

* port popups for port links

* isisISAdjState does not need to be nullable

* remove extra space

* default off

* If port is missing return $text

* update schema

* Cleanup old components

* correc copy paste error
2021-08-23 21:19:55 -05:00
Tony Murray
07415ced77 Fix DB Inconsistent friendly error message (#13163)
Exception was causing an exception due to a type error, fix that so the nice message works.
2021-08-23 19:06:56 -05:00
Tony Murray
d8d0ccd03d Common contexts for polling (#13158)
* Common contexts for polling
Don't store contexts on the device array, use the device model
Also should be easier to add different contexts later.

* rename variables for consistency
2021-08-23 01:22:28 -05:00
Tony Murray
54964e0c42 Release script updates (#13161)
add mibs category
revert changelog when exiting to prevent double log
2021-08-22 19:46:06 -05:00
Tony Murray
e5e2633fbb Bump version to 21.8.0 2021-08-22 15:49:45 -05:00