276 Commits

Author SHA1 Message Date
b41e32c7aa Fix missing use statements (#8614) 2018-04-24 21:20:21 -05:00
65b8270936 feature: Added random entropy support for applications (#8555) 2018-04-13 17:42:14 +01:00
7250376104 refactor: Don't access $_SESSION directly for Auth (#8513)
* Don't access $_SESSION directly for Auth

* fix style

* add property annotations
2018-04-07 21:55:28 +01:00
97d58cc121 fix:: Fixed display of WD drives for smart application (#8471)
WD drives have a dash in the serial number, e.g. WD-WCCXXXXXXXXX.
The librenms-agent script changed to using serial numbers in
librenms/librenms-agent@3a84624615
As we split the name by the same char, we discarded everything after WD,
which made all WD drives in the system appear as one, and broke the generated
links.
2018-03-26 14:36:38 +01:00
03076c4025 feature: Added new alert rule builder UI and rule mapping UI (#8293)
* feature: Added new alert rule builder UI

* Updated to export sql queries

* More updates

* more changes

* removed debug

* fix scrut

* Updated to include import options + various other fixes

* fix rule

* Populate name from collection rules.

* Fix default rule import
Allow new and old style rules in the collection.
Don't add new yet as I'm not sure GenSQL() is working.

* Fix GenSQL call

* Extract filter building to class so it is nicely contained in one place

* moved schema

* some fixes and tweaks

* travis fixes

* Some more features / updates

* Fix up my mistakes when adding default rules

* Use a modal for new alert (Incomplete)
Larger dialog!!
Remove page loading stuff.

Working:
Loading rules, resetting dialog, importing from collection.

Not working yet:
select width
device limited rule access? don't know what this is...

Lots of unused stuff to delete...

* reload "table" after save

* fixed editing rule

* Auto select2 width

* Reload window on save

* Restore per-device alert. Remove debug.

* Small cleanups. Rule Name first.

* Restore button to button type. Rename schema.

* Fixes: wrong command to reload window, remove extra attributes, rule is never passed

* Fixed old rule editing

* some small updates for old imports

* travis update to use trusty

* maybe travis fix

* Ability to set alert rule mappings on the rule edit screen

* pip installs one line, no quiet for deploy

* update schema def

* Fix style and some copyright headers

* fix docs missing file

* Allow new versions of snmpsim and libraries

* Parser WIP

* Fix default rules insert

* reorganize

* Legacy import first draft done

* Implement saving
Skip translation to sql for now

* Working on glues

* small rule collection fix

* Working on glues

* Working on glues

* Docs updates + small UI changes

* Parser WIP

* reorganize

* Legacy import first draft done

* Implement saving
Skip translation to sql for now

* Working on glues

* Working on glues

* Working on glues

* Add table mapping, should move to it's own class

* WIP

* Glue working!!

* Extract Schema class

* Some final touches.
revert alerts_rules.json for now.

* Finish up initial implementation
Needs more tests

* Fix a few places

* small doc updates

* Fix finding tables in grouped rules.

* remove unused code

* code format fixes

* Some quick tests for Schema
Simplified output for findRelationshipPath. Always includes start and target in the result.
This simplifies a lot of code in QueryBuilderParser.php
This also always loads the target table data now (which we want)

* Make bill_id the PRIMARY index for the bills table

* Load macros from a json file in misc instead of the database.

* Fix whitespace and wrong key for collection.

* Handle IN properly when generating SQL

* Fix glue (devices.device_id = ports.port_id) is incorrect :D
Show ALL tables we can resolve relationships for in the query builder filter.

* Remove all macros from the database
Remove insert statements, leave updates to update user's existing rules.
2018-03-14 20:25:19 +00:00
b70ff543bf webui: S.M.A.R.T visualization improvements (#8310)
* Increase description length in graphs
* Add SMART attr177, previously recorded, but not displayed
* Change the multi-graph titles to better reflect their content
* Change SMART attr numbers to a more human-friendly description
* Minor text corrections
2018-03-13 13:26:23 +00:00
df724a78b7 webui: Fix panel device header for themes (#8238)
* New event log severity model

* Revert "New event log severity model"

This reverts commit 0783527af8ca492a562cc9a60e3887c24599000d.

* Fixed Panel Bar - #8157

* Reverted back the counter
2018-02-12 15:50:16 +00:00
5880f06780 webui: Added sysNames to pulldowns and the main page (#8137)
* Add dependency info for api

* webui: made dev dependency list more like devices page. Also added sysNames to pulldowns and the manin page

* Create common function for sysname display

* A better function name
2018-02-10 13:18:53 +00:00
6bbe5038e8 fix linkify to work with with ip addresses (#8226)
* fix linkify to work with with ip addresses

* update tests
2018-02-07 20:48:18 -06:00
3740467858 Added settings validations. (#8037) 2018-01-16 22:21:21 -06:00
c21e9c2f4a feature: Added powerdns dnsdist application (#7987)
* powerdns dnsdist app support

* fix conflict

* added doc

* fix new lines

* alphabetic order

* no data manipulation on host side
changed rrd from gauge to counter
2018-01-06 20:05:06 +00:00
d7b4a30acf webui: Added validation for Oxidized API URL config (#7978)
* Add http:// to oxidized URLs missing them.

* Fixed typo.

* Form validation instead of backend fix.

* Don't update setting on invalid pattern.
2018-01-05 08:58:42 +00:00
eaf70e96f6 feature: Added ZFS support for FreeBSD (#7938)
* add the ZFS graphs

* And now the ZFS non-graph stuff.

Still need to move it over to using JSON.

* Now uses JSON.

* use stripslashes as SNMPD loves to slash up the JSON

* Document ZFS.

* very minor formatting cleanup

* minor formatting cleanup and remove a bit of code from when I was mucking around debugging it all
2017-12-30 11:42:51 +00:00
a644057a68 Make left and right texts on percentage bar look better. (#7958) 2017-12-26 20:34:46 +00:00
599572562a webui: Health / Sensors pages refresh (#7834)
* inital release

* added missing copyrights

* removed old commented lines

* do not center progresss bar

* integrated in page navbar, removed useless div

* changes to match latest style, fix for pagetitle
2017-12-24 20:18:48 +00:00
9e63d3200d webui: Eventlog table refresh (#7793)
* initial release

* added copyright info

* set username to System if empty

* eventlog page cleanup

* added copyright
2017-12-24 19:56:24 +00:00
7b36d65cc5 nicecap SMART (#7939) 2017-12-21 20:51:55 -06:00
79c42743a6 webui: Added diskusage to top devices widget (#7903)
* webui: added diskusage to top devices widget

* Update top-devices.inc.php
2017-12-13 22:37:36 +00:00
712201e691 feature: FreeRADIUS application monitoring (#7818)
* Update unbound.inc.php

* Update unbound.inc.php

* Create unbound_cache.inc.php

* Update AUTHORS.md

* Update apps.inc.php

* Update bind.inc.php

* Update bind.inc.php

* Update bind.inc.php

* Update bind.inc.php

* Update tiles.php

* Update Applications.md

* Update Applications.md

* Update Applications.md

* Update Applications.md

* Update Applications.md

* Update Applications.md

* Update apps.inc.php

* Create freeradius_access.inc.php

* Update functions.inc.php

* Create freeradius_auth.inc.php

* Create freeradius_accounting.inc.php

* Create freeradius_proxy_access.inc.php

* Create freeradius_proxy_auth.inc.php

* Create freeradius_proxy_acct.inc.php

* Create freeradius_queue.inc.php

* Update and rename freeradius_accounting.inc.php to freeradius_acct.inc.php

* Update apps.inc.php

* Create freeradius.inc.php

* Create freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update Applications.md

* Update Applications.md

* Update freeradius_access.inc.php

* Update freeradius_acct.inc.php

* Update freeradius_access.inc.php

* Update freeradius_auth.inc.php

* Update freeradius_access.inc.php

* Update freeradius_acct.inc.php

* Update freeradius_proxy_access.inc.php

* Update freeradius_proxy_acct.inc.php

* Update freeradius_proxy_auth.inc.php

* Update freeradius_queue.inc.php

* Update freeradius_queue.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius.inc.php

* Update freeradius_acct.inc.php

* Update freeradius_acct.inc.php

* Update freeradius_access.inc.php

* Update freeradius_access.inc.php

* Update freeradius_auth.inc.php

* Update freeradius_proxy_access.inc.php

* Update freeradius_proxy_acct.inc.php

* Update freeradius_proxy_auth.inc.php

* Update freeradius_queue.inc.php
2017-12-12 21:13:24 -06:00
995b7069eb webui: Added support for stacked graphs (#7725)
* initial release

* newline fix

* missed some graphs in edit

* style fixes

* revert custom function, use Config

* unified config option
added webui graph config entry
added sql entry for webui config

* removed config_id from sql file

* remove graph stack from defaults

* moved transparency and stacked option to functions.php

* style fixes

* style fixes

* changes in code
added docs about stacked graphs

* return keyed array

* new colors and transparency

* sql rename
2017-12-02 20:28:03 +00:00
c9728a1f71 refactor: Refactored authorizers to classes (#7497)
* Refactored authorizers to classes

* Merge changes for #7335

* ! fix php 5.3 incompatibility

* Update ADAuthorizationAuthorizer.php

* Fix get_user -> getUser

* Rename AuthorizerFactory to Auth, fix interface missing functions

* Add phpdocs to all interface methods and normalize the names a bit.

* Re-work auth_test.php AD bind tests to work properly with the new class.
Reflection is not the nicest tool, but I think it is appropriate here.
Handle exceptions more nicely in auth_test.php

* Restore AD getUseList fix

Not sure how it got removed

* fix auth_test.php style
2017-11-18 10:33:03 +00:00
f8d7ccfe0d feature: Support for up/down detection of ping only devices.
* Added support for ping only devices.

* Renamed sql-schema/206 to 207.

* Discovery tried to detect the OS when it shouldn't.

* Updated db_schema.yaml

* Added ping icon.

* Don't show unused graphs and tabs when SNMP is disabled.

* Allow the user to specify OS of ping only devices.

* Removing custom OS now changes it to 'ping'.

* Removed unnecessary use of mres().

* UI select box for SNMP enable/disable.

* Hide device_ping_perf if ping is disable on device.

* Fixed SNMP settings update status messages.

* Added functionality to add ping only devices via the web ui.

* Added ping only option to addhost.php

* Added ping only support to snmp-scan.py

* Moved sql 208 to 211

* Fixed scrutinizer issues.

* Fixed broken ossearch.

* Added ping only support to the API.

* Updated API doc.

* Added (optional) to OS and hardware description. Hid Port Settings, Applications, Modules, Storage, Processors, Memory and Components from the edit menu

* Style fix.

* Updated ping icon.

* clean() instead of mres(). More escaping. Better help in snmp-scan.py and addhost.php

* Fixed scrutinizer issue.

* Always try SNMP in snmp-scan.py, new option for it in addhost.php. Slice instead of chunk in ajax_ossuggest.php. Other minor style changes.

* Updated sql modifications to insert the new column in the same place as in db_schema.yaml.
2017-10-27 22:59:25 -05:00
51ba934e11 feature: Added web validation (#7474)
* refactor: convert validations to modules to prep for gui integration

* accidentally dropped, schema update

* fix accidental output to webui

* mention discovery-wrapper.py and re-arrange.

* refine some fix statements

* rename the Config validation group to Configuration.

* fix some scrutinizer issues
remove as many local functions from validator.php as possible
move extensions from pre-check
remove duplicate timezone check
looks like there is some db schema differences between mariadb 10.1 and 10.2, investigating

* mariadb version diff take2

* Check schema version first for database.
Remove stop to go back to command line for install docs.
Add helpful link when there is no devices added to /addhost

* fix incorrect validation for empty string defaults

* Fix style

* Add additional file permissions checks

* catch exception and fail for invalid timezone
Change visuals a bit.

* add php version warning

* fix space
2017-10-26 07:56:09 +01:00
2cbee2dc02 refactor: Added IOS-XR Bundle-Ether shortened/corrected forms (#7283)
* Added IOS-XR Bundle-Ether shortened/corrected forms
2017-09-01 17:14:03 +01:00
20b08cf595 refactor: finish logic and definition separation (#6883)
Clean up rewrites to only have function definitions
Move authentication initialization into a function
2017-07-03 15:38:58 -05:00
96f066189e feature: Added pi-hole application support (#6782)
* added data to webui

* added last step on docs

* fix scrutinizer issue

* fix blank lines
2017-06-05 23:00:09 +01:00
34c35f3627 webui: Updated remaining display options where we do not show sysName if hostname is IP (#6585)
* webui: Updated remaining display options where we do not show sysName if hostname is IP

* renamed function + simplified
2017-05-05 06:25:58 -05:00
2b3ca49bea feature: Added support for populating selects from ajax (#6557)
fixes: #5264

The issue was all the string concatenation...

But I decided to try loading the select via ajax. Seems ok.  We could just use something like select2.  Opinions? Use this approach or load at page load.
I was able to reduce the loading of the 4000 select items from 1.6s to 0.6s on my laptop by optimizing the sql.

I added 4000 devices to my database to check this :)
2017-05-03 22:51:01 +01:00
0211c5864b feature: Added NFS-server application support (#6320)
* update

just realized the pull script is a bad idea. not really portable. no
nfsv2 stats for centos 7+

* some php errors

* fixed v4ops

removed nfs-server.sh, as only cat /proc/net/rpc/nfsd is needed as an
extend.

* split rrd

split rrd to store and pull them seperatly

* scrutinizer-ci fix

scrutinizer-ci fix

* phpcbf

* messed up

* stuck, please ignore

* applied reviews murrant suggestions

applied reviews murrant suggestions

* dirty scope

dirty scope was the issue

* style fix ?

* style PSR2

* file handle chart

* fixed style + added documentation

* applied review tasks by murrant, thx murrant!

* applied laf's review, also added tabs in the view to reduce the amount of graphs per page
2017-04-28 22:48:26 +01:00
238ca0266b feature: Added sdfsinfo application support (#6494)
* initial version

* various fixes, docs updated

* various style fixes

* added missing copyright

* docs correction

* docs correction

* new split char for bash script

* docs correction

* scrutinizer issue

* newline meh

* doc changes
2017-04-27 20:54:39 +01:00
b2e6d8abef feature: Added opengridscheduler job tracker application (#6419)
* opengridscheduler job tracker

* wrong copy of file

* applied laf's review. Thx laf!

* now including the modified files; thx laf for the review!

* Update Applications.md
2017-04-24 14:19:36 +01:00
9385bc54de fix: Updated use of ifNameDescr() to cleanPort() (#6454) 2017-04-18 16:42:37 -05:00
c222aa41a0 add multi DB support to the Postgres app (#6222)
* now creates a component with all the DBs in it

* add the function get_postgres_databases

* add multi DB support to the Postgres device app page

* add multi DB support to the Postgres graphs

* whoops removed the udpate bit, readd it

* white space cleanup

* now use json for storing DB names

* provide the list of DBs in a cleaner manner

* Update postgres.inc.php
2017-04-12 10:45:12 +01:00
1bbbaff58b refactor: Moved ifLabel -> cleanPort and updated the usage (#6288)
* refactor: Moved ifLabel -> cleanPort and updated the usage

* added list of tags allowed

* few updates as per comments from @murrant

* Added simple unit tests

* double display for javascript popover

* Remove ifNameDescr() function
Fix realtime port page

* remove accidental temp code

* Remove double display calls in ajax tables
2017-04-04 08:08:23 +01:00
4b9f3f37d7 fix: move user preferences dashboard and twofactor out of users table (#6286)
* fix: move user preferences dashboard and twofactor out of users table
This allows them to work with any authentication method
Add set_user_pref() and get_user_pref() helper functions

* fix edit users for other users

* Fix updated_at default timestamp

* Update and rename 183.sql to 184.sql

* removed commented out debug
2017-04-01 22:18:00 +01:00
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
0a4b2658b5 feature: Added SMART application support (#6181) 2017-03-22 14:28:50 +00:00
54deb1d429 fix: API call for graphs not working (#6184) (#6186)
* fix: API call for graphs not working (#6184)

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

* updated set_image_type to use new function
2017-03-13 16:39:43 +00:00
58495a3910 Add php docs for log_event, small cleanups (#6141)
* Add php docs for log_event, clean up eventlog_severity a bit.

* Update functions.php
2017-03-12 13:05:31 +00:00
afb838bc10 webgui: Added ability to set warning percentage for CPU, mempools from device edit page (#5895) 2017-03-03 15:07:12 +00:00
354bd2144d feature: Add FreeBSD NFS Client/Server application support (#6008) 2017-03-03 14:48:46 +00:00
6844f29217 feature: add get_disks function (#6058) 2017-03-03 14:27:33 +00:00
7f91fab663 webui: Cleanup white backgrounds on certain graphs 2017-03-02 18:07:55 +00:00
db58fea2d2 feature: Add Basic Oxidized Node List (#6017)
* feature: Add Basic Oxidized Node List
2017-02-27 22:32:13 +00:00
252d0c1055 add a nicecase instance for PHP-FPM (#6007)
* add single pool based poller for php-fpm
2017-02-26 13:46:16 +00:00
a8691680ab feature: Added ability to output graphs as svg (#5959)
* feature: Added ability to output graphs as svg

* Update graph.inc.php

* added ability to gzip various files for web servers
2017-02-22 06:08:18 -06:00
e9d729eedc webui: added link to APs for alert details #5878 (#5898)
* webui: Add links to accesspoints in alerts #5878

* webui: added link to APs for alert details #5878
2017-02-15 07:55:03 +00:00
5bfd23e7eb webui: New eventlog severity classification (#5830)
* New event log severity model

* Revert "New event log severity model"

This reverts commit 0783527af8ca492a562cc9a60e3887c24599000d.

* New event log severity model

* Fixed spaces vs tabs

* Learning the format requirements

* Learning the format requirements

* Moved the colours in to the stylesheet

* change SQL file to stop conflicting

* refactor log_event so severity isn't last, but reference is.

* keep having to move the file due to new PR conflicts

* Revert "keep having to move the file due to new PR conflicts"

This reverts commit f3030e7218f3403664616fde655e4d35c134516a.

* extended support to dashboard and eventlog page

* formatting
2017-02-12 22:41:05 +00:00
45c5c20ee1 webui: Replace Ntp with NTP in Apps menu (#5791) 2017-02-06 22:46:21 +00:00
bc72ab916e webui: Remove ifIndex from ports list and add debug button for data access (#5679) 2017-02-03 15:20:25 -06:00