2017年4月1日 星期六

[RouterOS] 自動將 Log 郵寄至 E-Mail

前言


前陣子使用了 syslog-ng 來收 log,但是要看 log 還要登入進 Raspberry Pi 上看略嫌麻煩,不如讓 RouterOS 定時寄到我信箱看比較方便些。
(本腳本適用於每日 log 量不大的家用設備,一天會超過兩三千條的還是乖乖用 syslog server 吧!)

Script


#read log
:local logcontent
:foreach int in=[/log find ] do={
:set logcontent ("$logcontent\r\n" .[/log get $int time]. " - " .[/log get $int message])
}
#send email
/tool e-mail send to="example@email.com" subject=("[Syslog] " . "Mikrotik " . [/system clock get date]) body=$logcontent
#delete old log
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=500
:log info "finishing the log dump"


用法


首先在 /system script 下新增腳本,將上面那段腳本貼上,
接下來在 /system scheduler 下新增排程,輸入 /system script run LogDump
我是設定每 6 小時寄送一次,因為這個腳本一次寄送上限大概是 500 條 log 左右,
如果設備每天的 log 不多,可以調整為每 12 小時或是每 24 小時寄送一次就好。


參考資料

[網路] 淺談 STP - Spanning Tree Protocol