97 Commits
Author SHA1 Message Date
Neil LathwoodandGitHub 15c4e8499f Removed Legacy Transport UI https://t.libren.ms/deprecation-alerting (#9552) 2019-01-01 12:57:09 +00:00
Tony MurrayandNeil Lathwood 3e35ee0e7d Refactored and update Location Geocoding (#9359)
- Fix location so it is a regular database relation (this allows multiple devices to be accurately linked to one location and saves api calls)
- Parse coordinates from the location more consistently
- Add settings to webui
- ~~Used [PHP Geocoder](http://geocoder-php.org/), which has lots of backends and is well tested. (also includes reverse and geoip)~~
- Google Maps, Bing, Mapquest, and OpenStreetMap supported initially.
- Default to OpenStreetMap, which doesn't require a key.  They will liberally hand out bans if you exceed 1 query per second though.
- All other Geocoding APIs require an API key. (Google requires a credit card on file, but seems to be the most accurate)
- Update all (I think) sql queries to handle the new structure
- Remove final vestiges of override_sysLocation as a device attribute
- Update existing device groups and rules in DB
- Tested all APIs with good/bad location, no/bad/good key, and no connection.
- Cannot fix advanced queries that use location

This blocks #8868

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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-11-28 22:49:18 +00:00
Tony MurrayandNeil Lathwood ec69150099 Filter email options based on backend in Alert settings (#9461)
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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-11-19 21:04:33 +00:00
Neil LathwoodandGitHub 654411aae2 Update alerting.inc.php 2018-10-21 20:00:05 +01:00
laf 1d207ec943 Renamed section from Transport -> options 2018-10-19 22:13:11 +01:00
laf e7ed9b7d35 Reorg the alert settings page to show what options are deprecated 2018-10-19 22:01:35 +01:00
Neil LathwoodandGitHub 86d862fb25 Added support for allowing alerts to un-ack (#9136)
* Add support for allowing alerts to un-ack

* Updated db_schema.yaml

* Update and rename 263.sql to 265.sql

* Fix up ui a bit.

* Renamed sql file
2018-09-19 23:38:01 +01:00
Tony MurrayandGitHub 32a7c50189 Use Laravel authentication (#8702)
* Use Laravel for authentication
Support legacy auth methods
Always create DB entry for users (segregate by auth method)

Port api auth to Laravel

restrict poller errors to devices the user has access to

Run checks on every page load.  But set a 5 minute (configurable) timer.
Only run some checks if the user is an admin

Move toastr down a few pixels so it isn't as annoying.

Fix menu not loaded on laravel pages when twofactor is enabled for the system, but disabled for the user.
Add two missing menu entries in the laravel menu

Rewrite 2FA code
Simplify some and verify code before applying

Get http-auth working
Handle legacy $_SESSION differently.  Allows Auth::once(), etc to work.

* Fix tests and mysqli extension check

* remove duplicate Toastr messages

* Fix new items

* Rename 266.sql to 267.sql
2018-09-11 07:51:35 -05:00
bonzai86andTony Murray 9350b54464 feature: Added dynamic graphs with RrdGraphJS by oetiker (#9087)
* feature: Added dynamic graphs with RrdGraphJS by oetiker (https://github.com/oetiker/RrdGraphJS)

* fixed DragCursor.cur

* refactoring, only js when needed

* doc: added use of dynamic graphs switch in Configuration.md

* Updated to use Config, schema + example gif

* Rename 261.sql to 262.sql
2018-08-29 08:25:16 -05:00
Tony MurrayandNeil Lathwood deb405fac9 Alert transport fixes (#8967)
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-31 21:53:03 +01:00
vivia11andNeil Lathwood e1118b628a Added Alert Transports Mapping (#8660)
Hello all,
I guess this is the second version of a more fully fleshed out alert contact mapping feature. The old one was GH-8507

Transports to convert:

  - [x] API
  - [x] Cisco Spark
  - [x] Elasticsearch
  - [x] GitLab
  - [x] Philips Hue
  - [x] Jira
  - [x] Mail
  - [ ] ~~PagerDuty~~ - Requires a callback so leaving for now
  - [x] Nagios
  - [x] IRC
  - [x] Discord
  - [x] Rocket.chat
  - [x] Hipchat
  - [x] Pushover
  - [x] Boxcar
  - [x] Telegram
  - [x] Pushbullet
  - [x] VictorOps
  - [x] OpsGenie
  - [x] Clickatell
  - [x] PlaySMS
  - [x] Canopsis
  - [x] osTicket
  - [x] Microsoft Teams
  - [x] SMSEagle
  - [x] Syslog
  - [x] Slack

The intention is for this feature to have three different levels to it:
1. Alert rule to an alert contact mapping (where the code is at now)
2. Alert rule to an alert group (made up of alert contacts) mapping
3. Alert contact mapping to different transport configurations.

There will be three transport configuration types.
1. Default (the configuration that is held in the configs table)
2. None (no transport configuration - will explain later)
3. Other (a configuration that will be defined in a different able)

Take Mail transport for example. It can either be of a "default" or "other" configuration. The hope is that in the future, users can send mail from different mail servers if they wish.
However, for ciscospark which requires a room ID and an api-token, I've decided that it has no transport configuration. Most likely, every alert contact will contain a different room-id and an api-token - which is why it has the transport config of "none".
For other transports : I am not familiar with them, so hopefully the community can add support for these. I can definitely help!

To add support for each transport will require several things:
- addition to the UI
- addition to forms/alert-contacts.inc.php
- modifications to its object class

Screenshots
![image](https://user-images.githubusercontent.com/28970851/39594533-2092ce9e-4eca-11e8-9c5d-cd002ece1425.png)
![image](https://user-images.githubusercontent.com/28970851/39594544-276e9856-4eca-11e8-80cc-82789ee0b2b2.png)
![image](https://user-images.githubusercontent.com/28970851/39594553-2fdf528c-4eca-11e8-8a40-4f149e767054.png)

I'm not sure if this is the best way to do things, so please let me know if there's a better way to structure the code! Any comments on code/db schema,/UI etc is welcome and encouraged! 

The UI is heavily based on alert rules (front end is not my strong suit). And parts of the code are based on the code that was written for alert rules.

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-21 20:34:59 +01:00
Neil LathwoodandGitHub ad6ec7f72a Refactor alert templates to use Laravel Blade templating engine (#8803)
* Initial start on new templating support

* further updates

* more updates

* More working version

* Last fixes

* Small updates

* modified test to look for dbname.

* Schema update

* Added fix for not being able to disable Philips Hue transport

* Updated sql file

* Updated db_schema

* Set myclabs/deep-copy to be 1.7.x version in composer

* Fixes from murrant

* Forced nikic/php-parser to version 3.1.x in composer

* Updated composer to use custom fork of string-blade-compiler + fixed transport use

* Updated to always use correct template

* Merged legacy and blade templating engines

* Removed template type + fixed test-alert.php

* Added more template placeholders

* Added ability to reference data in templates as $alert->X

* Updated docs for templates

* Updated db_schema.yaml

* Added $alert->builder

* Clarify the use of $alert->builder

* Fixed the use of $alert->transport

* renamed schema file

* Added template validation

* Small update to fix travis issue

* Add Docs text to title bar

* Updated amqp to new of version

* Consistency in alert rule and template title bars
2018-07-14 22:15:43 +01:00
theherodiedandNeil Lathwood a6c328925c Added Discord transport (#8748)
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-06-13 22:25:09 +01:00
Tony MurrayandNeil Lathwood 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
Paul HeinrichsandNeil Lathwood a0c2783d27 alerting: Added Philips Hue as transport (#8320)
* Add Phillips Hue Bridge as Alerting transport

* Add Comment

* Update Transport docs

* Update Phillips to Philips Add sql schema
2018-03-09 19:30:27 +01:00
Drew HynesandNeil Lathwood 764abde504 alerting: Added Gitlab transport for alerting (#8246)
* gitlab alert transport added

* fixed SQL file and cleaned up a bit

* updated license information

* added relevant information Transports documentation

* Fixed spacing issues

* removed unnecessary text from variable

* fixed sql schema file syntax

* changed sql schema order

* fixed creation of issues for resolution events

* addressed file name conflict

* fixed spacing, again

* removed unused variable

* Update Transports.md
2018-02-27 21:21:37 +00:00
Tony MurrayandGitHub 30ca1e1a2e Fix alerting email issues (#8255)
* Fix alerting email issues
Variable collision

* changed the wrong line
2018-02-14 23:16:51 -06:00
Tony MurrayandNeil Lathwood 561846a44b fix: Fiedx issues with new config init (#8242)
* Fix non-config defaults

* update processConfig and remove file
2018-02-12 09:15:44 +00:00
RobbertandNeil Lathwood 363c24a117 fix: Changed e-mail validation TLD max length to 18 (#8236) 2018-02-10 13:25:50 +00:00
FTBZandNeil Lathwood eb72a5394e feature: Copy all email alerts to default contact (#8178)
* feature: Copy all email alerts to default contact

* change in SQL and add check as requested

* Rename 233.sql to 234.sql

* tab removing
2018-02-05 08:25:24 +00:00
ZmegolazandTony Murray 3740467858 Added settings validations. (#8037) 2018-01-16 22:21:21 -06:00
ZmegolazandNeil Lathwood 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
crcroandNeil Lathwood 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
Neil LathwoodandTony Murray f84844f2a7 fix: Better validation on callback url for Pagerduty integration (#7658) 2017-11-07 09:32:09 -06:00
celalemreandNeil Lathwood 973764e7d3 alerts: Added OpsGenie transport. (#7392)
* Add OpsGenie transport.

* Log response body from OpsGenie only when an error occurs.

* Move OpsGenie SQL config to a new sql file.
2017-09-28 21:20:21 +01:00
Aldemir AkpinarandNeil Lathwood c592f901b0 feature: Added jira alert transport (#7040)
* feature: added jira transport

* Trying to fix travis-ci sql problem

* Surpress mysql warnings

* Fix for typo

* Update Alerting.md
2017-07-19 16:25:03 +01:00
pblasquezandNeil Lathwood cc38930007 feature: Added elasticsearch transport and docs (#6687)
* Add elasticsearch transport and docs

* Fix formatting

* Fix formatting

* Remove librenms string from sql file

* Add missing states

* Use ifAlias not ifDescr

* Update Alerting.md

* Remove unused es_enabled flag

* Fix storage column names

* Fix processor columns

* Rename 194.sql to 193.sql
2017-06-01 12:16:39 +01:00
crcroandNeil Lathwood 5af3048a76 fix: Ensure rrdtool web settings aren't overwrote by defaults (#6698)
* fix for web settings

* revert db config

* revert description

* ensure rrdtool path is set
2017-05-30 19:44:40 +01:00
Neil LathwoodandGitHub 612186dabf alerting: Added option to enable/disable option for sending alerts to normal users (#6590)
* alerting: Added option to enable/disable option for sending alerts to normal users

* Update notifications.rss

* added missing sql

* Fix schema

* Update notifications.rss
2017-05-15 23:35:26 +01:00
pblasquezandNeil Lathwood c2cdf14223 feature: Added syslog alert transport (#6246)
* Add syslog alert transport and docs

* Remove redundant priority variable

* Log syslog transport events as critical
2017-03-23 08:46:28 +00:00
Neil LathwoodandGitHub 5f5dc2a854 feature: Peeringdb integration to show the Exchanges and peers for your AS' (#6178) 2017-03-22 10:17:13 +00:00
Neil LathwoodandGitHub f6d8859bb4 feature: Added support for sending alerts to Telegram #2114 (#6202) 2017-03-22 09:02:24 +00:00
towsterandNeil Lathwood 605b9d2092 feature: Send default mail when no email destinations found (#6165)
* when an email is attempted to be sent but there are no recipients send to default_mail address
2017-03-14 23:22:43 +00:00
barryodonovanandNeil Lathwood 0f663b3a82 feature: Add Smseagle transport support (#5989)
* added alert transport for SMSEagle hardware gateway (smseagle.eu)

* added newline

* schema file update + small code refactor

* added docs
2017-02-24 11:55:53 +00:00
Neil LathwoodandGitHub fad5aca1b7 feature: Allow customisation of rrd step/heartbeat when creating new rrd files (#5947)
* feature: Allow customisation of rrd step/heartbeat when creating new rrd files

* revert defaults

* added docs + webui config option

* Move RrdDefinition to an Object to make them easier to create and remove the possibility of typos.

* Fix style/lint issues and missing use statements

* 3 more missing use statements

* updated doc + moved schema file
2017-02-23 22:45:50 +00:00
Neil LathwoodandTony Murray 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
Søren RosiakandNeil Lathwood 9b32fb2b91 feature: Added Cisco Spark Transport #3182
* feature: Added Cisco Spark Transport

* updated sql to be compliant
2017-02-02 23:10:39 +00:00
ToeiReiandNeil Lathwood 6bc7b1991e feature: Added Rocket.Chat transport #5427
* Implement Rocket.Chat transport

* copyright stuff as I didn't have anything to hack anything on transport.rocket.php

* Update config-item.inc.php

Use space instead of tabs

* Update config-item.inc.php

kill a blank line

* Update AUTHORS.md

I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.
2017-01-31 23:05:35 +00:00
Rob NicholsandNeil Lathwood f98829ba9d fix: Added support for autotls in mail transport #5314 2017-01-10 10:03:47 +00:00
Tony MurrayandNeil Lathwood 48b0e53a54 fix: use password type for SMTP Auth #5051 2016-11-24 08:55:34 +00:00
Neil LathwoodandTony Murray 3735f94e20 webui: Added support for removing pagerduty config in the webui (#5004) 2016-11-20 20:03:13 -06:00
Søren RosiakandNeil Lathwood 9fb02bbcd3 feature: Add Microsoft Teams Alert Transport (#5023) 2016-11-19 14:49:18 +00:00
Søren RosiakandNeil Lathwood 23da8be9c3 feature: Add osTicket Alert Transport (#4791) 2016-10-20 19:31:30 +01:00
Neil LathwoodandGitHub f94b352dbe Merge pull request #4429 from crcro/availability-map-update-5
webui: More updates for availability map
2016-09-23 19:32:21 +01:00
Bennett Blodinger 07574b27d8 Move to Font Awesome
Keeps the look more in line with the navigation bar icons.
In the future with Bootstrap 4, Glyphicons will not be included, so this
starts the transistions away.
2016-09-22 10:44:17 -04:00
crcro 63f42acda6 general updates 2016-09-22 00:11:16 +03:00
crcro 52693426bc changed webui and sql from old availability map to compact availability map 2016-09-15 00:07:03 +03:00
crcro aad9b675c3 more options to amap 2016-09-06 02:01:15 +03:00
crcroandTony Murray 921d5b9ed5 webui: availability map update (#4300)
* a-map update 3

* pre-commit.php fixes

* moved group query inside if
2016-09-02 12:42:45 -05:00
crcroandNeil Lathwood 49dbe3ea01 availability map updates (#4183)
webui: More updates to availability map #4183
2016-08-28 21:48:05 +01:00