Commit Graph

2697 Commits

Author SHA1 Message Date
PipoCanaja
1a211fb636 Revert "Add APC battery operation time polling, including display in WebUI (#14058)" (#14068)
This reverts commit 654f97c302.
2022-06-24 16:58:54 +03:00
Marek Wobst
654f97c302 Add APC battery operation time polling, including display in WebUI (#14058)
* Fetch and store upsBasicBatteryLastReplaceDate

For APC USV, sensor class is 'runtime'

* Change type string for battery's life time

* Change limits to meaningful values, remove debug output

Limits are 4 (warn) and 5 (critical) years, using our own experience.

* Add time calculation for battery life time during polling

This means that the received date is subtracted from current
time, the difference is stored as minutes, just like with discovery.

* Improve sensor description/label (again)

* Correct label for battery's life time to “operating time”

* Add test data for APC UPS to test new used OID

OID for the last battery exchange date, which is used
for calculation the operation time.

* Changes for styleCI

* Fix more files for styleCI

* Remove a duplicated empty line (styleCI)

* Update test data
2022-06-24 02:43:46 +03:00
Jellyfrog
ec349f5369 More MIB fixing (#14018)
* Split extreme mibs

* Split HP mibs

* Split juniper mibs

* Split junos mibs

* Split junose mibs

* Update Cisco mibs

* update comware mibs

* update transition mibs

* update extreme mibs

* Remove duplicate cambium mibs

* EXTREME-BASE-MIB > EXTREME-SYSTEM-MIB
2022-06-22 16:46:12 +02:00
Marek Wobst
dc3ddbaff0 Fix the parsing of the temperature unit value (#14056)
CMCIII will yield as temperate unit '°C' (or °F), which is not
'degree C'. The ° isn’t even encoded properly, so an additional
encoding is included for good measure. Both rar and encoded
values are used for the look up.

Previously these values were stored as 'state' sensor entries,
making them sadly utterly useless.
2022-06-21 17:45:27 +02:00
dennypage
8980614031 Fix use of incorrect variable to retrieve current sensor value (#14037) 2022-06-13 13:40:31 -05:00
Tony Murray
52f70d6bcf Fix printer count sensors when extra garbage. (#14014)
Remove double include
2022-06-06 23:14:10 -05:00
Nash Kaminski
c49885182f Improve support for Arista/Metamako MOS devices (#13988)
* Improve support for legacy Arista/Metamako MOS devices

* Fix indentation in license text

* Fix formatting in OS discovery

* Add hardware type discovery for Arista/Metamako MOS

* style fixes

* Implement hardware model detection for Arista MOS

* Refactor to use YAML based OS discovery

* Reformat test data for arista-mos_metamux48,  0.16 code

* Enable lm_sensors polling of Arista MOS devices

* Remove bgp-peers data from arista-mos test files
2022-05-24 10:45:20 +02:00
Anton Lundin
f40693b503 Workaround issues with lldp information from GS108Tv1 (#13971)
The GS108Tv1 doesn't present the same information over snmp as they do
over lldp. This tries to detect such a remote device and figure out
which remote port we actually should map it to.
2022-05-23 13:10:28 +03:00
Charly Forot
e34e6e07a5 BGP unnumbered support for Cumulus (#13785)
* Add Cumulus-BGPUN-MIB
* Add bgpPeerIface column into bgpPeers table
* update mysql database for BGP unnumbered support
* Rename BGP unumbered MIB for Cumulus
* remove duplicate Cumulus BGPUM mib
* Use custom BGPUN minb for Cumulus while polling bgp peers
* Update BGP peers discovery for Cumulus with unumbered support
* Update BGP peers polling for Cumulus with unumbered support
* Correct typing error
* Add BGP unumbered Cumulus tests units
* Remove unused SQL file
* Update migrations databse by adding bgpPeerIface into bgpPeers table
* Correct spacing error for continous integration
* Update DB column bgpPeerIface to point to ifIndex
* fix: bgpPeerIface column exist
* fix: use Eloquent instead of dbFetch deprecated
* fix: delete unused namespace
* fix: type bgpPeerIface
* fix: add root cumulus mib lacking
* move root cumulus mib into mibs/
* fix: missing root cumulus MIB
* fix: bgpPeerIface not expected for other OS
* fix: add bgpPeerIface into json tests for other OS
* fix: add bgpPeerIface for poller tests OS
* add relathionship between bgpPeers and Ports tables
* Revert "fix: bgpPeerIface not expected for other OS"
This reverts commit f979482106.
* fix: HasOne not imported
* fix: CI php placement of use line
* fix: bgpPeerIface has not default value
* updates way to fill bgpPeerIface
* remove relationship between BgpPeer and Ipv4Address/Ipv6Address
* fix: CI php syntax
fix: CI php syntax
fix: CI php syntax
fix: CI php syntax
* updates cumulus tests
* updates bgpPeerIface already filled
* fix : bgpPeerIface wrong ifIndex
* fix: update cumulus test for polling bgpPeerIface
* fix: CI PHP syntax
* fix: update cumulus test for polling bgpPeerIface
* fix: update cumulus test for polling bgpPeerIface
* Fix Fortigate Test
* Tests
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2022-05-22 14:27:28 +02:00
Marvin Kuurstra
28a5811923 Fix polling and discovery of FortiGate cluster sensors (#13980) 2022-05-20 00:01:43 +03:00
Tony Murray
5076deccf3 Improve the efficiency of some queries (#13974)
* Improve the efficiency of some queries
Mostly by switching from whereIn to whereIntegerInRaw.
This inserts integers directly into the query instead of using placeholders (also escapes them)

also remove extra json_encode/json_decode in PingCheck

* Fix return types

Probably will result in some missing baseline exceptions.

* Update PingCheck.php

* whitespace
2022-05-16 09:57:58 +02:00
Zane C. Bowers-Hadley
cdf457fbc5 add Suricata monitoring (#13942)
* add poller

* add a generic alert graph

* add support for .total

* add the initial work on the suricata app page

* add applayer flow sources

* more rrd work and add more fields

* add a missing graph to the suricata page

* add suricata to the apps page

* all working now for suricata

* add some suricata alert examples

* all done with the php

* update the application docs for Suricata

* add another note about Suricata stats in the docs

* add the test file

* add the test JSON

* remove a unneeded newline from the appication docs

* correct the type uptime type

* packets graph should by packets/sec

* minor formatting cleanup

* one more minor formatting cleanup

* shot in the dark to see if something fixes the angry linter

* fix snmpsim file

* add metrics

* add values to the metrics

* add a missing comma to the json

* add a missing line to snmprec and cleanup json a bit

* a few more minor changes to see if this makes it happy... regened via scripts/json-app-tool.php

* see if this will make it happy

* add suricata to app discovery and hope that fixes it... take a shot in the dark as to why the linter errors strangely on two of the files

* fix json

* add a missing ] to the json

* rename two graphs so it does not trigger one alert and add a missing metric

* whoops, *_alertString is not a metric
2022-04-25 20:30:49 -05:00
Peca Nesovanovic
dd6c8388d9 [mikrotik] fixed RouterOS ipv4/ipv6 routes (#13902)
* fixed RouterOS ipv4/ipv6 routes

* refresh test data

* Added allowUnordered() to route/ip-forward-mib

* move allowUnordered to YAML

* ipCidrRouteEntry -> ipCidrRouteTable
2022-04-23 08:42:24 -05:00
Tony Murray
d026e9f0cc Allow unordered OIDs (global and per-os) (#13923)
* Allow unordered OIDs (global and per-os)
Fix global no_bulk setting, was ignored before
(to fix global needed to rework Config::getCombined() a bit to allow a global prefix to be specified)
Removed invalid use of getCombined and updated tests

* fix whitespace

* update os schema
2022-04-21 21:49:26 -05:00
Tony Murray
849fa21ea0 Revert "Fiberstore Network Management Unit (#13813)" (#13925)
This reverts commit c5502789b9.
2022-04-15 12:22:36 -05:00
Jonathan J Davis
c5502789b9 Fiberstore Network Management Unit (#13813)
* FS OAP OEO and EDFA mibs

* definitions and discovery yaml

* current dbm state temperature and voltage updates

* update on poller and discovery modules

* test data

* removing unneeded pollers and discovery modules as requested

* update to os test data

test data now reflects fs-nmu details instead of module details as module may not be present at previous oid or module may not be present at all in the device

* OS update and Test Date Updates

* channels numbers

* removal of default true poller and discovery modules

* reintroduced previous OEO module data

* StyleCI fixes

* Update fs-nmu.inc.php

* Update fs-nmu.inc.php

* Update fs-nmu.inc.php

* Update fs-nmu.inc.php

* Update fs-nmu.inc.php

Co-authored-by: Neil Lathwood <gh+n@laf.io>
2022-04-15 10:30:41 -05:00
Tony Murray
acdf51deca Print full error message in poller/discovery output (#13903)
It was previously missing the file and line number the error occurred on.  Only showing the error message and stack trace before.
2022-04-09 14:21:10 -05: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
eskyuu
c13975524c Fix an issue with the APC current discovery (#13837)
* Fix an issue with the APC current discovery

* Formatting fixes

* Formatting fixes

* Added test data for APC PDU sensors
2022-03-13 22:55:08 +01:00
Gene Dela Rosa
85b19ce99e Add configuration support for IPMIv2 Kg key (#13845)
* Add support for IPMIv2 Kg Key in device settings

Some devices require that the Kg key be specified. An example would be a server of mine, a Cisco C220 M3. 

Otherwise, it would error out with `Error: Unable to establish IPMI v2 / RMCP+ session`. 

With verbose output enabled, the connection attempt would stop at `RAKP 4 message has invalid integrity check value`.

* Add Kg key support in Poller

* Sanitize Kg key from debug output

* Added Kg key support for discovery process

And it seems to work like a charm. New fields, such as fan tachometers, were added in automatically.

* Applying StyleCI changes
2022-03-13 22:51:55 +01: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
64b0c3faa3 [comware] dropped dbfetch from discovery/sensors (#13796)
* [comware] dropped dbfetch from discovery/sensors

* ci

* DeviceCache::getPrimary

* remove unneeded model

* Update includes/discovery/sensors/temperature/comware.inc.php

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

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2022-03-10 21:31:40 +01:00
Loic pailhas
a04f4bce50 fix db delete on cisco-vrf-lite discovery (#13823) 2022-03-08 07:18:45 -06:00
Peca Nesovanovic
700c6ae9c3 [pbn] dropped dbfetch from discovery/sensors (#13789) 2022-02-15 22:39:23 +01:00
Peca Nesovanovic
8b831f5c6f [junos] dropped dbfetch from discovery/sensors (#13784)
* [junos] dropped dbfetch from discovery/sensors

* ci
2022-02-14 23:06:34 +01:00
Peca Nesovanovic
ee00f59ce6 [terra] support for sdi410c / sdi480 (#13759)
* [terra] support for sdi410c / sdi480

* remove debug
2022-02-08 23:27:40 +01:00
Peca Nesovanovic
a3bd1b9a69 [mikrotik] added ipv6 route discovery (#13737)
* [mikrotik] added ipv6 route discovery

* ci
2022-01-31 18:00:30 +01:00
Tony Murray
29bd6789cb Stp module rewrite (#13570)
* STP module rewrite WIP

* Finish rewrite

* Ignore disabled and log root/topology changes

* Remove interfaces for now

* fix style

* Lint fixes

* Document ResolvesPortIds and hide map functions

* whitespace fixes

* Revert to stpInstances in case someone writes mstp support

* missed one

* phpstan fixes

* Handle table and oids separately

* forgot to register observer

* Test data and correct non-table handling in SnmpResponse->table()

* update test

* test data

* revert aos7 silly things

* minimal polling

* Update test data

* order ports_ntp and rename new field to port_index

* forgot the db_schema

* revert ciena-sds port things

* MSTP support, maybe

* Adding test data

* Filter bad lines instead of discarding the entire snmp response
and capture fixes and test data

* fresh data

* add os data

* update data, ignore unfound ports, obviously bad device implementation.

* fixes

* Ignore context files in os detection test

* Remove empty table data

* add ciena-sds vlan

* designatedCost column is too small

* Update stp webui

* Refactor code to interfaces, to allow vendor mibs

* update schema

* fix issues added by abstraction

* STP fixes

* Default to no context for vlan 1

* never store vlan 1

* Update test data

* remove eltex brokenness

* fix style

* fix stan

* Fix Rewrite MAC to Hex padding with floats

* fix sqlite migration
2022-01-30 16:28:18 -06:00
Wheel
2dbfdda717 Ubiquiti Airfiber60 (#13680)
* Add ubiquiti Airfiber 60

* New AF60 data and MIB

* Stylci fix and small additions

* Update test data

* Stylefix

* Remove the weird ubiquity oids containing encoded mac addresses

* Updated test data

* Remove more complex sensors for now to be added after the conflict airos airos-af60 is solved

* Fix hardware and OS

* To be verified is this is the most practical / clean way of doing it

* Advanced wireless and MCS state sensor

* Fix link capacity multiplier and active link

* Test data update fix lint

* Maybe better
2022-01-29 21:10:45 -06:00
Jellyfrog
658fd7972b Fix ups-nut check (#13722)
Fixes #13719
2022-01-28 12:07:34 +01:00
Peca Nesovanovic
fb90b1813f added new sensors to mes23xx (#13671)
* added new sensors to mes23xx

* ci

* copy/paste error

* ci

* cleanup + testdata

* yaml

* yamlnew

* added [no_bulk] for PoE discovery

* fully qualified OID name
2022-01-20 08:41:47 -06:00
ilGino
5bc0da4c97 Small text change for misspelled Virtual (#13686)
Line 24, changed Virutal to Virtual.
2022-01-19 01:06:08 +01:00
TechieDylan
15b0c2d665 changing the version variable for determining device devisor for determining the right mikrotik ups runtime (#13678) 2022-01-16 08:32:54 -06:00
Tony Murray
6aef4a8e62 VRP BGP fixes (#13675)
Fix SQL Invalid parameter number
Fix an undefined variable
2022-01-16 08:32:36 -06:00
Renaud R
ca86a17a12 fix os name on the entry condition (#13578) (#13580) 2022-01-09 18:46:22 -06:00
Anton Lundin
054deb1680 Workaround Linksys/CiscoSB always mapping to g1 (#13595) 2022-01-09 10:37:52 +01: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
Peca Nesovanovic
528d8e55b4 initial Eltex-mes IPv6 address discovery (#13594)
* initial Eltex-mes IPv6 address discovery

* styleci

* add Eltex-mes devices in group: radlan

* merge two OIDs

* styleci

* ipv6 normalize
2021-12-03 15:48:48 -06:00
Peca Nesovanovic
d4022e2d4e ipv6 discovery switch to new DB syntax (#13591)
* ipv6 discovery switch to Laravel

* styleci

* cleanup

* last dbfetch removed

* styleci & unneeded IF

* switched to updateOrCreate
2021-12-01 22:52:37 -06:00
Peca Nesovanovic
e23ad7947d q-bridge-mib, discover missing VLANs, v2 (#13569)
* q-bridge-mib, discover missing VLANs v2

* copy/paste typo fix

* Use SnmpQuery

* Switch from Vlan_x to VLAN x

* Cleanup
Revert accidental change
Incorrect table depth (even though the outcome is the same)
And test data that was explicitly Vlan_

* fix test data

* update routeros_vlans

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-12-01 07:24:35 -06:00
Peca Nesovanovic
21edc086ca split Eltex-mes OS to mes21xx / mes23xx. + few improvements (#13544)
* split Eltex OS to 21xx and 23xx

* styleci & typo

* yaml cleanup

* removed MIBs from first release

* tidy up yaml

* test data
2021-11-24 21:34:48 +01:00
Martin22
382ef6219b Fix discovery and pooling Racom Ray2 (#13553)
* Fix discovery and pooling

* Added test data

* Removed author

* Fix

* Discovery transcribed into json

* Fix

* Fix2

* Fix3
2021-11-24 18:18:12 +01:00
banachtarski-91
68fa373b77 ios-fdb-table-fix -- Fixed misnamed dictionary keys for dot1dTpFdbPort data (#13559) 2021-11-23 23:50:55 +01:00
Tony Murray
4a5836f64e Catch all module errors (#13542)
* Catch all module errors
As of PHP 7.1, we can now catch errors and exceptions by catching throwable.
Also, log the errors in a consistent way with the entire stack trace

* Log event and improve messages

* call from facade because event might not exist on logger
2021-11-23 09:52:52 +01:00
Tony Murray
c79b187d72 Poller rewrite (Try 2) (#13525)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts

* Catch exceptions in device ip lookup

* Revert accidental snmp.inc.php poller target change
(should have been ?: not ??)
2021-11-17 19:23:55 -06:00
Tony Murray
c05a7a57a0 Remove unused buggy arp_discovery code (#13529) 2021-11-17 22:10:54 +01:00
Tony Murray
f8764ddcb5 Revert "Poller command rewrite (#13414)" (#13524)
This reverts commit 1752d1efd4.
2021-11-16 21:40:29 -06:00
Tony Murray
1752d1efd4 Poller command rewrite (#13414)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts
2021-11-16 16:59:46 -06:00
Tony Murray
666638eeaa Fix bad snmp context option (#13497)
* Fix bad snmp context option
Just port queries to SnmpQuery and remove bad code to prevent new usages

* Allow unordered

* add stub on Mock
2021-11-12 12:40:37 -06:00
Jonathan Smith
5b7aff1995 Update apc.inc.php (#13506)
Fixed the OID for the non HighPrec Load, which should be 4.2.3.
2021-11-12 10:37:17 -06:00