bot telegram monitoring mikrotik

Telkom memberlakukan peraturan FUP atau Fair Usage Policy untuk layanan Internet Indihome Fibernya tersebut untuk membatasi aktifitas tidak wajar untuk penggunaan internet pelanggannya maka dari itu sebagai pelanggan indihome kita harus sesering mungkin mengecek penggunaan internet (FUP) agar kecepatan internet tidak menurun drastis.

Daftar FUP Indihome

Cara Cek FUP Indihome

Banyak cara untuk mengecek penggunaan FUP indihome salah satunya menggunakan aplikasi android my indihome.

Cara cek FUP Indihome dengan aplikasi

Aplikasi my indihome bisa di unduh di google playstore, lalu daftarkan dengan menggunakan akun email yang aktif. Setelah akun my indihome aktif kita bisa langsung menambahkan nomer pelanggan indihome, di aplikasi tersebut kita bisa melihat tagihan internet/telepon, pemakaian telepon dan pemakaian internet

Informasi FUP Indihome di aplikasi My Indihome

Cara Cek Fup Indihome Lewat SMS

Ternyata ada cara cek FUP Indihome yang lebih mudah dan praktis , yaitu dengan mengirimkan sms . Berikut format sms yang harus kalian kirimkan dengan tarif per SMS nya Rp . 350 ,- per 1 kali sms .

Ketik sms ISP IH Kode area+nomor telepon rumah yang terdaftar indihome
Contoh : ISP IH 0227888452
Kirim ke 98108
Tunggu balasan berisi informasi FUP Internet Indihome.

Cara Cek Fup Indihome di Mikrotik

Bagi pelanggan Indihome yang memakai Mikrotik sebagai bandwidth manager, kita bisa memanfaatkannya untuk mengecek penggunaan internet kita. Dimana penggunaan internet di cek berdasarkan total trafik yang melewati interface WAN pada mikrotik kita.

Langkah

Agar script ini berjalan dengan benar anda harus membuat terlebih dahulu bot telegram interaktif yang terdapat pada postingan berikut ini: Monitoring Mikrotik dengan Bot Telegram Interaktif tanpa Pemograman PHP

Buat Schedule

Buat Schedule dibawah ini dengan menjalankan di New Terminal. Schedule dibawah ini berfungsi untuk menyimpan informasi terahir penggunaan internet kita apabila mikrotik reboot informasi penggunaan internet masih tersimpan di system scheduler.

/system scheduler 
add interval="00:00:00" name="RXByte.log" on-event="1" start-time="00:00:00"
add interval="00:00:00" name="RXByteCur.log" on-event="1" start-time="00:00:00"
add interval="00:00:00" name="TXByte.log" on-event="1" start-time="00:00:00"
add interval="00:00:00" name="TXByteCur.log" on-event="1" start-time="00:00:00"

Buat Schedule dengan nama “RESET-RXTX”

Script ini berfungsi untuk mereset informasi yang terdapat di schedule sebelumnya yang telah dibuat apabila tanggal mikrotik menunjukkan tanggal 01 tiap bulannya. Maka dari itu pastikan setingan SNTP Client pada mikrotik di seting dengan benar. Tambahkan script berikut di on event

:local varDate;
:local varDay;
:set varDate [/system clock get date];
:set varDay [:pick $varDate 4 6];
:if ($varDay = "01") do={ 
# jika har ini tanggal 1 reset RXTX ke nilai awal
/interface reset-counters [find name=pppoe-indihome]
/system scheduler set RXByte.log comment="1" on-event="1"
/system scheduler set RXByteCur.log comment="1" on-event="1"
/system scheduler set TXByte.log comment="1" on-event="1"
/system scheduler set TXByteCur.log comment="1" on-event="1"
/system scheduler disable [/system scheduler find name="RESET-RXTX"]
}

Konfigurasi untuk SNTP Client pada Mikrotik

/system ntp client
set enabled=yes primary-ntp=202.65.114.202 secondary-ntp=119.82.243.189

Buat script dengan nama “tg_cmd_fup”

Ubah terlebih dahulu nama interface yang akan di monitoring penggunaan internetnya dan total FUPnya.

:local send [:parse [/system script get tg_sendMessage source]]
:put $params
:put $chatid
:put $from

:local INTMon pppoe-indihome;
:local router [/system identity get name];
# silahkan ganti dengan interface (ether) yang ingin dipantau
################################################################
:local TOTQuota 2000;
# Set total quota dalam GB misalkan ISP hanya memberikan hanya 2000GB
################################################################
:local RXByteCur [/interface get $INTMon rx-byte];
# Mengambil nilai RX-Byte saat ini pada interface terpilih
################################################################
:local RXByteCount [/system scheduler get RXByteCur.log on-event];
# Mengambil nilai RX-Byte dalam file log RXByteCur
################################################################
:local RXByte [/system scheduler get RXByte.log on-event];
# Mengambil nilai RX-Byte sebelumnya dalam file log RXByte
################################################################
:local TXByteCur [/interface get $INTMon tx-byte];
# Mengambil nilai TX-Byte saat ini pada interface terpilih
################################################################
:local TXByteCount [/system scheduler get TXByteCur.log on-event];
# Mengambil nilai TX-Byte saat ini dalam file log TXByteCur
################################################################
:local TXByte [/system scheduler get TXByte.log on-event];
# Mengambil nilai TX-Byte saat ini dalam file Log TXByte
################################################################
:local ifReboot 0;
# kita perlu mengetahui apakah router reboot  
################################################################
:if ($RXByteCur>=$RXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
:if ($TXByteCur>=$TXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
# Tandai jika nilai RXTX-Byte saat ini lebih besar dari RXTX-Byte pada log
################################################################
:if ($ifReboot>=1) do={
# Cek Jika Router Reboot
################################################################
:set $RXByte ($RXByte+$RXByteCount);
/system scheduler set RXByte.log comment=$RXByte on-event=$RXByte
# jika komputer reboot jumlahkan total RX-Byte
################################################################
:set $TXByte ($TXByte+$TXByteCount);
/system scheduler set TXByte.log comment=$TXByte on-event=$TXByte
} else={
# jika komputer reboot jumlahkan total TX-Byte
################################################################
}
:set RXByteCount ($RXByteCur);
/system scheduler set RXByteCur.log comment=$RXByteCount on-event=$RXByteCount
# Perbaharui nilai RX-Byte saat ini pada file log RXByteCur
################################################################
:set TXByteCount ($TXByteCur);
/system scheduler set TXByteCur.log comment=$TXByteCount on-event=$TXByteCount
# Perbaharui nilai TX-Byte saat ini pada file log TXByteCur
################################################################
:local RXTot ($RXByte+$RXByteCur);
:local RXMB ($RXTot / 1024 / 1024);
:local RXGB ($RXTot  / 1024 / 1024 / 1024);
# kalkulasi nilai RX-BYTE dalam MB dan GB
################################################################
:local TXTot ($TXByte+$TXByteCur);
:local TXMB ($TXTot / 1024 / 1024);
:local TXGB ($TXTot / 1024 / 1024 / 1024);
# kalkulasi nilai TX-BYTE dalam MB dan GB
################################################################
:local RXTX ($RXTot+$TXTot);
:local RXTXMB ($RXMB+$TXMB);
:local RXTXGB ($RXGB+$TXGB);
# Total kalkulasi nilai Total RXTX
################################################################
:log warning "###############################################";
:log warning "BANDWIDTH MONITORING [ Router Identity: $[/system identity get name] ]";
:log warning "###############################################";
:log warning "Interface Monitoring For: $INTMon";
/interface monitor-traffic [/interface find name=$INTMon] once do={
:local tx (tx-bits-per-second / 1024);
:local rx (rx-bits-per-second / 1024);
:log warning "Live Monitor RX = $rx kbps / TX = $tx kbps";
}
# hanya untuk menampilkan rxtx saat ini
###############################################################
:log warning "Total RX = $RXGB GB / $RXMB MB / $RXTot Bytes";
:log warning "Total TX = $TXGB GB / $TXMB MB / $TXTot Bytes";
:log warning "Total (RX+TX) = $RXTXGB GB / $RXTXMB MB / $RXTX Bytes";
:local percent ($RXTXGB*100 / $TOTQuota);
:log error "Used Quota On This Month = $RXTXGB GB = $percent% from $TOTQuota GB";
:log warning "###############################################";
# Tampilkan Info pada LOG Mikrotik 
################################################################
:local varDate;
:local varDay;
:set varDate [/system clock get date];
:set varDay [:pick $varDate 4 6];
:if ($varDay = "29") do={ 
# jika hari ini tanggal 29 aktifkan RESET-RXTX
/system scheduler enable [/system scheduler find name="RESET-RXTX"];
}
:local text "Router ID : $router %0ATanggal    : $varDate %0ATotal FUP : $TOTQuota GB%0AKuota Terpakai $RXTXGB GB = $percent% dari $TOTQuota GB %0ATotal RX = $RXGB GB / $RXMB MB %0ATotal TX = $TXGB GB / $TXMB MB %0ATotal (RX+TX) = $RXTXGB GB / $RXTXMB MB"

$send chat=$chatid text=$text mode="Markdown"

Hasilnya

Untuk mengecek penggunaan FUP Indihome kita bisa melakukan perintah /fup di Bot Telegram. Walaupun terjadi perbedaan antara total penggunaan internet di aplikasi My Indihome dengan menggunakan Bot Telegram setidaknya bisa memudahkan kita sebagai admin jaringan untuk memonitoring penggunaan internet.

Agar status RX/TX byte selalu update sering-sering lah mengecek penggunaan internet kita (FUP) apabila mikrotik restar maka penggunaan internet terakhir sebelum melakukan perintah cek fup tidak akan terakumulasi karena status rx-byte di interface yang di monitoring akan kembali ke nol.

Agar penggunaan internet terakumulasi dengan baik kita harus membuatkan schedule baru dengan script sama seperti “tg_cmd_fup” tinggal hilangkan saja perintah untuk kirim ke Bot Telegram. Simpan script ini di system scheduler agar penggunaan internet terakumulasi secara berkala:

:local INTMon pppoe-indihome;
:local router [/system identity get name];
:local TOTQuota 2000;
:local RXByteCur [/interface get $INTMon rx-byte];
:local RXByteCount [/system scheduler get RXByteCur.log on-event];
:local RXByte [/system scheduler get RXByte.log on-event];
:local TXByteCur [/interface get $INTMon tx-byte];
:local TXByteCount [/system scheduler get TXByteCur.log on-event];
:local TXByte [/system scheduler get TXByte.log on-event];
:local ifReboot 0;
:if ($RXByteCur>=$RXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
:if ($TXByteCur>=$TXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
:if ($ifReboot>=1) do={
:set $RXByte ($RXByte+$RXByteCount);
/system scheduler set RXByte.log comment=$RXByte on-event=$RXByte
:set $TXByte ($TXByte+$TXByteCount);
/system scheduler set TXByte.log comment=$TXByte on-event=$TXByte
} else={
}
:set RXByteCount ($RXByteCur);
/system scheduler set RXByteCur.log comment=$RXByteCount on-event=$RXByteCount
:set TXByteCount ($TXByteCur);
/system scheduler set TXByteCur.log comment=$TXByteCount on-event=$TXByteCount
:local RXTot ($RXByte+$RXByteCur);
:local RXMB ($RXTot / 1024 / 1024);
:local RXGB ($RXTot  / 1024 / 1024 / 1024);
:local TXTot ($TXByte+$TXByteCur);
:local TXMB ($TXTot / 1024 / 1024);
:local TXGB ($TXTot / 1024 / 1024 / 1024);
:local RXTX ($RXTot+$TXTot);
:local RXTXMB ($RXMB+$TXMB);
:local RXTXGB ($RXGB+$TXGB);
/interface monitor-traffic [/interface find name=$INTMon] once do={
:local tx (tx-bits-per-second / 1024);
:local rx (rx-bits-per-second / 1024);
}
:local percent ($RXTXGB*100 / $TOTQuota);
:local varDate;
:local varDay;
:set varDate [/system clock get date];
:set varDay [:pick $varDate 4 6];
:if ($varDay = "29") do={ 
/system scheduler enable [/system scheduler find name="RESET-RXTX"];
}

Referensi script : http://www.o-om.com/2017/06/mikrotik-bandwidth-monitoring-script.html

Leave a Reply