gbudny93.RouterOS_Useful_Sc.../RouterOS_Log_To_Alert.rsc

37 lines
1.2 KiB
Text
Raw Permalink Normal View History

2019-07-13 23:38:40 +02:00
# RouterOS Function
# Copyright (c) Grzegorz Budny
2020-02-08 20:03:02 +01:00
# Version 1.0
# Last update: 2/8/2020
2019-07-13 23:38:40 +02:00
# Generates mail alarm based on log message match
2019-07-10 12:33:20 +02:00
2019-07-13 23:38:40 +02:00
:global LogToAlert do={
2019-07-10 12:33:20 +02:00
2019-07-13 23:38:40 +02:00
:local logMessage $message;
2019-07-10 12:33:20 +02:00
2019-07-13 23:38:40 +02:00
:local logFoundCount;
:local logArray;
:local alarmText;
2019-07-10 12:33:20 +02:00
2019-07-13 23:38:40 +02:00
:local logCount [/log print count-only where message~$logMessage];
:local systemName [/system identity get value-name=name];
2019-07-10 12:33:20 +02:00
2019-07-13 12:27:30 +02:00
:if ($logCount > 0) do={
2019-07-13 23:38:40 +02:00
:set $logArray [/log find where message~$logMessage];
:toarray value=$logArray;
:set logFoundCount [:len value=$logArray];
2019-07-11 11:37:30 +02:00
2019-07-13 23:38:40 +02:00
:log print file=$fileName where .id=($logArray->($logFoundCount-1));
2019-07-11 11:37:30 +02:00
2019-07-13 23:38:40 +02:00
:set alarmText [/log print where .id=($logArray->($logFoundCount-1))];
2019-07-11 11:37:30 +02:00
2019-07-13 23:38:40 +02:00
:log warning "$systemName triggered mail alarm";
2019-07-11 11:37:30 +02:00
2019-07-13 23:38:40 +02:00
/tool e-mail send server=$smtpServer port=$smtpPort from=($systemName.$domain) \
to=$recipient subject=($systemName." triggered an alarm!") body="Enclosed detected alarm log message" \
file=$fileName;
}
2019-07-11 11:37:30 +02:00
}
2019-07-13 23:38:40 +02:00
$LogToAlert message="message" fileName="fileName" smtpServer=smtpServer smtpPort=smtpPort domain="@example.com" \
recipient="recipient@example.com";