* add lnms_return_optimizer
* add compression test using zfs-v1
* minor style fix
* save the original output if not json
* replace gzinflate with gzdecode as apparently that does not require yanking the header
* Minor comment cleanup. Also note it in the application notes as well.
* update docs on how it is called
* update the spelling of it in a few places
* and a few more
* dev docs updated a bit
* the suricata extend has native support for this now
* add exception handling for base64 and gzip decoding failure
* minor cleanup for new exceptions
* minor misc changes
* minor formatting fix
* more phpdoc tweaks
* minor formatting tweak
* remember to actually include the new exceptions
* more phpdoc tweaking
* correct name in JsonAppGzipDecodeException
* add debug and verbose output
* style fix
* not base64 is it starts with a line with only a integer
* Added support for Ubiquiti UFiber OLT
* Fixed php files with port detection
* Added missing MIB file
* Fixed test data
* Fixed php script to detect ports compatible with php 8.1
* Fix styleci
* Enforcement of new control styleci
* Apply fixes from StyleCI
* Port detection override
* Changed all "Entry" to "Table".
Co-authored-by: StyleCI Bot <bot@styleci.io>
* 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>
* 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>
* 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>
* 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...)
* 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>
* 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>
* 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>
* 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
* 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>
* 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.
* 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
* 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>