793 Commits

Author SHA1 Message Date
Orsiris de Jong
c149ce0b3a Python log mysql connection errors and harden config retrieval (#12058)
* Make usage of logger, also harden exception logging

* Make usage of hardened command_runner

This is a hardened version of subprocess.call which handles timeout, encoding and various errors that may happen during execution

* Remove unused exception logging

* Fix bogus exception logging

* Rename exception to match log line

* Make command_runner pylint friendly under Unix

* Add copyrights to my parts of code
2020-11-23 00:35:49 -06:00
Olen
4bdcb7d88e IRC Adding floodcontrol. Better alerts (#12141)
* Adding floodcontrol. Better alerts

* Code cleanup

* Code cleanup take 2

* Deduplicate code for sending alerts

* Keeping PRs in sync

* this->sendAlert...

* Allow filtering by hostname in ".log" command

* StyleCI

* StyleCI
2020-11-23 00:35:19 -06:00
Tony Murray
7ed34c889e Distributed Poller improved validation (#12269) 2020-11-23 00:33:56 -06:00
Tony Murray
8ee9d0cfb7 Fix model observer registering multiple times (#12323)
* Fix model observer registering multiple times

* remove unused import
2020-11-18 20:21:04 -06:00
Jellyfrog
cfd9dce620 Convert Virtual Machine pages to Laravel (#12287)
* Convert Virtual Machine pages to Laravel

* wip

* wip

* wip

* wip

* wip

* wip

* delete

* wip

* wip

* move powerStateLabel
2020-11-11 01:15:20 +01:00
PipoCanaja
2b5da1ef05 VRP NAC polling optimisation (#12279)
* Only poll the OIDs needed

* style
2020-11-07 22:31:04 -06:00
Tony Murray
25722bbbd5 Faster initial database creation (#12297)
* Faster initial database creation
Add db dumps to improve initial db migration
On my test system 13s -> 7s, a 46% reduction.
Should help out a lot on systems like RPi

* lnms schema:dump command

--snapshots saves db snapshots, otherwise it saves the yaml

* fix style

* fix timezones...

* not working with in-memory db yet
remove build.sql
2020-11-06 01:19:15 +01:00
abrezinsky
240edd2143 Use a proxy server for the PagerDuty transport. (#12294)
* Use a proxy server for the PagerDuty transport.

We don't use the get_guzzle_proxy() function since tcp:// doesn't work
with all of the HTTP transports that Guzzle supports.  Instead we use
the standard get_proxy() function.

Tested against Squid

* formatting only
2020-11-04 15:03:48 +01:00
Tony Murray
0ac05fda69 Bump version to 1.69 2020-11-01 21:25:18 -06:00
Tony Murray
399858e5b5 fix permissions issue (#12274)
fixes #12272
2020-10-29 07:54:09 -05:00
Tony Murray
4746c3f9d0 Fix permissions bug in IRC (#12266)
* Fix permissions bug in IRC
Rename Permissions class to remove confusion with the Facade

* Fix style
2020-10-28 16:07:03 -05:00
Tony Murray
0fbd60416f snmpwalk_cache_oid() handle multiline strings (#12254)
* snmpwalk_cache_oid handle multiline strings

* remove useless function

* some output has no space after equals

* airos-af-ltu use hr processors

* don't try to append with empty strings

* fix changed test data due to fix

* revert smartax

* better regex
additional check
2020-10-24 22:56:01 -05:00
Tony Murray
d314f6429a Attempt to fix dispatcher crash on restart (#12257) 2020-10-24 21:13:59 -05:00
Jellyfrog
780e74b0e1 Remove legacy password algoritms and move to Laravel standard. (#12252) 2020-10-23 09:56:17 -05:00
Hayden
397a10e73f new sensors for siteboss OS + new sensor type: percentage (%) (#11958)
* split siteboss 530 and 550 into multiple OS

* add more sensors to siteboss550 and new Percent sensor

* fix contact closure event state values

* split os polling for siteboss to siteboss530 and siteboss550

* add test unit for siteboss550, rename test unit for siteboss to siteboss530

* refactor siteboss os polling to \Librenms\OS

* implement OSPolling to Sitebos550

* force save in pollOS() to keep custom sysName during polling

* updated unit test

* update device graphs

* remove pollOS and extra save()

* siteboss550 no longer extends OSPolling

* update siteboss550 test data

* update discoverOS() to match recent os discovery changes

* styleCI changes

* fix siteboss hardware discovery; add check to OS polling if os_group .inc file exists

* collapse siteboss to single OS, implement siteboss sensors in advanced discovery

* add siteboss unit tests

* removed unneeded OS disco defs

* styleCI changes

* more styleCI changes

* split siteboss os to siteboss530 and siteboss550

* split siteboss os to siteboss530 and siteboss550

* move php polling back into yaml

* keep original siteboss OS name

* resave snmp data for siteboss OS

* resave snmp data for siteboss550 OS
2020-10-20 19:11:12 -05:00
Jellyfrog
6416de5bd3 Add space between manufacturer and hardware (#12233)
`SupermicroX9SRL-F` => `Supermicro X9SRL-F`
2020-10-20 13:27:48 +02:00
Tony Murray
a0f91de9b2 Capture OSPF test data (#12215) 2020-10-19 09:35:41 -05:00
Yuwei Ba
fd2c1361ef Update Telegram.php (#12228)
Return Telegram response body when failed so users will know where went wrong, bad template etc.
2020-10-19 09:27:01 -05:00
PipoCanaja
7033724207 Check group os file exists before inclusion (#12227) 2020-10-19 12:23:44 +02:00
Tony Murray
6cd42b3ee0 Fix Oki LAN OS info (#12213)
* Fix Oki LAN os info
fixes #12207

* Add test data and some bonus info
2020-10-16 15:07:29 +02:00
Tony Murray
292d6a0fdb permissions query fixes (#12220) 2020-10-15 20:38:26 -05:00
Tony Murray
1e4702fa4f Support multiple daily process locking backends with distributed polling (#11896)
* Implement locks in the file cache

* Replace custom locks

* implement restore lock
Used when re-hydrating

* remove legacy use statements

* Add class descriptions

* Fix style

* Default to database cache driver

* missed cache_locks table
prevent chicken-egg issue

* style fixes

* Remove custom file lock implementation

* missed items from file cache

* Update schema definition
hmm, other schema noise must be from manual modification as this is generated from a freshly migrated db.

* require predis, it is pure python, so no harm in adding

* and set predis as the default client
2020-10-07 07:36:35 -05:00
RobJE
e52531fba4 Ircbot fix (#12192)
* send alert to channel, do not send channel key

* correct indentation, use spaces not tab
2020-10-06 21:07:49 +02:00
Jellyfrog
b5d94c38a6 Add support for Supermicro hardware/serial discovery (#12176)
* Add support for Supermicro hardware/serial discovery

* add tests

* prefix with supermicro

* Update ServerHardware.php

* Update linux_supermicro.json

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-10-06 01:16:29 -05:00
RobJE
c2db8f3c58 add a bunch more Brocade Ironware devices (#12191) 2020-10-06 01:01:14 +02:00
Tony Murray
88b40c3d6c All os detection now uses Yaml (#12186)
* All os detection now uses Yaml
Move OS detection code into the Core module.
Defer all OS with snmp queries.
Add snmpwalk option.
Port ubnt and mobileiron to yaml.

* Silly ide refactor
2020-10-05 14:26:37 +02:00
Tony Murray
210be6266e Yaml support to translate sysObjectID to get hardware (#12187)
* Yaml support to translate sysObjectID to get hardware

* restore ironware behavior

* ...
2020-10-05 13:50:28 +02:00
Olen
ba636e9617 IRC Add simple tag-parsing of colors and highlights in alerts (#12138)
* Add simple tag-parsing of colors and highlights in alerts

* Fixing a few CodeClimate-issues

* Fixing a missing ;

* Fixing some more typography

* Whitespace...

* Deduplicate code

* Missing ; - too much python lately...

* Fix end of function name

* Simplifying sendAlert a bit

* Keeping up with PR#12141

* ; again...

* this->sendAlert...
2020-10-02 07:54:12 -05:00
Tony Murray
863fb96205 Scheduled maintenance test (#12171)
* alert schedule test

* Fix style

* Skip broken tests for now
2020-10-01 03:00:42 -05:00
Adam Bishop
41ed0537b4 Fix midnight poller data loss (#11582)
* Handle more signals

* Flush buffers before exiting process
This ensures log messages aren't lost

* Restart process before jobs have finished
If there is a very log running job it can cause service restart to
take over 5 minutes.

We tweak the order of things to make sure that running processes
continue, but nothing more is scheduled.

The worst case impact is that a pollling/discovery job gets
scheduled twice, but this should not be a big issue - this should
only occur at most once per day.

* Remove python 3.8 feature

* Ensure that processes from the previous invocation are reaped

* Correct typo's

* Attach subprocess descriptors to /dev/null

Occasionally, PHP would throw a fit and crash when its stdout went
away. To avoid this, we attach stdout to devnull.

This means we lost output of daily.sh - but this is already recorded
in $LOGDIR/daily.log

* Don't immediately schedule long running jobs

To avoid the situation where the maintenance reload happens or a sighup,
then a second long running job is immediately started, we wait
(`last_[poll/discovery]_timetaken` * 1.25) seconds before scheduling
any jobs.

* Add `psutil` to requirements

* Add support for "systemctl reload" to the unit files

* Add a fallback for systems that don't have psutil

* Reduce CPU load when psutil is not installed

* Don't avoid double polling by extending the timeout

This shouldn't happen due to locks

* Remove fallback option

* Remove extra variable

* Fix issue introduced during rebase

* Fix issue introduced when fixing issue introduced during rebase

* Make psutil optional
2020-09-29 23:50:40 -05:00
Olen
a8ca361acd Add missing setting of channels to join (#12160) 2020-09-29 23:12:09 -05:00
Tony Murray
90d0d46dfb Bump version to 1.68 2020-09-29 22:16:05 -05:00
Tony Murray
9b4f8931a3 Windows detect newer versions (#12164)
* Fix Window hardware info flapping

* add description

* Missing features field

* Rename hardware method

* Updated test data
2020-09-30 01:01:43 +02:00
Tony Murray
93e43d09bc Update dev:check style to use php-cs-fixer (#12132)
* Update dev:check style to use php-cs-fixer

* dont override default paths

* Update .php_cs

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2020-09-23 20:54:00 -05: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
PipoCanaja
0e0e80c827 More eventlogs for snmptraps (#12112)
* Allow detailed trap display and inform user about snmptrapd misconfiguration

* Documentation update

* Documentation update

* Documentation update

* CodeClimate

* CodeClimate

* ChangeRequest PR

* Fix tests

* config_definitions

translation

doc

* styleci

* lnms translation generate after npm-install
2020-09-23 17:00:02 +02:00
Olen
aada69cd64 IRC Add more logging and debug info (#12140)
* Add more logging and debug info

* Code cleanup

* Code cleanup take two
2020-09-23 13:38:42 +02:00
Olen
0f272e342e IRC: Don't set nick on each tick (#12139)
* Trying harder to regain nick

* Code cleanup

* remove extra nickchange
2020-09-22 19:29:54 +02:00
Jellyfrog
41729d72eb Apply fixes from StyleCI (#12142) 2020-09-22 14:48:51 +02:00
Jellyfrog
1d23421ba1 Set PHP 7.3 as minimum supported version (#12118)
Needed by Laravel 8
2020-09-22 07:41:26 -05:00
Olen
944d7c9ef9 List external commands in help. Allow reload of external commands (#12137) 2020-09-22 14:34:01 +02:00
Olen
4023baf899 Increase the read-buffer as 64 bytes can be a little small (#12136) 2020-09-22 14:32:08 +02:00
Olen
9abec91cfd Remove unused "irc_chan". Renamed to "irc_alert_chan" (#12135) 2020-09-22 14:31:39 +02:00
Olen
19aaf43605 Add some variables to the init of the class (#12134) 2020-09-22 14:30:54 +02:00
Jellyfrog
29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog
0d56bbd946 Apply fixes from StyleCI (#12123) 2020-09-21 15:51:53 +02:00
Jellyfrog
82f43cb98d Apply fixes from StyleCI (#12120) 2020-09-21 15:40:17 +02:00
Jellyfrog
77c531527c Apply fixes from StyleCI (#12117)
* Apply fixes from StyleCI

* Disable style check
2020-09-21 14:54:51 +02:00
Tony Murray
941037e44e Convert OS discovery to new style (#12099)
* terra

* airos

* port cisco os polling
old wwan polling was broken and deprecated anyway

* enterasys

* Brother, a few changes

* AW Plus

* Fabos

* set expected test data

* 3com

* Adva FSP150

* advantech

* airos-af

* aix

* akcp

* allied

* allworx and missed mibs

* anyos

* fixup some zyxel shared stuffs
zywall graph polling

* aos

* apc

* apex

* apsoluteos

* fix copyrights

* arris

* arris

* aruba-instant

* ArubaOS

* Ascom

* asuswrt-merlin, ats

* audiocodes

* avocent

* avtech

* barracuda

* binox

* boss

* canonprinter

* cdata

* ceraos

* ciena-waveserver

* fix 3com

* fix airos

* fix brother yaml?

* fix aos more

* fix and improve apc

* fix arista test data

* yaml discovery (basic)

* cimc

* mib not used

* remove old discovery file

* ciscosat

* ciscosb fixes + improvements

* comware

* ctm

* cumulus

* cxr-ts

* cyberoam-utm

* cyberpower

* dahua-nvr

* dasan-nos

* datadomain

* dcn-software and fallback oids

* dd-wrt

* dell-laser

* d*

* e* and location

* forti, post processing, oid coalescing

* Freebsd array of sysDescr regex

* finish f*

* g*

* h*

* i* WIP

* i*

* Junos

* j*

* k*

* unix refactor previous to yaml more
inject $device

* fixes

* fixes

* l*

* m*

* n* ability to set other fields in regex
tnmsne polling to eloquent

* o*

* p*

* q* + bonus calix

* r*

* s* WIP

* s*

* t*

* u*

* v*
rework vrp to yaml (hybrid)

* w*

* x*

* z*

* a* easy no-data

* fixes

* style fixes

* missed ApexPlus

* fix signature

* Add missing location data

* rename getDevice functions

* add new cisco ftd data

* update docs

* revert sill snmp format

* fix snmp options

* update for new smartax test data

* rebase dsm

* fix voss
2020-09-18 15:12:07 +02:00
TheGreatDoc
935f9b924d Synology DSM: Moved to yaml discovery (#11962)
* Synology DSM: Moved to yaml discovery

* Fix styleci issues + sensors indexes to match php ones

* Fixed test

* Tests on DS214se

Tests on DS214se

* remove ds214

* Update dsm_ds916.json

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2020-09-18 00:51:02 -05:00