Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/catalyst/smokeping-mtr-alert

Run MTR automatically when SmokePing triggers an alert
https://github.com/catalyst/smokeping-mtr-alert

Last synced: 3 days ago
JSON representation

Run MTR automatically when SmokePing triggers an alert

Awesome Lists containing this project

README

        

# smokeping-mtr-alert

When SmokePing detects an [alert](http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html#___top) condition it can be configured to run a script instead of sending an e-mail.

This script, when launched from SmokePing, runs an [MTR](http://www.bitwizard.nl/mtr/) traceroute in report mode and e-mails the output to the designated address. This can be useful in providing some clues as to the source of packet loss.

## Installation

This script requires that MTR and sendmail are installed and available on the path of the user running SmokePing.

`smokeping-mtr-alert` should be placed in a directory that is readable by the SmokePing user (such as `/usr/local/bin`), and marked as executable. As SmokePing does not permit arguments to be passed to alert scripts you may wish to use a wrapper script to override configuration (such as the destination e-mail address or system name). An example wrapper script is provided in `smokeping-mtr-alert-wrapper`.

SmokePing may then be configured in its "pipe" mode to run the script when an alert is triggered. The "from" address can be anything as it is not passed to the script.


*** Alerts ***
to = |/usr/local/bin/smokeping-mtr-alert
from = [email protected]

+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times in a row

Configured alerts may then be attached to targets.


++ AlertDemo

menu = Demonstration
title = Demonstration host for alerts
host = 192.0.2.1
alerts = someless

More information about the alerting syntax is available [in the SmokePing documentation](http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html#___top).

## Example e-mail


From: [email protected]
To: [email protected]
Subject: monitoring SmokePing alert: Test.AlertDemo
Date: Thu, 2 Jun 2016 13:27:22 +1200 (NZST)

Packet loss report from monitoring for Test.AlertDemo at Thu Jun 2 13:27:22 2016.

mtr -n --report 192.0.2.1

Start: Thu Jun 2 13:27:12 2016
HOST: monitoring Loss% Snt Last Avg Best Wrst StDev
1.|-- 203.0.113.0 0.0% 10 0.7 6.3 0.4 55.9 17.4
2.|-- 198.51.100.0 0.0% 10 21.9 24.3 15.7 43.1 9.2
3.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0

Alert triggered: someloss
Target: Test.AlertDemo
Target hostname: 192.0.2.1
Loss pattern: 100%
RTT: U

## Usage

The positional arguments to the script will usually be provided by SmokePing itself.


usage: smokeping-mtr-alert [-h] [--email EMAIL] [--name NAME]
alert target loss_pattern rtt hostname

Run from SmokePing as a "pipe" alert target. Sends an MTR for the target to
the designated e-mail address. Michael Fincham
<[email protected]>.

positional arguments:
alert name of the alert, supplied by smokeping
target target being monitored, supplied by smokeping
loss_pattern loss pattern that has triggered, supplied by smokeping
rtt current RTT for target, supplied by smokeping
hostname hostname of target, supplied by smokeping

optional arguments:
-h, --help show this help message and exit
--email EMAIL e-mail address to send report, defaults to root
--name NAME name of smokeping installation, defaults to hostname where
the script runs

## Limitations

* No support for the `edgetrigger` option in SmokePing.
* SmokePing will not run a script with custom parameters, necessitating the use of a wrapper script if defaults need to be overridden.