Senin, 16 Desember 2019

Membuat Bot Telegram Untuk Monitoring Status Access Point Hotspot


netwach mikrotik telegram
Mikrotik Netwach -Monitoring Status Access Point Hotspot Dengan Menggunakan Telegram

Netwatch

Netwatch memonitor keadaan host di jaringan Mikrotik dengan cara mengirimkan ping ICMP ke alamat IP tertentu. Untuk setiap entri dalam tabel netwatch Anda dapat menentukan alamat IP, interval ping, dan skrip konsol. Keuntungan utama dari netwatch adalah kemampuannya untuk mengeluarkan perintah konsol setiap saat ketika terjadi perubahan pada status ping ICMP ke alamat IP tertentu.

Telegram

Telegram adalah sebuah aplikasi multiplatform yang berfungsi sebagai pengirim pesan instan berbasis cloud yang bersifat gratis/free dan nirlaba. Klien Telegram tersedia untuk perangkat Android, iOS, Windows Phone, Ubuntu Touch dan sistem perangkat komputer berbasis OS Windows, OS X, Linux. Para user dapat mengirim pesan dan mengirim foto, mengirim video, mengirim stiker, mengirim audio, dan mengirim tipe berkas lainnya. Kelebihan telegram dibandingkan dengan aplikasi pengirim pesan lainya yaitu pesan yang dikirim oleh telegram terenkripsi dengan baik.

Topologi Jaringan

Topologi jaringan yang saya gunakan yaitu Modem –> Mikrotik –> HUB –> Access Point, kita bisa lihat pada gambar dibawah ini:
Topologi Jaringan

Membuat Bot

Langkah selanjutnya yaitu membuat bot, dalam pencarian carilah @BotFather lalu ketiklah /newbot
BotFather
Anda akan diminta untuk memasukkan nama bot yang akan dibuat, nama tersebut harus berakhiran dengan kata ‘bot’ sebagai contoh saya membuatnya dengan nama labkom_bot.
Apabila proses verifikasi berhasil dan nama bot yang dibuat tidak digunakan oleh orang lain maka bot tersebut dapat kita gunakan.
Membuat Bot Telegram
Apabila Bot berhasil dibuat akan muncul informasi Token HTTP API, catat dan simpanlah informasi Token yang nanti akan kita gunakan di langkah selanjutnya.
Informasi Token Telegram

Melihat Chat ID

Untuk melihat Chat ID ada dua cara yaitu dengan menggunakan perintah getUpdates dan menggunakan bantuan bot @get_id_bot. Kita coba saja dengan menggunakan perintah yang pertama, ketiklah di browser
https://api.telegram.org/(Token Anda)/getUpdates lalu akan muncul informasi chat id sebagai berikut:
Chat ID dengan perintah getUpdates catat dan simpanlah chat id anda
Cara yang kedua anda bisa mencari di menu pencarian @get_id_bot lalu klik tombol star maka bot tersebut akan mengirimkan pesan berupa chat id anda, catat dan simpan chat id anda.
Melihat Chat ID

Pengecekan

Untuk mengecek anda dapat menggunakan alamat dibawah ini di browser
https://api.telegram.org/bot(token anda)/sendMessage?chat_id=(chat id anda)&text=Ping AP Bullet UP
Apabila berhasil pesan akan masuk ke telegram anda
Pesan berhasil masuk ke telegram
Anda juga bisa memasukkan bot tersebut kedalam grup dengan cara masuk ke Contact Info lalu Add to group, carilah grup yang anda ikuti.
Agar chat dari bot tersebut terkirim ke grup carilah informasi chat id dengan perintah getUpdates yang telah dijelaskan di atas.
Apabila chat id sudah didapatkan anda bisa mengeceknya dengan perintah yang telah dijelaskan di atas, apabila telah berhasil ditandai dengan bot tersebut mengirimkan pesan kedalam grup.

Konfigurasi Netwach

Setelah proses membuat bot berhasil kita tinggal memasukkannya kedalam netwach dengan skrip:
:local CHID "XXXXXXXX";
:local BotID "XXXXXXXX-XXXXXXXXXXXXXXXXXXXXX";
:local HostStatus "down";

:local message "Ping $host $HostStatus";

/tool fetch url="https://api.telegram.org/bot$BotID/sendmessage\?chat_id=$CHID&text=$message";
anda bisa membukanya dengan cara masuk ke winbox menu tool –> Netwach
Mikrotik Netwach
Untuk menguji apakah skrip yang di masukkan kedalam netwach berjalan dengan baik anda bisa mencobanya dengan men-disable dan men-enable kan saja.
Mikrotik Netwach
Bot mengirimkan pesan monitoring jaringan kedalam grup

Binding IP Access Point

Apabila Hotspot anda menggunakan Captive Portal / Login Page Hotspot jangan lupa semua IP Address Access Point yang terhubung ke mikrotik di bypassed.
IP Bindings
Sekian tutorial Mikrotik Netwach -Monitoring Status Access Point Hotspot Dengan Menggunakan Telegram, apabila ada kesalahan atau kekeliruan silahkan tinggalkan di komentar dibawah ini.
Anda boleh menyebarluaskan artikel ini dengan syarat mencantumkan link sumbernya

Baca juga : Membuat Bot Whatsapp

Monitoring Jaringan Mikrotik Menggunakan Bot Telegram Menggunakan Script dan Netwach

Untuk membuat Bot Telegram silahkan kunjungi artikel sebelumnya yang berjudul : Mikrotik Netwach – Monitoring Status Access Point Hotspot Dengan Menggunakan Telegram
Script ini digunakan untuk memonitoring kondisi jaringan di Mikrotik anda, anda cukup mengganti ip address, api key dan chat id bot telegram anda. Untuk langkah-langkahnya sebagai berikut:

Caranya

Tambahkan Script

Caranya dengan masuk ke menu System –> Scripts, lalu pastekan Script dibawah ini di kolom Source, sebagai contoh saya memberi nama “billing”
Share to Unlock Content
Silahkan share untuk membuka content ini..

Penjelasan singkat script diatas

/tool flood-ping 192.168.10.2 count=10, melakukan fungsi flood ping yang ada di mikrotik dengan melakukan pengiriman/send dengan total packet 10 ke ip address 192.168.10.2, kemudian akan menjalankan fungsi logika if ($sent = 10), dimana apabila varibel $sent sama dengan 10 akan memberikan nilai ke varibel yang diperoleh dari fungsi flood ping tadi. Ada beberapa nilai yang diperoleh dari fungsi ping flood diantaranya variabel avgRtt dari nilai avg-rtt (average – Round Trip Time), varibel pout dari nilai $sent (total packet yang dikirimkan), variabel pin dari nilai $received (total packet yang diterima). Kemudian melakukan perhitungan ke satuan persen antara packet yang dikirim dengan packet yang diterima “100 – (($pin * 100) / $pout”, nilai persen tersebut ditampilkan dengan variabel $ploss. Kemudian beberapa nilai yang diperoleh tadi dikirimkan ke log dan Bot Telegram. Baca juga : Membuat Halaman Pemberitahuan Ketika Internet Mati Untuk Pelanggan Hotspot

Netwach

Agar Script Tersebut berjalan ketika kondisi IP Address yang kita monitoring terjadi Down Time (RTO) maupun Uptime tambahkan sebuah Netwach, dan isilah di Tab Up dan Down dengan nama script yang telah dibuat tadi.

Scheduler

Agar script diatas berjalan dengan interval tertentu bisa ditambahkan ke System Scheduler
/system scheduler add interval=50s name=Monitoring billing on-event="billing" policy=read,write start-time=startup

Hasilnya

Referensi : Forum Mikrotik

Monitoring Mikrotik dengan Bot Telegram Interaktif tanpa Pemograman PHP

Untuk membuat Bot Telegram yang bisa di ajak “ngobrol” tentunya anda diharuskan mempunyai web server dan setidaknya mengerti bahasa pemograman PHP, tentunya hal ini cukup rumit apabila anda tidak mempunyai ilmu dasar tentang Pemograman PHP maupun tidak mempunyai web server. Pada tutorial kali ini kita akan membuat Bot Telegram kita bisa di ajak “ngobrol” hanya dengan menggunakan fasilitas System Scheduler dan System Script pada Mikrotik yang bisa dimanfaatkan untuk memonitoring kondisi Mikrotik kita. Untuk menggunakan Bot Telegram PHP silahkan kunjungi Cara Konfigurasi MIKBOTAM untuk Monitoring Mikrotik dengan Menggunakan Bot Telegram PHP

Langkah

Langkah pertama yang perlu anda lakukan yaitu harus mempunyai Bot Telegram, untuk membuatnya silahkan baca artikel sebelumnya yang berjudul : Membuat Bot Telegram Untuk Monitoring Status Access Point Hotspot

Buat Script

Buat script dengan nama “tg_config”

Script ini sebagai konfigurasi awal yang berfungsi agar Mikrotik dan Bot anda bisa saling berkomunikasi, anda tinggal memasukkan API Key dan Chat ID. https://pastebin.com/VRj1KDv6
:put "tg: Load config"

:local config {

"botAPI"="(API BOT TELEGRAM ANDA)";
"defaultChatID"="(CHAT ID BOT ANDA)";
"trusted"="(CHAT ID YANG DIGUNAKAN UNTUK BERKOMUNIKASI DENGAN BOT)";
"storage"="";
"timeout"=1;
}

return $config

Buat script dengan nama “tg_getUpdates”

Skrip memeriksa pesan baru dari bot telegram dan memanggil skrip yang sesuai. Jika perintah tidak dikenal atau sumbernya tidak tepercaya, perintah pada telegram akan diabaikan.
Share to Unlock Content
Silahkan share untuk membuka content ini..

Buat script dengan nama “tg_cmd_cpu”

Script ini bisa dipanggil dengan perintah /cpu, dimana fungsi ini sebagai monitoring dari kondisi Mikrotik anda. https://pastebin.com/SGCX15ac
:local send [:parse [/system script get tg_sendMessage source]]
:local hotspot [:len [/ip hotspot active find]]

:put $params
:put $chatid
:put $from
 
:local text "Router Id:* $[/system identity get name] * %0A\
Uptime: _$[/system resource get uptime]_%0A\
CPU Load: _$[/system resource get cpu-load]%_%0A \
RAM: _$(([/system resource get total-memory]-[/system resource get free-memory])/(1024*1024))M/$([/system resource get total-memory]/(1024*1024))M_%0A\
Voltage: _$[:pick [/system health get voltage] 0 2]V_%0A\
Temp: _$[ /system health get temperature]C_"
 
$send chat=$chatid text=$text mode="Markdown"
:return true

Buat script dengan nama “tg_cmd_hotspotactive”

Script ini bisa dipanggil dengan perintah /hotspot, dimana fungsi ini akan menampilkan jumlah user hotspot yang sedang online.
:local send [:parse [/system script get tg_sendMessage source]]
:local hotspot [:len [/ip hotspot active find]]

:put $params
:put $chatid
:put $from
 
:local text "Router Id:* $[/system identity get name] * %0A\
Hotspot users: _$hotspot online_"
 
$send chat=$chatid text=$text mode="Markdown"
:return true

Buat script dengan nama “tg_cmd_ping”

Script ini bisa dipanggil dengan perintah /ping.
:local send [:parse [/system script get tg_sendMessage source]]
:put $params
:put $chatid
:put $from
#Ping Variables
:local avgRtt;
:local pin
:local pout
:local datetime "$[/system clock get date] $[/system clock get time]"
#Ping it real good
/tool flood-ping 8.8.8.8 count=10 do={
  
:if ($sent = 10) do={
    
:set avgRtt $"avg-rtt"
    
:set pout $sent
    
:set pin $received
  }

}

:local ploss (100 - (($pin * 100) / $pout))

:local logmsg ("Ping Average for 8.8.8.8 - ".[:tostr $avgRtt]."ms - packet loss: ".[:tostr $ploss]."%")

:log info $logmsg

:local text "Router Id:* $[/system identity get name] * %0A\
Tanggal : _$datetime_%0A\
Ping : _8.8.8.8_%0A\
Log : _$logmsg_"
$send chat=$chatid text=$text mode="Markdown"
:return true

Buat schedule

Schedule ini akan menjalankan setiap 10 detik sekali script dengan nama tg_getUpdates
Tambahkan pada On Event script dibawah ini:
/system script run tg_getUpdates

Import script ke Mikrotik

Untuk mempermudah dalam membuat script diatas, lakukan langkah-langkah berikut ini:
Download file “script_telegram.rsc” dengan menggunakan perintah di New Terminal:
/tool fetch url="https://labkom.co.id/file/script_telegram.rsc" mode=http
Lalu import file “script_telegram.rsc” dengan menggunakan perintah di New Terminal:
/import file=script_telegram.rsc
Sumber : coders.in.ua