aboutsummaryrefslogtreecommitdiffstats
path: root/doc/netwatch-notify.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/netwatch-notify.md')
-rw-r--r--doc/netwatch-notify.md85
1 files changed, 60 insertions, 25 deletions
diff --git a/doc/netwatch-notify.md b/doc/netwatch-notify.md
index 85bfb73..2db32bb 100644
--- a/doc/netwatch-notify.md
+++ b/doc/netwatch-notify.md
@@ -1,7 +1,14 @@
Notify on host up and down
==========================
-[◀ Go back to main README](../README.md)
+[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers)
+[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network)
+[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers)
+[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/)
+[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts)
+[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
+
+[⬅️ Go back to main README](../README.md)
> ℹ️ **Info**: This script can not be used on its own but requires the base
> installation. See [main README](../README.md) for details.
@@ -17,8 +24,8 @@ optional parent host is not down to avoid false alerts.
### Sample notifications
-![netwatch-notify notification down](netwatch-notify.d/notification-01-down.svg)
-![netwatch-notify notification up](netwatch-notify.d/notification-02-up.svg)
+![netwatch-notify notification down](netwatch-notify.d/notification-01-down.avif)
+![netwatch-notify notification up](netwatch-notify.d/notification-02-up.avif)
Requirements and installation
-----------------------------
@@ -36,7 +43,13 @@ Configuration
The hosts to be checked have to be added to netwatch with specific comment:
- /tool/netwatch/add comment="notify, hostname=example.com" host=[ :resolve "example.com" ];
+ /tool/netwatch/add comment="notify, name=example.com" host=[ :resolve "example.com" ];
+
+Also notification settings are required for
+[e-mail](mod/notification-email.md),
+[matrix](mod/notification-matrix.md),
+[ntfy](mod/notification-ntfy.md) and/or
+[telegram](mod/notification-telegram.md).
### Hooks
@@ -44,25 +57,28 @@ It is possible to run an up hook command (`up-hook`) or down hook command
(`down-hook`) when a notification is triggered. This has to be added in
comment, note that some characters need extra escaping:
- /tool/netwatch/add comment=("notify, hostname=device, down-hook=/interface/ethernet \\{ disable \\\"en2\\\"; enable \\\"en2\\\"; \\}") host=10.0.0.20;
+ /tool/netwatch/add comment=("notify, name=device, down-hook=/interface/ethernet \\{ disable \\\"en2\\\"; enable \\\"en2\\\"; \\}") host=10.0.0.20;
Also there is a `pre-down-hook` that fires at two thirds of failed checks
required for the notification. The idea is to fix the issue before a
notification is sent.
+Getting the escaping right may be troublesome. Please consider adding a
+script in `/system/script`, then running that from hook.
+
### Count threshould
The count threshould (default is 5 checks) is configurable as well:
- /tool/netwatch/add comment="notify, hostname=example.com, count=10" host=104.18.144.11;
+ /tool/netwatch/add comment="notify, name=example.com, count=10" host=104.18.144.11;
### Parents & dependencies
If the host is behind another checked host add a dependency, this will
suppress notification if the parent host is down:
- /tool/netwatch/add comment="notify, hostname=gateway" host=93.184.216.1;
- /tool/netwatch/add comment="notify, hostname=example.com, parent=gateway" host=93.184.216.34;
+ /tool/netwatch/add comment="notify, name=gateway" host=93.184.216.1;
+ /tool/netwatch/add comment="notify, name=example.com, parent=gateway" host=93.184.216.34;
Note that every configured parent in a chain increases the check count
threshould by one.
@@ -72,11 +88,11 @@ threshould by one.
The host address can be updated dynamically. Give extra parameter `resolve`
with a resolvable name:
- /tool/netwatch/add comment="notify, hostname=example.com, resolve=example.com";
+ /tool/netwatch/add comment="notify, name=example.com, resolve=example.com";
-But be warned: Dynamic updates will probably cause issues if the name has
-more than one record in dns - a high rate of configuration changes (and flash
-writes) at least.
+This supports multiple A or AAAA records for a name just fine, even a CNAME
+to those. An update happens only if no more record with the configured host
+address is found.
### No notification on host down
@@ -84,13 +100,32 @@ Also suppressing the notification on host down is possible with parameter
`no-down-notification`. This may be desired for devices that are usually
powered off, but accessibility is of interest.
- /tool/netwatch/add comment="notify, hostname=printer, no-down-notification" host=10.0.0.30;
+ /tool/netwatch/add comment="notify, name=printer, no-down-notification" host=10.0.0.30;
Go and get your coffee ☕️ before sending the print job.
-Also notification settings are required for e-mail,
-[matrix](mod/notification-matrix.md) and/or
-[telegram](mod/notification-telegram.md).
+### No log on failed resolve
+
+A message is writting to log after three failed attemts to resolve a host.
+However this can cause some noise for hosts that are expected to have
+failures, for example when the name is dynamically added by
+[`dhcp-to-dns`](dhcp-to-dns.md). This can be suppressed:
+
+ /tool/netwatch/add comment="notify, name=client, resolve=client.dhcp.example.com, no-resolve-fail" host=10.0.0.0;
+
+### Add a note in notification
+
+For some extra information it is possible to add a text note. This is
+included verbatim into the notification.
+
+ /tool/netwatch/add comment="notify, name=example, note=Do not touch!" host=10.0.0.31;
+
+### Add a link in notification
+
+It is possible to add a link in notification, that is added below the
+formatted notification text.
+
+ /tool/netwatch/add comment="notify, name=example.com, resolve=example.com, link=https://example.com/";
Tips & Tricks
-------------
@@ -99,10 +134,10 @@ Tips & Tricks
Sometimes it is sufficient if one of a number of hosts is available. You can
make `netwatch-notify` check for that by adding several items with same
-`hostname`. Note that `count` has to be multiplied to keep the actual time.
+`name`. Note that `count` has to be multiplied to keep the actual time.
- /tool/netwatch/add comment="notify, hostname=service, count=10" host=10.0.0.10;
- /tool/netwatch/add comment="notify, hostname=service, count=10" host=10.0.0.20;
+ /tool/netwatch/add comment="notify, name=service, count=10" host=10.0.0.10;
+ /tool/netwatch/add comment="notify, name=service, count=10" host=10.0.0.20;
### Checking internet connectivity
@@ -112,11 +147,11 @@ check `1.1.1.1` (Cloudflare DNS), `9.9.9.9` (Quad-nine DNS), `8.8.8.8`
(Google DNS) or any other reliable address that indicates internet
connectivity.
- /tool/netwatch/add comment="notify, hostname=internet" host=1.1.1.1;
+ /tool/netwatch/add comment="notify, name=internet" host=1.1.1.1;
A target like this suits well to be parent for other checks.
- /tool/netwatch/add comment="notify, hostname=example.com, parent=internet" host=93.184.216.34;
+ /tool/netwatch/add comment="notify, name=example.com, parent=internet" host=93.184.216.34;
### Checking specific ISP
@@ -130,7 +165,7 @@ Create a route and firewall mangle rule.
Finally monitor the address with `netwatch-notify`.
- /tool/netwatch/add comment="notify, hostname=quad-one via isp1" host=1.0.0.1;
+ /tool/netwatch/add comment="notify, name=quad-one via isp1" host=1.0.0.1;
Note that *all* traffic to the given address is routed that way. In case of
link failure this address is not available, so use something reliable but
@@ -142,7 +177,7 @@ non-essential. In this example the address `1.0.0.1` is used, the same service
Netwatch entries can be created to work with both - this script and
[netwatch-dns](netwatch-dns.md). Just give options for both:
- /tool/netwatch/add comment="doh, notify, hostname=cloudflare-dns" host=1.1.1.1;
+ /tool/netwatch/add comment="doh, notify, name=cloudflare-dns" host=1.1.1.1;
See also
--------
@@ -150,5 +185,5 @@ See also
* [Manage DNS and DoH servers from netwatch](netwatch-dns.md)
---
-[◀ Go back to main README](../README.md)
-[▲ Go back to top](#top)
+[⬅️ Go back to main README](../README.md)
+[⬆️ Go back to top](#top)