39 Commits

Author SHA1 Message Date
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
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
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
Zane C. Bowers-Hadley 3da935a3e6 variable fixes (#13956) 2022-04-29 07:41:23 -05: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
Mark Westerterp 1df78d9503 UI: Fix second menu bar in Apps screens (#13800)
* Fix bug introduced in 2016
Introduced when changing over from tables to divs.
Caused by commit: https://github.com/librenms/librenms/commit/bda31d7152e78b8e484c7b16accdbf7edeaaf96f

* Apps: bring second menu bar in line with main menu
Scope limited to applications

* Style fixes
2022-02-18 09:19:36 -06:00
Henne Van Och 8f8872520a Add supervisord application (#13673) 2022-01-13 18:19:27 +01:00
Jellyfrog 258505ed44 Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
Jellyfrog 76803c2acc Make applications work with rrdcached (#12807) 2021-04-28 22:00:32 -05:00
djamp42 97d20dd09a Make docker app work with rrdcached (#12746)
* docker app rrdcached

* offset fix and formatting fix

* more fixes

* Update Rrd.php

* Update Rrd.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-04-21 07:40:48 -05:00
Tony Murray 1c379dcd05 Remove legacy function calls (#12651)
* massive inlines

* fix style and wtf

* remove rrdtool.inc.php include

* fix CommonFunctions namespace issues

* looking for missing class space, fix undefined class issues

* style fixes
2021-03-29 00:25:30 +02:00
Serphentas c88ef64169 Chrony support (#12488)
* initial chrony implementation

* remove unused import

* add testing data

* fix test data

* fix tests

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-03-18 20:11:25 +01:00
yrebrac 7d65cf1f05 Add application powermon (#12500)
* adding powermon application

* working consumption graph

* updating powermon application

* powermon app style fixes

* added powermon app test data

* debug code

* revert

* fix tests

* fix tests

Co-authored-by: Tony Murray <murraytony@gmail.com>
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-03-07 20:28:09 +01:00
Lucas Dousse 49868ee1a6 docker stats app (#12358)
* docker stat app support

* Add missing doc and app

* stylci

* styleci

* styleci

* Add test data

* add snmpsim

* Update docker.inc.php

test with use Number::Bi

* typo

* Add tests

* Add tests

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-03-07 20:26:44 +01:00
Jellyfrog 20b4215204 Swich links to https (#12511)
* Switch librenms links to https

* Convert librenms links in comments

* Switch gnu.org url to https

* switch php urls to https
2021-02-09 00:29:04 +01: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
Avinash Kumar 78fa539628 Icecast, Opensips and Voip monitor Application (#12070)
* Icecast added

* Opensips added

* Voip Monitor added

* Icecast documentation

Icecast corrections

* Opensips documentation added

Opensips corrections

* Voip monitor documentation added

Voip monitor corrections

* Icecast corrections

* Opensips corrections

* Voip monitor corrections

* test data added for icecast

* test data added for opensips
2020-09-18 16:49:20 +02:00
SourceDoctor 62f850aef9 Cleanup functions.inc.php (#11835) 2020-06-17 14:00:18 +02:00
Tony Murray 867aa132c1 Merge pull request #11661 from SourceDoctor/app_dhcp_enhancement
Application DHCP Upgrade
2020-06-16 17:03:45 -05:00
Anael Mobilia 22916afb9e Apps - backupninja (#11010)
* GUI - graphs

* GUI - Apps

* Polling

* GUI - apps

* Add backupninja to documentation

* Apps - backupninja : add link to librenmsagent script

* Add backupninja snmprec file

* Delete backupninja.snmprec

No Regression tests on apps (yet), only on devices.

* Remove old debug

* Update language : FR -> EN

* Add debug informations

* File path moved to /etc/snmp/

* Python script now use json

* Update following example on puppet script

* Update installation instructions following puppet example

* Update apps.inc.php

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
Co-authored-by: SourceDoctor <sourcehhdoctor@gmail.com>
2020-06-16 01:04:30 +02:00
SourceDoctor cbe572f959 Application DHCP Upgrade 2020-05-22 23:02:19 +02:00
SourceDoctor 4edff1e88a Application - Redis (#11612)
* Application - Redis

* Travis fix
2020-05-15 22:05:40 +02:00
Tony Murray 217969e140 Update php-codesniffer (#11368)
* PHPCS 3.5+

* Fix newly detected style issues
2020-04-03 08:41:24 -05:00
crcro 2ee2862357 app: mailcow-dockerized postfix stats (#11058)
* app-mailcow-dockerized-postfix

* fix docs

* updated niceCase

* test-data

* snmprec upload

* new test data

* new test data
2020-03-13 10:16:03 +01:00
SourceDoctor 2cfc7c6f14 Extended unbound monitoring (#11255) 2020-03-05 11:35:23 +01:00
SourceDoctor 53dc564ef5 Puppet Agent Monitoring (#10827)
* puppet agent monitoring

* change position of last run graph

* device overview panel

* updating documentation

* mouseover for Overview Dashboard

* adding blank line for code climate
2020-02-12 08:26:02 +01:00
Joseph Tingiris 02bc15c206 Asterisk app: add IAX2 peer graphs (#11078)
* Asterisk app: add IAX2 peer graphs

* It's an entirely new graph and will not break existing graphs.
* The asterisk extend script must be updated to provide the appropriate poller data.
* The PR for librenms-agent/snmp/asterisk is here: https://github.com/librenms/librenms-agent/pull/274

* code climate, round 1

* clarified unit text

* code climate, round 2

* changes needed to properly generate test data

* linux_asterisk-v1 test data
2020-02-03 18:47:27 +01:00
SourceDoctor 6ffde9ce2d PureFTPd Application (#11048)
* PureFTPd Application

* graphing connected Users
2020-01-21 18:50:11 -06:00
Dan Langille c7d4de6e15 Capcity -> Capacity (#10974)
Correct spelling error
2019-12-25 11:06:45 +01:00
István Sárándi c22fa10636 Fix name of an NVIDIA metric (#10837)
The NVIDIA application obtains its metrics from nvidia-smi dmon. Its built-in help (nvidia-smi dmon --help) says that the pviol and tviol columns stand for "Power and Thermal Violations". Therefore the metric should not be called Thermal Violation Percentage, but Power Violation Percentage.
2019-11-18 15:08:24 +01:00
SourceDoctor 4d50feffb3 Added certificate file validity check for services (#10354)
* snmp extend for monitoring certificate file validity

* Update Applications.md

* Update Applications.md
2019-11-05 21:56:31 +00:00
SourceDoctor 8f1c77545d Added Seafile Server Monitoring (#10465)
* Seafile Monitoring

* generalized function for application with multiple similar entries

* adding snmprec file

* Create linux_seafile-v1.json

* Update linux_seafile-v1.snmprec

Updated linux_seafile-v1.snmprec to use 4x for encoding json data response

* Update Applications.md
2019-10-21 23:28:21 +01:00
Tony Murray f3ba8947f7 Use Config helper (#10339)
remove usage of global variable
2019-06-23 00:29:12 -05:00
SourceDoctor 349e102b73 enhance smart to show power_on_hours also (#10261) 2019-06-06 23:39:22 -05:00
SourceDoctor 96f7f142ba add mdadm support (#10159)
* add mdadm support

* Update mdadm.inc.php
2019-05-12 23:42:03 -05:00
Tony Murray 36431dd296 Security fix: unauthorized access (#10091)
* Security fix: unauthorized access
Affects nginx users:
Moved php files outside of public html directory (Apache was protected by .htaccess)

Affects all users:
Some files did not check for authentication and could disclose some info.
Better checks before including files from user input

* git mv html/includes/ includes/html
git mv html/pages/ includes/html/
2019-04-11 23:26:42 -05:00