From c8770efd7222f317ccedf228c0a1cae6c1b16262 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 18 Apr 2020 23:20:29 +0200 Subject: add script 'early-erros' --- README.md | 1 + doc/early-errors.md | 42 ++++++++++++++++++++++++++++++++++++++++++ early-errors | 22 ++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 doc/early-errors.md create mode 100644 early-errors diff --git a/README.md b/README.md index 63a8d77..c1b1923 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,7 @@ Available Scripts * [Use wireless network with daily psk](doc/daily-psk.md) * [Comment DHCP leases with info from access list](doc/dhcp-lease-comment.md) * [Create DNS records for DHCP leases](doc/dhcp-to-dns.md) +* [Send notification with early errors](doc/early-errors.md) * [Send backup via e-mail](doc/email-backup.md) * [Wait for configuration und functions](doc/global-wait.md) * [Send GPS position to server](doc/gps-track.md) diff --git a/doc/early-errors.md b/doc/early-errors.md new file mode 100644 index 0000000..35a11f9 --- /dev/null +++ b/doc/early-errors.md @@ -0,0 +1,42 @@ +Send notification with early errors +=================================== + +[◀ Go back to main README](../README.md) + +Description +----------- + +RouterOS supports sending log messages via e-mail or to a syslog server. +However this does not work early after boot if network connectivity is not +yet established. For example log messages about reboot without proper +shutdown may be missed: + +> router rebooted without proper shutdown, probably power outage + +The script collects log messages with severity `error` and sends a +notification. + +Requirements and installation +----------------------------- + +Just install the script: + + $ScriptInstallUpdate early-errors; + +... and add a scheduler: + + / system scheduler add name=early-erros on-event=":global WaitTimeSync; / system script { run global-wait; \$WaitTimeSync; run early-errors; }" start-time=startup; + +Configuration +------------- + +The notifications just require notification settings for e-mail and telegram. + +See also +-------- + +* [Wait for configuration und functions](global-wait.md) + +--- +[◀ Go back to main README](../README.md) +[▲ Go back to top](#top) diff --git a/early-errors b/early-errors new file mode 100644 index 0000000..ad871f6 --- /dev/null +++ b/early-errors @@ -0,0 +1,22 @@ +#!rsc +# RouterOS script: early-errors +# Copyright (c) 2020 Christian Hesse +# +# send notification with early errors +# https://git.eworm.de/cgit/routeros-scripts/about/doc/early-errors.md + +:global Identity; + +:global SendNotification; + +:local ErrCount [ / log print count-only where topics~"error" ]; +:if ($ErrCount > 0) do={ + :local Message ("The log on " . $Identity . " contains " . $ErrCount . \ + " errors after " . [ / system resource get uptime ] . " uptime.\n"); + :foreach Log in=[ / log find where topics~"error" ] do={ + :local LogVal [ / log get $Log ]; + :set Message ($Message . "\n" . [ :tostr ($LogVal->"topics") ] . \ + " " . ($LogVal->"message")); + } + $SendNotification ("\E2\9A\A0 Early errors") ($Message); +} -- cgit v1.2.3-54-g00ecf