Blog Inspirasi Digital

Blog Inspirasi Digital

Tutorial Mikrotik, Hotspot, Blog, SEO, WEB 2.0, HTML, CSS, Javascript dan Inspirasi Digital

Mikrotik Bandwidth Monitoring Script

Script Bandwidth monitoring ini hampir 100% akurat mungkin seakurat Cacti Monitoring, sebenarnya rencana awal saya gunakan untuk memantau FUP Quota Indihome namun saya tidak memahami algoritma yang digunakan sistem telkom seperti apa, makanya hasil selalu berbeda, mungkin ini berkaitan dengan streaming yang tidak termasuk dalam sistem FUP mereka.


Silahkan paste script ini di terminal mikrotik

/system scheduler add interval="00:00:00" name="RXByte.log" on-event="1" start-time="00:00:00"
/system scheduler add interval="00:00:00" name="RXByteCur.log" on-event="1" start-time="00:00:00"
/system scheduler add interval="00:00:00" name="TXByte.log" on-event="1" start-time="00:00:00"
/system scheduler add interval="00:00:00" name="TXByteCur.log" on-event="1" start-time="00:00:00"
/system scheduler add interval="00:01:00" name="RESET-RXTX" start-time=startup
/system scheduler add interval="00:0:030" name="BANDWIDTH-MONITORING" start-time=startup

Copy Paste Script reset bulanan ini dalam file Scheduler RESET-RXTX

################################################################
# Script by Agus Ramadhani
# fb.com/buananet.pangkalanbun
# http://www.o-om.com
# SCRIPT MIKROTIK BANDWIDTH MONITORING
# Version 1.0
################################################################
# Fungsi untuk reset Bulanan Setiap tanggal 1
################################################################
: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
/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=$RXByteCount
/system scheduler set TXByteCur.log comment="1" on-event="1"
/system scheduler disable [/system scheduler find name="RESET-RXTX"]
}
################################################################

Copy Paste Script Monitoring ini dalam file Scheduler BANDWIDTH-MONITORING

################################################################
# Script by Agus Ramadhani
# fb.com/buananet.pangkalanbun
# http://www.o-om.com
# SCRIPT MIKROTIK BANDWIDTH MONITORING
# Version 1.0
################################################################
:local INTMon WAN-WARNET;
# silahkan ganti dengan interface (ether) yang ingin dipantau
################################################################
:local TOTQuota 500;
# Set total quota dalam GB misalkan ISP hanya memberikan hanya 500GB
################################################################
: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"];
}
################################################################

jangan lupa ganti nama ether dalam script sesuai interface masing2 yang ingin dipantau
:local INTMon WAN-WARNET;

jangan Lupa ganti total quota yang diberikan ISP masing2 dicontoh adalah 500GB
:local TOTQuota 500;

Gimana kalo kita mau misahin Monitoring bandwidth dan tampilan Monitoring View pada log agar masing-masing bisa diatur waktunya?


Pertama tambah satu scheduler dengan nama VIEW-LOG
/system scheduler add interval="00:0:030" name="VIEW-LOG" start-time=startup

Kemudian copy-paste Script dibawah ini kedalam file scheduler VIEW-LOG

################################################################
# Script by Agus Ramadhani
# fb.com/buananet.pangkalanbun
# http://www.o-om.com
# SCRIPT MIKROTIK BANDWIDTH MONITORING
# Version 1.0
################################################################
:local INTMon WAN-WARNET;
# silahkan ganti dengan interface (ether) yang ingin dipantau
:local TOTQuota 500;
# Set total quota dalam GB misalkan ISP hanya memberi hanya 500GB
################################################################
:local RXByteCur [/interface get $INTMon rx-byte];
# Mengambil nilai RX-Byte saat ini pada interface terpilih
: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 TXByte [/system scheduler get TXByte.log on-event];
# Mengambil nilai TX-Byte saat ini dalam file Log TXByte
################################################################
: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: $[/system identity get name] ]";
:log warning "###############################################";
:log warning "Interface Monitoring For Ether: $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 har ini tanggal 29 aktfikan RESET-RXTX
/system scheduler enable [/system scheduler find name="RESET-RXTX"];
}
################################################################

dan terakhir ganti isi file Scheduler BANDWIDTH-MONITORING dengan script dibawah ini

################################################################
# Script by Agus Ramadhani
# fb.com/buananet.pangkalanbun
# http://www.o-om.com
# SCRIPT MIKROTIK BANDWIDTH MONITORING
# Version 1.0
################################################################
:local INTMon WAN-WARNET;
# silahkan ganti dengan interface (ether) yang ingin dipantau
: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 dengan memberi flag 0 
################################################################
: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 Rebbot
################################################################
: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
################################################################

Sekarang kita bisa mengubah masing-masing waktu antara monitoring dan View log agar tidak jalan bersamaan

Jika mau menampilkan info monitoring di system note terminal



Pertama tambah satu scheduler dengan nama VIEW-LOG-NOTE
/system scheduler add interval="01:00:000" name="VIEW-LOG-NOTE" start-time=startup

Kemudian copy-paste Script dibawah ini kedalam file scheduler VIEW-LOG-NOTE

################################################################
# Script by Agus Ramadhani
# fb.com/buananet.pangkalanbun
# http://www.o-om.com
# SCRIPT MIKROTIK BANDWIDTH MONITORING
# Version 1.0
################################################################
:local INTMon WAN_WARNET;
# silahkan ganti dengan interface (ether) yang ingin dipantau
:local TOTQuota 500;
# Set total quota dalam GB misalkan ISP hanya memberi hanya 500GB
################################################################
:local RXByteCur [/interface get $INTMon rx-byte];
# Mengambil nilai RX-Byte saat ini pada interface terpilih
: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 TXByte [/system scheduler get TXByte.log on-event];
# Mengambil nilai TX-Byte saat ini dalam file Log TXByte
################################################################
: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
################################################################
:local percent ($RXTXGB*100 / $TOTQuota);
:local logcontenttemp "" 
:local logcontent "" 
:set logcontenttemp ""
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "#######################################################"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "BANDWIDTH MONITORING [ Router Identity: $[/system identity get name] ]"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "#######################################################"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "Interface Monitoring For: $INTMon"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "Total RX = $RXGB GB / $RXMB MB / $RXTot Bytes"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "Total TX = $TXGB GB / $TXMB MB / $TXTot Bytes"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "Total (RX+TX) = $RXTXGB GB / $RXTXMB MB / $RXTX Bytes"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "Used Quota on This Month $RXTXGB GB = $percent% from $TOTQuota GB"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:set logcontenttemp "#######################################################"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
:if ($RXTXGB >= $TOTQuota) do={
:set logcontenttemp "Your Quota is OVERLOAD :("
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
} else={
:set logcontenttemp "Your Quota is SAVE :)"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
}
:set logcontenttemp ""
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
/system note set note=$logcontent
# 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 har ini tanggal 29 aktfikan RESET-RXTX
/system scheduler enable [/system scheduler find name="RESET-RXTX"];
}

selamat mencoba, semoga sukses :)

BERI KOMENTAR

Silahkan beri komentar dengan bijak dan sesuai dengan topik artikel :)
 

Back to Top