doc/netwatch-notify: RouterOS v7 path syntax

This commit is contained in:
Christian Hesse 2022-05-11 10:24:18 +02:00
parent 9ef2718c6d
commit 7561c719d1

View file

@ -10,7 +10,7 @@ Description
----------- -----------
This script sends notifications about host UP and DOWN events. In comparison This script sends notifications about host UP and DOWN events. In comparison
to just netwatch (`/ tool netwatch`) and its `up-script` and `down-script` to just netwatch (`/tool/netwatch`) and its `up-script` and `down-script`
this script implements a simple state machine and dependency model. Host this script implements a simple state machine and dependency model. Host
down events are triggered only if the host is down for several checks and down events are triggered only if the host is down for several checks and
optional parent host is not down to avoid false alerts. optional parent host is not down to avoid false alerts.
@ -29,14 +29,14 @@ Just install the script:
Then add a scheduler to run it periodically: Then add a scheduler to run it periodically:
/ system scheduler add interval=1m name=netwatch-notify on-event="/ system script run netwatch-notify;" start-time=startup; /system/scheduler/add interval=1m name=netwatch-notify on-event="/system/script/run netwatch-notify;" start-time=startup;
Configuration Configuration
------------- -------------
The hosts to be checked have to be added to netwatch with specific comment: 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, hostname=example.com" host=[ :resolve "example.com" ];
### Hooks ### Hooks
@ -44,7 +44,7 @@ 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 (`down-hook`) when a notification is triggered. This has to be added in
comment, note that some characters need extra escaping: 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, hostname=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 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 required for the notification. The idea is to fix the issue before a
@ -54,15 +54,15 @@ notification is sent.
The count threshould (default is 5 checks) is configurable as well: 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, hostname=example.com, count=10" host=104.18.144.11;
### Parents & dependencies ### Parents & dependencies
If the host is behind another checked host add a dependency, this will If the host is behind another checked host add a dependency, this will
suppress notification if the parent host is down: 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=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, hostname=example.com, parent=gateway" host=93.184.216.34;
Note that every configured parent in a chain increases the check count Note that every configured parent in a chain increases the check count
threshould by one. threshould by one.
@ -72,7 +72,7 @@ threshould by one.
The host address can be updated dynamically. Give extra parameter `resolve` The host address can be updated dynamically. Give extra parameter `resolve`
with a resolvable name: with a resolvable name:
/ tool netwatch add comment="notify, hostname=example.com, resolve=example.com"; /tool/netwatch/add comment="notify, hostname=example.com, resolve=example.com";
But be warned: Dynamic updates will probably cause issues if the name has 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 more than one record in dns - a high rate of configuration changes (and flash
@ -84,7 +84,7 @@ Also suppressing the notification on host down is possible with parameter
`no-down-notification`. This may be desired for devices that are usually `no-down-notification`. This may be desired for devices that are usually
powered off, but accessibility is of interest. 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, hostname=printer, no-down-notification" host=10.0.0.30;
Go and get your coffee ☕️ before sending the print job. Go and get your coffee ☕️ before sending the print job.
@ -101,8 +101,8 @@ 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 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. `hostname`. 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.10;
/ tool netwatch add comment="notify, hostname=service, count=10" host=10.0.0.20; /tool/netwatch/add comment="notify, hostname=service, count=10" host=10.0.0.20;
### Checking internet connectivity ### Checking internet connectivity
@ -112,11 +112,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 (Google DNS) or any other reliable address that indicates internet
connectivity. connectivity.
/ tool netwatch add comment="notify, hostname=internet" host=1.1.1.1; /tool/netwatch/add comment="notify, hostname=internet" host=1.1.1.1;
A target like this suits well to be parent for other checks. 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, hostname=example.com, parent=internet" host=93.184.216.34;
### Checking specific ISP ### Checking specific ISP
@ -124,12 +124,13 @@ Having several ISPs for redundancy a failed link may go unnoticed without
proper monitoring. You can use routing-mark to monitor specific connections. proper monitoring. You can use routing-mark to monitor specific connections.
Create a route and firewall mangle rule. Create a route and firewall mangle rule.
/ ip route add distance=1 gateway=isp1 routing-mark=via-isp1; /routing/table/add fib name=via-isp1;
/ ip firewall mangle add action=mark-routing chain=output new-routing-mark=via-isp1 dst-address=1.0.0.1 passthrough=yes; /ip/route/add distance=1 gateway=isp1 routing-table=via-isp1;
/ip/firewall/mangle/add action=mark-routing chain=output new-routing-mark=via-isp1 dst-address=1.0.0.1 passthrough=yes;
Finally monitor the address with `netwatch-notify`. 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, hostname=quad-one via isp1" host=1.0.0.1;
Note that *all* traffic to the given address is routed that way. In case of 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 link failure this address is not available, so use something reliable but
@ -141,7 +142,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 entries can be created to work with both - this script and
[netwatch-dns](netwatch-dns.md). Just give options for both: [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, hostname=cloudflare-dns" host=1.1.1.1;
See also See also
-------- --------