bot telegram mikrotik login

Script ini memonitoring log untuk kata atau frasa tertentu maupun kata atau frasa untuk pengecualian yang terdapat pada log mikrotik. Jika ditemukan log yang cocok, maka akan menjalankan perintah untuk mengirimkan pesan ke Bot Telegram. Script ini memeriksa semua log yang cocok sejak pertama kali script dijalankan.

Baca juga:

Langkah

Buat schedule baru, dan tambahkan script ke dalam schedule. Ubah durasi yang Anda inginkan.

Ubahlah baris ini dengan nama schedule

: local scheduleName “LogMikrotik”

Ubah baris dibawah ini dengan menggunakan Token Bot dan Chat Id Telegram anda. Baca artikel sebelumnya untuk membuat Bot Telegram : Membuat Bot Telegram Untuk Monitoring Status Access Point Hotspot:

local bot “BOT TELEGRAM ANDA”

local ChatID “CHAT ID ANDA”

Baris script ini digunakan untuk memeriksa kata atau frasa yang akan muncul pada log mikrotik, anda bisa menambahkan atau merubahnya dengan kata yang anda inginkan.

:local startBuf [:toarray [/log find message~”logged in” || message~”login failure”]]

Baris ini untuk pengecualian kata yang tidak akan dikirimkan ke Telegram. Misalnya kita hanya ingin mengirimkan pesan ke telegram apabila di log Mikrotik terdapat kata “logged in” dan “login failure” tapi tidak untuk kata “telnet” dan “ssh” untuk menambahkan kata yang lain pisahkan dengan “;”.

:local removeThese {“telnet”; “ssh”}

Tambahkan Script dibawah Ini di kolom On Event

Share to Unlock Contentimage/svg+xml

Silahkan share untuk membuka content ini..

Referensi : Wiki Mikrotik

Sekian tutorial Monitoring Log Mikrotik Dikirim Ke Bot Telegram, apabila ada pertanyaan silahkan tinggalkan di kolom komentar

Baca juga : Membuat Bot Whatsapp

27 COMMENTS

    • Ternyata ada kesalahan penulisan logika di fungsi if ([:len $output] ; 0) do={ seharusnya if ([:len $output] > 0) do={ sehingga script ini tidak bekerja

    • Menurut wiki.mikrotik.com script ini berjalan pada v5.26 dan v6.20, seharusnya berjalan juga di versi terbarunya. Ternyata ada kesalahan penulisan logika di fungsi if ([:len $output] ; 0) do={ seharusnya if ([:len $output] > 0) do={ sehingga script ini tidak bekerja

  1. alhmdllh berhasil mas
    bisa ndak mas tambahin lagin.
    mac addres yang login
    dan identity mikrotik di sertakan agar lebih detail yang sedang login

        • kalau login winbox keterangan yg muncul di log “login failure”, kalau hotspot “login failed”…tapi untuk login sama log nya yaitu “logged in”.. kalau tidak mau muncul login hapus saja baris ini ( /log find message~”logged in” )

          • ndk muncul mas router edintity ya, mohon bantu edit mas scrip ya..
            hilangin user hotpot login sama munculin edentity router

            /system scheduler
            add comment=”oct/25/2019 03:35:08″ interval=2s name=LogMikrotik on-event=”# BE\
            GIN SETUP\r\
            \n:local scheduleName \”LogMikrotik\”\r\
            \nlocal bot \”961118021:AAEo43Cs08y-hSlJSAj67Gao-Wa_z_SH-YQ\”\r\
            \nlocal ChatID \”-384304380\”\r\
            \n:local startBuf [:toarray [/log find message~\”logged in\” || message~\”\
            login failure\”]]\r\
            \n:local removeThese {\”telnet\”;\”whatever string you want\”}\r\
            \n# END SETUP\r\
            \n\r\
            \n# warn if schedule does not exist\r\
            \n:if ([:len [/system scheduler find name=\”\$scheduleName\”]] = 0) do={\r\
            \n /log warning \”[LOGMON] ERROR: Schedule does not exist. Create schedul\
            e and edit script to match name\”\r\
            \n}\r\
            \n\r\
            \n# get last time\r\
            \n:local lastTime [/system scheduler get [find name=\”\$scheduleName\”] co\
            mment]\r\
            \n# for checking time of each log entry\r\
            \n:local currentTime\r\
            \n# log message\r\
            \n:local message\r\
            \n \r\
            \n# final output\r\
            \n:local output\r\
            \n\r\
            \n:local keepOutput false\r\
            \n# if lastTime is empty, set keepOutput to true\r\
            \n:if ([:len \$lastTime] = 0) do={\r\
            \n :set keepOutput true\r\
            \n}\r\
            \n\r\
            \n:local counter 0\r\
            \n# loop through all log entries that have been found\r\
            \n:foreach i in=\$startBuf do={\r\
            \n \r\
            \n# loop through all removeThese array items\r\
            \n :local keepLog true\r\
            \n :foreach j in=\$removeThese do={\r\
            \n# if this log entry contains any of them, it will be ignored\r\
            \n :if ([/log get \$i message] ~ \”\$j\”) do={\r\
            \n :set keepLog false\r\
            \n }\r\
            \n }\r\
            \n :if (\$keepLog = true) do={\r\
            \n \r\
            \n :set message [/log get \$i message]\r\
            \n\r\
            \n# LOG DATE\r\
            \n# depending on log date/time, the format may be different. 3 known for\
            mats\r\
            \n# format of jan/01/2002 00:00:00 which shows up at unknown date/time. \
            Using as default\r\
            \n :set currentTime [ /log get \$i time ]\r\
            \n# format of 00:00:00 which shows up on current day’s logs\r\
            \n :if ([:len \$currentTime] = 8 ) do={\r\
            \n :set currentTime ([:pick [/system clock get date] 0 11].\” \”.\$cur\
            rentTime)\r\
            \n } else={\r\
            \n# format of jan/01 00:00:00 which shows up on previous day’s logs\r\
            \n :if ([:len \$currentTime] = 15 ) do={\r\
            \n :set currentTime ([:pick \$currentTime 0 6].\”/\”.[:pick [/syste\
            m clock get date] 7 11].\” \”.[:pick \$currentTime 7 15])\r\
            \n }\r\
            \n }\r\
            \n \r\
            \n# if keepOutput is true, add this log entry to output\r\
            \n :if (\$keepOutput = true) do={\r\
            \n :set output (\$output.\$currentTime.\” \”.\$message.\”\\r\\n\”)\r\
            \n }\r\
            \n\r\
            \n :if (\$currentTime = \$lastTime) do={\r\
            \n :set keepOutput true\r\
            \n :set output \”\”\r\
            \n }\r\
            \n }\r\
            \n :if (\$counter = ([:len \$startBuf]-1)) do={\r\
            \n :if (\$keepOutput = false) do={ \r\
            \n :if ([:len \$message] > 0) do={\r\
            \n :set output (\$output.\$currentTime.\” \”.\$message.\”\\r\\n\”)\
            \r\
            \n }\r\
            \n }\r\
            \n }\r\
            \n :set counter (\$counter + 1)\r\
            \n}\r\
            \n\r\
            \nif ([:len \$output] > 0) do={\r\
            \n /system scheduler set [find name=\”\$scheduleName\”] comment=\$current\
            Time\r\
            \n /tool fetch url=\”https://api.telegram.org/bot\$bot/sendmessage\?chat_\
            id=\$ChatID&text=MikroTik alert \$currentTime : \$output\” keep-result=no;\
            \r\
            \n}” policy=\
            ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
            start-time=startup

  2. Adakah efek samping dari penggunaan script diatas om,,kerena pasti nya durasi dari pengiriman,log pasti hampir setiap saat

Leave a Reply