2481 Commits

Author SHA1 Message Date
Tony Murray fb489f61ed Fix cipsec-tunnels ftd bad data causes error (#14366)
fixes #12393
2022-09-18 12:15:38 +02:00
Tony Murray 15fd7d0653 Handle null in unix-agent (#14358) 2022-09-16 15:44:41 +02:00
PipoCanaja 53bfb24ef9 Migrate xDSL code to module, and add support for VDSL2 MIB (#14207)
* use component to discover if xDSL polling is needed

use component to discover if xDSL polling is needed

* Components OK, Polling in correct files, no DB for VDSL

* GUI

GUI_suite

* per port as well

* rename

* interface listing

* draytek_snmpsim

* fix arraymerge

fix names and max value

* schema

schema

style

* remove one dbFetchRows

remove 2x dbFetchCell

style

style

remove Legacy dbFetchRow

tests

tests

eloquent

more eloquent

more eloquent

one more gone

* fix properties access

eloquent_insert_update

style

tests

tests

tests

tests

* tests

tests

tests

* adslLineCoding

* Models

* fix not nullable cols in DB from code

default values

typo

rename

typo

schema

fix

fix

vdsl fix now

typo

typo

fix size

fix size

* Power values for VDSL

Power values for VDSL

Power values for VDSL

DB

* cleanup

* Rrd::checkRrdExists

* always enable DSL discovery

style

* xdsl module

* cleanup and move to Module

cleanup and move to Module

cleanup and move to Module

cleanup and move to Module

* Fix display

* fix polling and tenth

* remove legacy poller

* Style and Cosmetics

Cosmetics

Cleanup

* Translations

Translations

* exists

exists

* add test support for xdsl

* remove last component call

unused

* translations

* remove non standard onclick event on xdsl line

* Update Discovery Support.md

Update Poller Support.md

toner_gone

* Notification for removal of lnms config:set enable_ports_adsl true

* enable on devices with potential DSL interfaces

* tests are working now

fix teldat tests

* os_schema

* teldat

* move to new module structure

* move to new module structure

* wrong dump function

* wrong dump function

* laravel_through_key hidden

* Update notifications.rss

* Update notifications.rss

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-09-07 19:29:17 -05:00
Tony Murray c3f31c14e0 Handle connection timed out errors in unix agent (#14286)
* handle connection timed out errors in unix agent

* Update unix-agent.inc.php
2022-09-06 12:00:35 -05:00
Tony Murray 09c6c725a1 Check if polling module exists (#14289)
Users have old configurations defined, do not try to include them and post a message about it
2022-09-05 09:22:59 +02:00
PipoCanaja 5b10d5a1ce Quick fix for cipsec-tunnels Cisco implementation (#14232)
* fix for cipsec
* style
2022-08-24 23:04:54 +02:00
Tony Murray 603713e87c Juniper bgp-peers cleanup (#14236)
Also found a device bug.  Held off on refactoring everything...
2022-08-24 14:45:59 -05:00
Tony Murray db54161b10 Fix os_group unset errors (#14238)
Instead of requiring an isset check for os_group, just set it, but to null
valid isset checks will still work right since it is now set to null.
2022-08-24 14:45:43 -05:00
Tony Murray 33461e6092 firebrick bgp polling was broken (#14237)
It checked the wrong os variable, so was never run
Other option is to delete the code
2022-08-24 14:29:55 -05:00
Tony Murray 34163703fb Percentage calculation helper (#14235)
* Percentage calculation helper
Helper function to prevent divide by zero mistakes
Replace all percent calculations

* style
2022-08-24 21:01:54 +02:00
Jellyfrog 1dbab5ac7e Error reporting (#14190)
* Error reporting

* Move code to ErrorReportingProvider
Enable reporting of error (and warning) messages.
report module exceptions

* Restore flare key
Not needed to set late anymore.  We set up filtering before it is initialized.

* Remove unnecessary and maybe double Flare report

* lint

* Cannot use typed properties yet, use phpdoc

* fix handleError return type

* Filter both exceptions and reports (so we don't miss any)
Consolidate the check if reporting should be enabled

* Cache reportingEnabled check for the runtime

* Split out middleware to improve readability
Logging of why reporting is disabled
Fix reportingEnabled cache

* Style

* Return some user data

* Change to class based middleware, it looks nicer

* Fix error page error id report, add url.

* also rewrite intended url

* remove link

* Move ignition to production and update flare-client

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-08-24 00:33:28 +02:00
Peca Nesovanovic c3545ce860 memcached undefined vars (#14225) 2022-08-23 13:46:11 +02:00
Félix Bouynot b643a5033f Add Cisco Flash storage support (#14219)
* Add Cisco flash storage discovery

* Add Cisco flash storage polling

* LibreNMS indentation

* Move file to storage module

* move file to storage module

* Rename and check

Rename the file and add a check only against Cisco devices

* Rename file

* Change parameter from mib name to file name

Co-authored-by: Tony Murray <murraytony@gmail.com>

* Add a first test file for review - Nexus C9340 NXOS ver 10.2.2

* Add first device test files for review - Nexus 9340 ver 10.2.2

* Add Cisco IOS 15.2.7 on C2960X snmprec file

* Add Cisco IOS 15.2.7 on C2960X test data file

* Create nxos_n5548-7.3.3.snmprec

* Create nxos_n5548-7.3.3.json

* Update nxos_n5548-7.3.3.snmprec

* Update nxos_n9340-10.2.2.snmprec

* Update ios_c2960x-15.2.7.snmprec

* Update nxos_n5548-7.3.3.json

* Update nxos_n9340-10.2.2.json

* Update ios_c2960x-15.2.7.json

* Update cisco-flash.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-08-23 11:31:47 +02:00
Tony Murray 465fa3986a Fix Undefined variable/key warnings (#14134)
* Fix Undefined variable/key warnings

* massage for test data

* restore set_numeric, only generates noise

* Fix ucd storage used (apparently free is not stored in discovery...)
2022-08-21 16:23:43 -05:00
Tony Murray d2a692c3c4 Fix luminato port poll (#14217)
* Fix luminato port poll
I still don't like it, but this improves the code consistency a bit.

* better comments

* Update luminato.inc.php
2022-08-19 14:02:44 -05:00
Zane C. Bowers-Hadley 55c62b234e add Opensearch\Elasticsearch monitoring (#14053)
* add new poller

* add a missing ;

* formatting cleanup

* graph stuff and metrics move

* add rrd name

* clean up metrics/rrd def

* more metric/rrd def cleanup

* cleanup

* add basic opensearch graphs

* add opensearch to apps.inc.php

* begin work on opensearch app page

* formatting cleanup

* add translog graphs

* add a missing graph

* fix pending tasks

* add the ability to fetch the saved cluster name

* add fetching the cluster name

* correct the opensearch comment

* add combined shard stats

* add indexing graphs

* correct graph name

* correct some units as being per second

* add more graphs

* add more items for graph sets

* cleanup of units and naming... also more graphs

* more graph stuff

* change the RRD def again and define a few more graphs

* finish basic graph sets

* more graph stuff

* another rrd def change

* add more graphs

* add some more graph sets

* correct unit for c_task_max_in_time

* more graph stuff

* more graph stuff

* correct the unit

* add missing tw_time and another rrd def change

* another unit change

* add trc graphs

* more graph stuff

* add tseg graphs

* add all shards graph to both cluster items

* more graph stuff

* update opensearch app page

* add Opensearch\Elasticsearch app

* add opensearch tests

* run php-cs-fixer on two files

* add alert examples for checking cluster status

* remove an item that was accidentally added as a metric in the test but is not

* derp! thanks jellyfrog

* make it come up as Elisticsearch\Opensearch in the webui

* no longer use components, but app_data, for cluster name change

* update the web side for opensearch for using app_data

* style fix

* update opensearch for new app data stuff

* update to the new Application model

* update poller and device app page for ES/OS

* style cleanup

* update graphs

* test fix

* more test cleanup

* Update alert_rules.json

* begin work on breaking out the RRDs

* update all non-multi rrd graphs for opensearch

* update time_all

* add a unass shards graph

* correct rrd name

* should all be good now

* add missing tm stats

* Un Assigned -> Unassigned

* style cleanup

* another style fix

* remove cluster_name from saved metrics as it is not a metric

Co-authored-by: Tony Murray <murraytony@gmail.com>
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2022-08-15 14:44:20 -05:00
Peca Nesovanovic 1be8de0b24 [apps] Docker only show current containers (#14152)
* [apps] enable RRD filename filtering

* count/exists

* Switch to Applications table

* rework similar to zfs

* Update docker.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-08-07 14:50:46 -05:00
Janno Schouwenburg ebe16a79d1 Fix for number in sensor string (#14185)
* Fix for extracting sensor value from string in poller

* Remove duplicate code

* Update microsemitime.json

Co-authored-by: Maikel de Boer <mdb@tampnet.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-08-07 14:49:38 -05:00
Ambroise c807e409d9 add the possibility to monitor redis application through the unix-agent (#14182) 2022-08-07 12:05:28 -05:00
Albert Siersema 1d53679a64 fixes #14104 polling BGP peers in non-default VRF (#14105) 2022-08-07 09:22:39 -05:00
Ambroise c25629343f Fix error between application module and unix-agent (#14177)
* It seems that after the PR #14087, the variable $agent_data is not
accessible anymore in applications script.

Just add the line `global $agent_data` at script start solve this issue.

* It seems that after the PR #14087, the variable $agent_data is not
accessible anymore in applications script.

Just add `$agent_data` to the use in the applications polling script start solve this issue.

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-08-04 19:17:18 -05:00
Zane C. Bowers-Hadley b827e2bbbd add support for Sagan (#14070)
* add sagan instance fetch function

* add sagan discovery

* add sagan poller

* add sagan graphs

* add graph sources

* add sagan to apps page

* remove alert

* more app graph work

* polling fix

* re-order keys and add alert key

* correct field key usage

* add alert and fix a missing unit

* more unit fixes

* add alert status

* add alert rules for sagan

* fix a missing : after S while I am here in the json stat tool helper... also add tests

* now add the tests

* add docs

* point php-cs-fixer at two files

* remove-unneeded sagan instance fetch function

* convert to use app_data

* style fix

* apply bennet-esyoil's suggestions here as well

* update for the new app model

* convert poller to the new method

* convert the sagan device app page

* convert sagan

* doc cleanup
2022-08-04 18:12:34 -05:00
Ambroise 0f37f68bfd Add possibility to monitor the php-fpm service with the unix agent and (#14173)
not only with SNMP agent

Co-authored-by: Ambroise Rosset <ambroise.rosset@unil.ch>
2022-08-03 08:31:06 -05:00
Zane C. Bowers-Hadley 0bbcde1227 add the ability for storing app data to prevent spamming of the event log via via component usage (#14087)
* initial work on add the ability to save/fetch app data

* update to use get_app_data for ZFS

* update the poller for the new app_data stuff

* ZFS now logs changes to pools

* add schema update for app_data stuff

* small formatting fix

* add a missing \

* now adds a column

* sql-schema is no longer used, so remove the file that was added here

* misc cleanups

* rename the method in database/migrations/2022_07_03_1947_add_app_data.php

* hopefully fix the migration bit

* add the column to misc/db_schema.yaml

* more misc small DB fixes

* update the test as the json column uses collat of utf8mb4_bin

* revert the last change and try manually setting it to what is expected

* remove a extra ;

* update suricata as well

* correct the instance -> instances in one location to prevent the old instance list from being stomped

* remove a extra ;

* update fail2ban to use it as well

* remove two unused functions as suricata and fail2ban no longer use components

* style cleanup

* postgres poller updated to use it

* update html side of the postgres bits

* chronyd now uses app data bits now as well

* portactivity now uses it as well

* style fix

* sort the returned arrays from app_data

* correct log message for port activity

* collocation change

* try re-ordering it

* add in the new data column to the tests

* remove a extra ,

* hmm... ->collate('utf8mb4_unicode_ci') is not usable as apparently collate does not exist

* change the column type from json to longtext

* mv chronyd stuff while I sort out the rest of the tests... damn thing is always buggy

* hmm... fix a missing line then likely move stuff back

* style fix

* add fillable

* add the expexcted data for fail2ban json

* escape a " I missed

* add data for portactivity

* add suricata app data

* add app data to zfs legacy test

* put the moved tests back into place and update zfs-v1 test

* add app data for chronyd test

* add app data for fail2ban legacy test

* update zfs v1 app data

* add some notes on application dev work

* add Developing/Application-Notes.md to mkdocs.yml

* add data column to it

* added various suggestions from bennet-esyoil

* convert from isset to sizeof

* type fix

* fully remove the old save app data function and move it into a helper function... the other still needs cleaned up prior to removal

* update docs

* get_app_data is fully removed now as well

* a few style fixes

* add $casts

* update chronyd test

* attempt to fix the data

* more doc cleanup and try changing the cast

* style fix

* revert the changes to the chronyd test

* apply a few of murrant's suggestions

* document working with ->data as json and non-josn

* remove two no-longer used in this PR exceptions

* ->data now operates transparently

* style fix

* update data tests

* fix json

* test fix

* update the app notes to reflect how app data now works

* app test fix

* app data fix for linux_lsi

* json fix

* minor doc cleanup

* remove duplicate querty and use json_decode instead

* style fix

* modelize the app poller

* use a anon func instead of foreach

* test update

* style cleanup

* style cleanup

* another test cleanup

* more test cleanup

* reverse the test changes and add in some more glue code

* revert one of the test changes

* another small test fix

* Make things use models
Left some array access, but those will still work just fine.

* missed chronyd and portactivity

* rename poll to avoid make it any confusion

* Remove extra save and fix timestamp

* save any changes made to app->data

* nope, that was not it

* What are magic methods and how do they work?

* fix two typos

* update linux_lsi test

* change quote type

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-07-22 16:01:55 -05:00
Tony Murray 52f0dab2f8 Sensors, convert hex to strings (#14121)
* Sensors, convert hex to strings

* Fix clickshare, it actually was returning hex

* update hpe-mapdu

* skip ict-mps sensors without valid values
2022-07-22 07:59:41 -05:00
Alban Browaeys a6bc7490e2 Fix app docker (#14080)
* docker app: polling - RRD dataset and fields value mismatch

RRD dataset definitions and fields array keys passed to data_update
have to be in the same order. There is no match based on key before
building the rrdtool update command.

Fixes mem_perc ending as NaN because it ended with a value above 100
as it was given mem_limit bytes value.

* docker app - remove misleading divider

The mem_perc and cpu_usage are already in percent, no need to divide
them by a hundred. The values were then made into milli percent or micro
percent.
2022-07-15 09:12:20 -05:00
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
mostdaysarebaddays 3b12f35b31 Update bgp-peers.inc.php (#14061) 2022-06-22 20:06:07 +02:00
David Girón 46899d1643 Custom OID processing of numeric strings with filters (#13968)
* Custom OID processing of numeric strings with filters

* Fix syntax

* Refactor ajax customoid code
2022-06-10 16:24:50 -05:00
Bennet Gallein 8fdd1be3a0 feat(apps/mysql): add error-state to non-responsive mysql-servers (#13993)
* feat(apps/mysql): add error-state to non-responsive mysql-servers

* feat(alerting): add alert-rule for offline mysql-servers

* fixup! feat(alerting): add alert-rule for offline mysql-servers

* chore(style): replaced ticks

* fixup! chore(style): replaced ticks

* feat: added migration to make app_status field bigger

* feat: moved error-detection to the application_update function

* fixup! feat: moved error-detection to the application_update function

* chore: updated schema

* chore: fix styling

* Cleaner way to handle the error states

* regex should not include OK

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-06-10 16:22:41 -05:00
Nash Kaminski acfd09287a Add support for Cisco Nexus 3550 series (formerly Exalink Fusion) devices (#13992)
* Add support for Cisco Nexus 3550-F (formerly Exalink Fusion) devices

* Refactor to refer to the Exalink Fusion as the Cisco Nexus 3550 (post m&a of Exablaze by Cisco) as well as use YAML based OS discovery

* Rename Cisco N3550 ports include

* styleci fixes to n3550 ports include

* Correct N3550/Exalink OS discovery and improve tests

* Improve N3550 OS discovery and poller support

* styleci

* Rename Cisco Nexus 3550 OS from ciscon3550 -> exalink-fusion

* Update file header
2022-06-04 15:39:21 -05:00
Bobdave 4b3f6b7235 Fix Netscaler VServer database updates during polling (#13995) 2022-05-27 14:23:06 +03: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
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 1416f46197 Remove alert keys from component for Suricata (#13959) 2022-05-06 04:06:20 +03: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
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
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
Tony Murray 964cdfbbc3 Rewrite agent packages parsing code (#13840)
* Rewrite agent packages parsing code
but less crazy

* fixes

* remove commented code

* alphabetical

* Less code duplication

* fix style
2022-03-12 14:39:58 -06:00
Guilherme Poletto 18ca4566eb New sensors for huawei vrp <tested on NE8000 platform> (#13352)
* Add EntityVoltage Sensors

* Add BoardPower Sensors

* Add Fanspeed Percent sensor

* Add Voltage_Status and Temperature_Status Normal|Minor|Major|Critical indicators, and internal Voltage and Temperature sensors

* set Minor alarm violations to warning status

* remove inconsistently applied empty lines between sections, and trailing newline that caused errors

* fetch thresholds for temperature.sensors and optical.RxPower from SNMP

* Added snmp testfiles for ne8000-m8 variant of VRP platform

* group sensors by card-identifier

* Regenerate testfiles for 5720-32x-ei

* Regenerate testfiles for the whole VRP family

* Optical Bias is reported as miliamps-mA, and not microamps-uA

* Implement divisor detection, VRP or NE8 prepended on sensor for debug-testing

* remove VRP or NE8 prependeds on sensors(put there for debug/testing only)

* use parent OIDs for walking and naming

* ignore per-slot power if unsupported

* regenerated snmp json testfiles

* sanitize bgp-peers value

* restore vrp.json test

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2022-02-14 10:05:18 +01:00
Tony Murray 2dcc70301c Fix < 0 exception in ports poller (#13732) 2022-02-02 17:31:54 +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
Henne Van Och 8f8872520a Add supervisord application (#13673) 2022-01-13 18:19:27 +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
Mark Westerterp 8a6f158ab8 fix: Add consistent output of name and app_id to Poller for all Applications (fixes #13641) (#13648)
* Add echo of name and app_id to all Applications

* Make echo not application specifc

* Fix echo

* Do spaces make StyleCI happy?

* Not spaces, but the type of quotes makes StyleCI happy
2022-01-06 12:08:52 +01:00