* Add support for sending events to Sensu
Sensu is an alerting and monitoring service (and much more) that has a
nagios compatible check API.
This transport translates LibreNMS alerts into Sensu events, and sends
them to the agent API running on the same host as the poller.
The transport has a few options, but none of them are required - if the
Sensu agent is correctly configured, alerts will be sent as soon as the
transport is enabled.
There's a fair amount of code, as I've tried to translate as much data as
possible between LibreNMS and Sensu.
* Update Transports.md
* If alerted is 0, send an "ok" alert dated rrd.step / 2 seconds ago
This makes Sensu aware of the last time the check ran successfully (ish).
If we don't send the initial "ok", Sensu will either display 'unknown',
or an incorrectly high duration for the incident.
Alerted gets set to 1 after the first alert is sent.
We choose rrd.step / 2 as:
* rrd.step is the maximum time ago the check could have succeeded
* we halve it, so that if a check is flapping, it is not masked
Basically, we guess that the check fails around halfway through the time
since the poller last ran.
* Add additional metadata
* Improve codeclimate slightly
* Consider names that are 2 or 3 components long
* Fix disable notify
* Fix disable notify
* Disable all alerting
* fix db migration
* fix db migration
* fix db migration
* Add autoclearing active alerts if disable alerting set
* Add autoclearing active alerts if disable alerting set
* fix check
* Device in gray if disable_notify is set - not ignore tag
* Catch exceptions generated by alert transports
The alert.php script would completely die if a single alert
transport generated an exception. For example the API transport
if CURL couldn't connect to the api endpoint. The script
should attempt to send alerts to all working transports and not
die because a single transport fails.
* Move alert transport creation into try block
Catch any potential exceptions during transport creation.
None of the transports currently implement __construct()
but the DB could throw and in the future there may be
a transport that does implement it.
* Changed snmptrap.php and handlers to allow for alerts.
* Moved RunRules() to Dispatcher.php
* Modified includes, passes pre-commit tests locally.
* Converted RunRules to OO, fixed formatting in files found by TravisCI
* rebase, covert alert subsy to oop
* Modified init.php to call new Alert subsystem
* fixed dependencies
* Resolved undefined functions
* Fixed PingCheck.php not triggering
* Changed runAlerts to __construct
* Fixes
Can't have Config inside empty()
incorrectly named function (my fault)
poller.php missing shebang
organize imports