🛡 Log Parser – Event Trigger Script

❗ Muammo

MikroTik routerlari loglarini avtomatik tarzda parsalash va tegishli xabarlar bo’yicha harakatlar boshlash muammosi.

🎯 Yechim

Log Parser – Event Trigger Script yordamida MikroTik routerlarining loglarini parsalash va tegishli xabarlar bo’yicha harakatlar boshlash mumkin.

🛠 Sozlash bosqichlari

1️⃣ Log buffer yaratish

Log buffer yaratish uchun /system logging action buyrug’ini ishlatamiz.

/system logging action add memory-lines=100 memory-stop-on-full=no name=logParse target=memory

2️⃣ Log topiclarini sozlash

Log topiclarini sozlash uchun /system logging buyrug’ini ishlatamiz.

/system logging add action=logParse disabled=no prefix="" topics=system,info
/system logging add action=logParse disabled=no prefix="" topics=system,error,critical
/system logging add action=logParse disabled=no prefix="" topics=dhcp

3️⃣ Log Parser skriptini sozlash

Log Parser skriptini sozlash uchun quyidagi skriptni ishlatamiz.

:local logBuffer "logParse"
:local logParserScript "Log-Parser-Script"
:global logParseVar ""
:local loglastparsetime
:local loglastparsemessage
:local findindex
:local property
:local value
:local logEntryTopics
:local logEntryTime
:local logEntryMessage
:local curDate
:local curMonth
:local curDay
:local curYear
:local clearedbuf
:local lines
:set curDate [/system clock get date]
:set curMonth [:pick [:tostr $curDate] 0 3]
:set curDay [:pick [:tostr $curDate] 4 6]
:set curYear [:pick [:tostr $curDate] 7 11]
:set clearedbuf 0
:foreach rule in=[/log print as-value where buffer=($logBuffer)] do={
:if ($clearedbuf = 0) do={
/system logging action {
:set lines [get ($logBuffer) memory-lines]
set ($logBuffer) memory-lines 1
set ($logBuffer) memory-lines $lines
}
:set clearedbuf 1
}
:set logEntryTime ""
:set logEntryTopics ""
:set logEntryMessage ""

:foreach item in=[:toarray $rule] do={
:set findindex [:find [:tostr $item] "="]
:set property [:tostr [:pick [:tostr $item] 0 $findindex]]
:set value [:tostr [:pick [:tostr $item] ($findindex + 1) [:len [:tostr $item]]]]
:if ([:tostr $property] = "time") do={ :set logEntryTime $value }
:if ([:tostr $property] = "topics") do={ :set logEntryTopics $value }
:if ([:tostr $property] = "message") do={ :set logEntryMessage $value }
}
:set findindex [:find [:tostr $logEntryTime] " "]
:if ([:len $findindex] = 0) do={
:set logEntryTime ($curMonth . "/" . $curDay . "/" . $curYear . " " . \
[:tostr $logEntryTime])
}
:if ($findindex = 6) do={
:set logEntryTime ([:pick [:tostr $logEntryTime] 0 $findindex] . "/" . $curYear . \
[:pick [:tostr $logEntryTime] $findindex [:len [:tostr $logEntryTime]]])
}
:if ($findindex = 3) do={
:set logEntryTime ([:pick [:tostr $logEntryTime] 0 $findindex] . "/" . $curDay . "/" . $curYear . \
[:pick [:tostr $logEntryTime] $findindex [:len [:tostr $logEntryTime]]])
}

:if ($logEntryTime = $loglastparsetime && $logEntryMessage = $loglastparsemessage) do={
} else={
:set logParseVar ($logEntryTime . "," . $logEntryTopics . "," . $logEntryMessage)
/system script run ($logParserScript)

:set loglastparsetime $logEntryTime
:set loglastparsemessage $logEntryMessage
}
}

⚠️ Diqqat

Skript(lar)dagi RouterOS buyruqlarini, parametrlarini, sintaksisni HECH O'ZGARTIRMA.

✅ Xulosa

Log Parser - Event Trigger Script yordamida MikroTik routerlari loglarini avtomatik tarzda parsalash va tegishli xabarlar bo'yicha harakatlar boshlash mumkin.

0 0 ovozlar
Article Rating
Obuna boʻling
Xabar berish
guest

0 Comments
Eng avvalgi
Eng yangi Eng ko'p ovoz berilgan