Commit Graph

977 Commits

Author SHA1 Message Date
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
ottorei
bc56f94f8f PagerDuty transport: Add EU service region (#13154) 2021-08-20 10:04:51 +02:00
Kevin Wallace
e981570c34 enclose IPv6 literal in [brackets] for snmpget and unix-agent (#13130)
Co-authored-by: Kevin Wallace <kevinwallace@users.noreply.github.com>
2021-08-19 18:00:06 -05:00
fbourqui
f1dc4435e3 Cleanup Port hover minigraph description when using "Interface Description Parsing" (#13143)
* Cleanup Port hover minigraph description.
Use port_descr_descr if exists or ifDescr.
Use the same generate_port_link() in:
- Devices - Ports
- Ports - All/Errored/Ignored
- Ports - "Types"

* Port-Customers, using Ajax Controller,  Util/Url

* make https://styleci.io/ check happy
2021-08-18 13:02:01 +02:00
SourceDoctor
516b27f476 adjust App String Pi-hole to project name (#13136) 2021-08-14 19:55:07 +02:00
Tony Murray
31246c6ba6 Revert "Full Python code fusion / refactor and hardening (#13094)" (#13123)
This reverts commit 9c534a1a90.
2021-08-10 15:13:05 -05:00
Orsiris de Jong
9c534a1a90 Full Python code fusion / refactor and hardening (#13094)
* Add inline command_runner library

* New service/discovery/poller wrapper

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

* Add command_runner to current requirements

* 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
2021-08-09 18:49:29 -05:00
geg347
a4a04e6f09 Adding html_entity_decode function to fix HTML encoded characters in Slack Transport Alert (#13120) 2021-08-09 18:34:43 -05:00
Tony Murray
5d691dc375 Consolidate DB version code (#13111)
* Consilidate DB version
and don't use dbConnected() function

* cleanup imports
2021-08-09 18:33:31 -05:00
Tony Murray
2b8eb74b7a Detect sending non-html emails as html (#13114)
* Detect sending non-html emails as html
and use <br /> for line returns instead of \r\n

* Fix style
2021-08-09 09:17:32 -05:00
igorek24
2f267ca739 Add SignalWire (Twilio alternative) alert transport support (#13107)
* Add SignalWire (Twilio alternative) alert transport support

* Add SignalWire (Twilio alternative) alert transport support
2021-08-05 10:26:29 +02:00
tcwarn
dedae6a0d4 Added OID for Extreme switch X350-48t to OS/Shared/Extreme.php (#13096) 2021-08-03 22:36:02 +02:00