18 Commits

Author SHA1 Message Date
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
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
Jellyfrog 29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog 2fc3a21211 Apply fixes from StyleCI (#12121) 2020-09-21 15:43:38 +02:00
Martin d68d8a81df Prevent fail2ban from filling eventlog on every poll (#10225)
Either the jails in the array or the respective indexes get rearranged on every poll. Adding only the values (jail names) without the indexes solves the issue. I tried also asort() which gives the same behavior.

Details: https://community.librenms.org/t/eventlog-filling-with-fail2ban-jail-component-logs-since-latest-stable-update/7902/10
2019-05-14 08:09:41 -05:00
Tony Murray 1b46d87b0a Fix fail2ban jails eventlog spam (#10066)
The previous sort preserved keys, which we don't want
2019-04-03 21:49:15 -05:00
Tony Murray c305d2b520 Fixed fail2ban jails eventlog spam (#10061)
Sort the jails before saving so it always matches.
Not sure why it would be different order, but this fixes the spam in any case.
2019-04-03 23:21:27 +01:00
VVelox bc2a0e6c42 check if the proper variable is empty (#10017) 2019-03-24 18:40:37 -05:00
Tony Murray 184f5a5f99 Fix invalid json in test data (#9015)
* Fix invalid json in test data
Most simply needed the syntax fixed
fail2ban needed updated data (added non-zero values in test data too)
awplus: ntp application cannot be enabled by tests since it doesn't use snmp extend... ntp app is enabled by ntp module... pass on that for now.

* missed awplus change somehow...
2018-08-16 11:11:03 -05:00
Tony Murray eeb3d58f5b Improved Logging and Debugging (#8870)
Use Log facility when Laravel is booted.
Update init.php so we can easily boot Laravel for CLI scripts. (and just Eloquent, but that may go away)
Move all debug setup into set_debug() function and use that across all scripts.
Log Laravel database queries.
Send debug output to librenms log file when enabling debug in the webui.
Allow for colorized Log CLI output. (currently will leave % tags in log file output)

** Needs testing and perhaps tweaking still.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-13 23:08:00 +01:00
VVelox c3007b483a add json_app_get and convert fail2ban over to JSON (#8571)
* add json_app_get function

* add numeric testing and version support

* now use json_app_get

* remove some unneeded code

* update the docs for json_app_get some more

* make the format checker happy

* add in min version support and now take extend name instead of the partial OID

* hmm... don't make min version optional

* add Exception usage for this all make min version actually work

* minor formatting cleanup

* minor style cleanup

* update json_app_get with $throw_me setting

* Use exceptions to fully handle errors.
Always update the application.  Include error message for use in UI.
Move data to data key for easier parsing.
Add test data

* make a few changes to the lovely changes from @murrant

* style cleanup

* now attempt parsing it the old way if a error of -5 is returned

* add new exceptions and rework them all

* add new exceptions and min version 0 no longer bypasses the key checks

* redo the error codes a bit and improve the comment about it all

* fix a a bit of formatting

* added JsonAppException and make the other JsonApp stuff a sub of it

* note JsonAppException

* fix class creation

* JsonAppBlank now extends JsonApp

* doh! add <?php

* update the poller to properly use the new exceptions

* no longer check for error twice and make sure the data key is present

* cleanup processing of legacy scripts

* tweak this a bit

* white space fix

* fix the tests for fail2ban
2018-05-25 21:16:16 -05:00
VVelox 0e13e77c5f refactor: Fail2ban polling update and dropping of the FW checking (#7936)
* Update polling and drop the firewalled bit.

Since fail2ban on FreeBSD has moved to using anchors, the previous
issue of it dreking all over its self is no longer a problem.

And AFAIK it has never been an issue on Linux.

This also makes this script more cross platform as well instead.

* change the name of the graph of the total banned so people don't have to remove old file

* go back to the original RRD and just shove U into the no longer data area
2017-12-30 11:39:20 +00:00
Tony Murray b620692426 refactor: Update all applications to store metrics (#7853)
* Update all applications to store metrics

* fix db schema

* Add glue test
2017-12-06 22:13:10 +00:00
Neil Lathwood 4ba8be2dfe fix: fail2ban application was setting the wrong variables (#6582) 2017-05-04 13:22:13 -05:00
Neil Lathwood a6391ed3e8 fix: Update applications poller to use numeric oid instead of nsExtendOutputFull (#6277)
* fix: Update applications poller to use numeric oid instead of nsExtendOutputFull

* Accidental m
2017-03-30 22:01:40 -05:00
VVelox acd11955d2 use components for fail2ban jails list (#6221)
* add get_fail2ban_jails functions

* now do component stuff for fail2ban for tracking jails

* now use get_fail2ban_jails for getting a list of jails

* readd the accidentally deleted update app bit

* white space cleanup

* Update fail2ban component code

* remove unneeded variable
2017-03-29 22:54:02 -05:00
Neil Lathwood 66d1006d91 feature: Added app_state support for applications #5068 (#6061)
* feature: Added app_state support for applications #5068

* moved schema file 173 -> 174

* Re-arrange code

* added device_id to dbUpdate call

* updated function + missing apps

* Rename 174.sql to 176.sql

* Remove $device, it is unneeded when updating.  Rename update_applications() -> update_application()

* Some apps can return simply 0
2017-03-11 08:39:32 -06:00
VVelox 6cf5add528 feature: add fail2ban application support (#5924)
* add single pool based poller for php-fpm

* add the page for php-fpm

* add graph for php-fpm

* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* use named OID as suggest by @laf

* document PHP-FPM monitoring

* link it in the index

* clean up the named oid

* add how to grab the script in question

* add f2b poller

* add f2b app page

* add f2b graph

* add fail2ban notes

* minor formatting cleanup

* ...more formatting cleanup

* rename it so it can be called via the app page

* Revert "rename it so it can be called via the app page"

This reverts commit 0bde88a038.

* *rename it so it can be called via the apps page
*setup the apps page to call it

* renamed the graph

* now include fail2ban in the apps properly

* correct the wget command so it does not stomp on phpfpm-sp

* update the fail2ban poller for the newest fail2ban script and now build multiple RRDs

* update for now graphing firewalled and banned

* update fail2ban docs to match the newest snmpd extend method

* search automatically for jails and graph them

* graphs the currently banned for a fail2ban jail

* change the tital of the graph for the total banned to make it more descriptive

* Add a explanation of the two variables in the total graph.

* misc. white space cleans ups

* misc. white space cleanup

* minor white space cleanup

* correct descr lenght

* correct descr lenght

* Update fail2ban.inc.php

* Use rrd_name properly

* note the cache file bits

* make caching optional and note why

* Update to new RrdDefinition class

* And the use statement ;/

* Messed the second rrd_def

* correct two minor errors that did not seem to be causing issues

* don't use $vars as per pull #5994

* don't use $vars as per pull #5994

* fix jails graphs

* Remove loops and temp variables

* whitespace

* Change graph so we don't get fractions
2017-02-24 11:50:33 -06:00