├── README.md ├── Scheduler BANDWIDTH-MONITORING ├── Scheduler RESET-RXTX └── mikrotik bandwidth monitoring script.png /README.md: -------------------------------------------------------------------------------- 1 | ## Mikrotik Bandwidth Monitoring Script 2 | 3 | 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. 4 | 5 |  6 | 7 | Silahkan paste script ini di terminal mikrotik 8 | 9 | /system scheduler add interval="00:00:00" name="RXByte.log" on-event="1" start-time="00:00:00" 10 | /system scheduler add interval="00:00:00" name="RXByteCur.log" on-event="1" start-time="00:00:00" 11 | /system scheduler add interval="00:00:00" name="TXByte.log" on-event="1" start-time="00:00:00" 12 | /system scheduler add interval="00:00:00" name="TXByteCur.log" on-event="1" start-time="00:00:00" 13 | /system scheduler add interval="00:01:00" name="RESET-RXTX" start-time=startup 14 | /system scheduler add interval="00:0:030" name="BANDWIDTH-MONITORING" start-time=startup 15 | 16 | Copy Paste Script reset bulanan ini dalam file Scheduler RESET-RXTX 17 | 18 |
19 | ################################################################
20 | # Script by Agus Ramadhani
21 | # fb.com/buananet.pangkalanbun
22 | # http://www.o-om.com
23 | # SCRIPT MIKROTIK BANDWIDTH MONITORING
24 | # Version 1.0
25 | ################################################################
26 | # Fungsi untuk reset Bulanan Setiap tanggal 1
27 | ################################################################
28 | :local varDate;
29 | :local varDay;
30 | :set varDate [/system clock get date];
31 | :set varDay [:pick $varDate 4 6];
32 | :if ($varDay = "01") do={
33 | # jika har ini tanggal 1 reset RXTX ke nilai awal
34 | /system scheduler set RXByte.log comment="1" on-event="1"
35 | /system scheduler set RXByteCur.log comment="1" on-event="1"
36 | /system scheduler set TXByte.log comment="1" on-event=$RXByteCount
37 | /system scheduler set TXByteCur.log comment="1" on-event="1"
38 | /system scheduler disable [/system scheduler find name="RESET-RXTX"]
39 | }
40 | ################################################################
41 |
42 |
43 | Copy Paste Script Monitoring ini dalam file Scheduler BANDWIDTH-MONITORING
44 |
45 | ################################################################
46 | # Script by Agus Ramadhani
47 | # fb.com/buananet.pangkalanbun
48 | # http://www.o-om.com
49 | # SCRIPT MIKROTIK BANDWIDTH MONITORING
50 | # Version 1.0
51 | ################################################################
52 | :local INTMon WAN-WARNET;
53 | # silahkan ganti dengan interface (ether) yang ingin dipantau
54 | ################################################################
55 | :local TOTQuota 500;
56 | # Set total quota dalam GB misalkan ISP hanya memberikan hanya 500GB
57 | ################################################################
58 | :local RXByteCur [/interface get $INTMon rx-byte];
59 | # Mengambil nilai RX-Byte saat ini pada interface terpilih
60 | ################################################################
61 | :local RXByteCount [/system scheduler get RXByteCur.log on-event];
62 | # Mengambil nilai RX-Byte dalam file log RXByteCur
63 | ################################################################
64 | :local RXByte [/system scheduler get RXByte.log on-event];
65 | # Mengambil nilai RX-Byte sebelumnya dalam file log RXByte
66 | ################################################################
67 | :local TXByteCur [/interface get $INTMon tx-byte];
68 | # Mengambil nilai TX-Byte saat ini pada interface terpilih
69 | ################################################################
70 | :local TXByteCount [/system scheduler get TXByteCur.log on-event];
71 | # Mengambil nilai TX-Byte saat ini dalam file log TXByteCur
72 | ################################################################
73 | :local TXByte [/system scheduler get TXByte.log on-event];
74 | # Mengambil nilai TX-Byte saat ini dalam file Log TXByte
75 | ################################################################
76 | :local ifReboot 0;
77 | # kita perlu mengetahui apakah router reboot
78 | ################################################################
79 | :if ($RXByteCur>=$RXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
80 | :if ($TXByteCur>=$TXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
81 | # Tandai jika nilai RXTX-Byte saat ini lebih besar dari RXTX-Byte pada log
82 | ################################################################
83 | :if ($ifReboot>=1) do={
84 | # Cek Jika Router Reboot
85 | ################################################################
86 | :set $RXByte ($RXByte+$RXByteCount);
87 | /system scheduler set RXByte.log comment=$RXByte on-event=$RXByte
88 | # jika komputer reboot jumlahkan total RX-Byte
89 | ################################################################
90 | :set $TXByte ($TXByte+$TXByteCount);
91 | /system scheduler set TXByte.log comment=$TXByte on-event=$TXByte
92 | } else={
93 | # jika komputer reboot jumlahkan total TX-Byte
94 | ################################################################
95 | }
96 | :set RXByteCount ($RXByteCur);
97 | /system scheduler set RXByteCur.log comment=$RXByteCount on-event=$RXByteCount
98 | # Perbaharui nilai RX-Byte saat ini pada file log RXByteCur
99 | ################################################################
100 | :set TXByteCount ($TXByteCur);
101 | /system scheduler set TXByteCur.log comment=$TXByteCount on-event=$TXByteCount
102 | # Perbaharui nilai TX-Byte saat ini pada file log TXByteCur
103 | ################################################################
104 | :local RXTot ($RXByte+$RXByteCur);
105 | :local RXMB ($RXTot / 1024 / 1024);
106 | :local RXGB ($RXTot / 1024 / 1024 / 1024);
107 | # kalkulasi nilai RX-BYTE dalam MB dan GB
108 | ################################################################
109 | :local TXTot ($TXByte+$TXByteCur);
110 | :local TXMB ($TXTot / 1024 / 1024);
111 | :local TXGB ($TXTot / 1024 / 1024 / 1024);
112 | # kalkulasi nilai TX-BYTE dalam MB dan GB
113 | ################################################################
114 | :local RXTX ($RXTot+$TXTot);
115 | :local RXTXMB ($RXMB+$TXMB);
116 | :local RXTXGB ($RXGB+$TXGB);
117 | # Total kalkulasi nilai Total RXTX
118 | ################################################################
119 | :log warning "###############################################";
120 | :log warning "BANDWIDTH MONITORING [ Router Identity: $[/system identity get name] ]";
121 | :log warning "###############################################";
122 | :log warning "Interface Monitoring For: $INTMon";
123 | /interface monitor-traffic [/interface find name=$INTMon] once do={
124 | :local tx (tx-bits-per-second / 1024);
125 | :local rx (rx-bits-per-second / 1024);
126 | :log warning "Live Monitor RX = $rx kbps / TX = $tx kbps";
127 | }
128 | # hanya untuk menampilkan rxtx saat ini
129 | ###############################################################
130 | :log warning "Total RX = $RXGB GB / $RXMB MB / $RXTot Bytes";
131 | :log warning "Total TX = $TXGB GB / $TXMB MB / $TXTot Bytes";
132 | :log warning "Total (RX+TX) = $RXTXGB GB / $RXTXMB MB / $RXTX Bytes";
133 | :local percent ($RXTXGB*100 / $TOTQuota);
134 | :log error "Used Quota On This Month = $RXTXGB GB = $percent% from $TOTQuota GB";
135 | :log warning "###############################################";
136 | # Tampilkan Info pada LOG Mikrotik
137 | ################################################################
138 | :local varDate;
139 | :local varDay;
140 | :set varDate [/system clock get date];
141 | :set varDay [:pick $varDate 4 6];
142 | :if ($varDay = "29") do={
143 | # jika hari ini tanggal 29 aktifkan RESET-RXTX
144 | /system scheduler enable [/system scheduler find name="RESET-RXTX"];
145 | }
146 | ################################################################
147 |
148 |
149 | jangan lupa ganti nama ether dalam script sesuai interface masing2 yang ingin dipantau
150 |
151 | :local INTMon WAN-WARNET;
152 |
153 | jangan Lupa ganti total quota yang diberikan ISP masing2 dicontoh adalah 500GB
154 |
155 | :local TOTQuota 500;
156 |
157 |
158 | ## License