Advertisement
sopyanx

Log kirim ke telegram dan rubah max limit sesuai quota

Oct 4th, 2017
924
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.08 KB | None | 0 0
  1. Spesifikasi Mikrotik versi 6 keatas
  2.  
  3. - Buat telegram token dan chat id (tutorial udah banyak di google, simpan baik-baik karena akan selalu digunakan), anggap pada tahap ini telegram sudah bisa menerima pesan dari bot
  4. - Untuk memonitor jaringan pastekan kode ini di system-netwach isi ip di bagian host yang ingin anda monitor, misal ping google
  5.  
  6. - Pastekan di bagian UP, pesan ini tidak terkirim ke telegram kalau internet mati
  7.  
  8. :local varTime;
  9. :local varDate;
  10. :set varDate [/system clock get date];
  11. :set varTime [/system clock get time];
  12. /tool fetch url="https://api.telegram.org/botTOKENANDA/sendmessage?chat_id=CHAT_ID_ANDA&text=$varTime $varDate Ping 8.8.8.8 up" keep-result=no
  13. /ip firewall nat disable [find comment="maintanance"]; #fungsi ini untuk memaksa user membuka halaman pemberitahuan ke user kalau internet mati, saya instalkan webserver di pc billing
  14.  
  15. - Pastekan di bagian DOWN
  16.  
  17. :local varTime;
  18. :local varDate;
  19. :set varDate [/system clock get date];
  20. :set varTime [/system clock get time];
  21. /tool fetch url="https://api.telegram.org/botTOKENANDA/sendmessage?chat_id=CHAT_ID_ANDA&text=$varTime $varDate Ping 8.8.8.8 Down" keep-result=no
  22. /ip firewall nat enable [find comment="maintanance"]; #fungsi ini untuk memaksa user membuka halaman pemberitahuan ke user kalau internet mati, saya instalkan webserver di pc billing
  23. #######################################################################################################################################
  24. - Untuk memonitor jaringan Client pastekan kode ini di system-netwach isi ip di bagian host yang ingin anda monitor, misal ping 192.168.1.3 (client_1)
  25.  
  26. - Pastekan di bagian UP
  27.  
  28. :local varTime;
  29. :local varDate;
  30. :set varDate [/system clock get date];
  31. :set varTime [/system clock get time];
  32. /tool fetch url="https://api.telegram.org/botTOKENANDA/sendmessage?chat_id=CHAT_ID_ANDA&text=$varTime $varDate Ping Client_1 up" keep-result=no
  33.  
  34. - Pastekan di bagian DOWN
  35.  
  36. :local varTime;
  37. :local varDate;
  38. :set varDate [/system clock get date];
  39. :set varTime [/system clock get time];
  40. /tool fetch url="https://api.telegram.org/botTOKENANDA/sendmessage?chat_id=CHAT_ID_ANDA&text=$varTime $varDate Ping Client_1 Down" keep-result=no
  41.  
  42. #######################################################################################################################################
  43. - Pastekan di New Terminal, sesuaikan ip yang terpasang halaman pemberitahuan di webserver, saya menggunakan 192.168.1.2
  44.  
  45. /ip firewall nat add action=dst-nat chain=dstnat comment=maintanance disabled=yes dst-address=!192.168.1.2 dst-port=80,443 protocol=tcp src-address-list=Local to-addresses=192.168.1.2 to-ports=80
  46.  
  47. #######################################################################################################################################
  48. SAYA MENGGUNAKAN ISP INDIHOME 10Mbps, dengan FUP jika quota melebihi 300Gb maka kecepatan turun jadi 7,5Mbps, jika 400Gb turun jadi 4Mbps, bagaimana agar mikrotik memberikan BW sesuai dengan yang diberikan ISP tujuannya agar koneksi tetap stabil, bagaimana solusinya?
  49. #######################################################################################################################################
  50.  
  51. Silahkan paste script ini di terminal mikrotik
  52.  
  53. /system scheduler add interval="00:00:00" name="RXByte.log" on-event="1" start-time="00:00:00"
  54. /system scheduler add interval="00:00:00" name="RXByteCur.log" on-event="1" start-time="00:00:00"
  55. /system scheduler add interval="00:00:00" name="TXByte.log" on-event="1" start-time="00:00:00"
  56. /system scheduler add interval="00:00:00" name="TXByteCur.log" on-event="1" start-time="00:00:00"
  57. /system scheduler add interval="00:01:00" name="RESET-RXTX" start-time=startup
  58. /system scheduler add interval="00:0:030" name="BANDWIDTH-MONITORING" start-time=startup
  59.  
  60. Copy Paste Script reset bulanan ini dalam file Scheduler RESET-RXTX
  61.  
  62. ################################################################
  63. # Script by Agus Ramadhani
  64. # fb.com/buananet.pangkalanbun
  65. # http://www.o-om.com
  66. # SCRIPT MIKROTIK BANDWIDTH MONITORING
  67. # Version 1.0
  68. ################################################################
  69. # Fungsi untuk reset Bulanan Setiap tanggal 1
  70. ################################################################
  71. :local varDate;
  72. :local varDay;
  73. :set varDate [/system clock get date];
  74. :set varDay [:pick $varDate 4 6];
  75. :if ($varDay = "01") do={
  76. # jika har ini tanggal 1 reset RXTX ke nilai awal
  77. /system scheduler set RXByte.log comment="1" on-event="1"
  78. /system scheduler set RXByteCur.log comment="1" on-event="1"
  79. /system scheduler set TXByte.log comment="1" on-event=$RXByteCount
  80. /system scheduler set TXByteCur.log comment="1" on-event="1"
  81. /system scheduler disable [/system scheduler find name="RESET-RXTX"]
  82. }
  83. ################################################################
  84.  
  85. Copy Paste Script Monitoring ini dalam file Scheduler BANDWIDTH-MONITORING
  86.  
  87. ################################################################
  88. # Script by Agus Ramadhani
  89. # fb.com/buananet.pangkalanbun
  90. # http://www.o-om.com
  91. # SCRIPT MIKROTIK BANDWIDTH MONITORING
  92. # Version 1.0
  93. ################################################################
  94. :local INTMon WAN-WARNET;
  95. # silahkan ganti dengan interface (ether) yang ingin dipantau
  96. ################################################################
  97. :local TOTQuota 300;
  98. # Set total quota dalam GB misalkan ISP hanya memberikan hanya 300GB
  99. ################################################################
  100. :local RXByteCur [/interface get $INTMon rx-byte];
  101. # Mengambil nilai RX-Byte saat ini pada interface terpilih
  102. ################################################################
  103. :local RXByteCount [/system scheduler get RXByteCur.log on-event];
  104. # Mengambil nilai RX-Byte dalam file log RXByteCur
  105. ################################################################
  106. :local RXByte [/system scheduler get RXByte.log on-event];
  107. # Mengambil nilai RX-Byte sebelumnya dalam file log RXByte
  108. ################################################################
  109. :local TXByteCur [/interface get $INTMon tx-byte];
  110. # Mengambil nilai TX-Byte saat ini pada interface terpilih
  111. ################################################################
  112. :local TXByteCount [/system scheduler get TXByteCur.log on-event];
  113. # Mengambil nilai TX-Byte saat ini dalam file log TXByteCur
  114. ################################################################
  115. :local TXByte [/system scheduler get TXByte.log on-event];
  116. # Mengambil nilai TX-Byte saat ini dalam file Log TXByte
  117. ################################################################
  118. :local ifReboot 0;
  119. # kita perlu mengetahui apakah router reboot  
  120. ################################################################
  121. :if ($RXByteCur>=$RXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
  122. :if ($TXByteCur>=$TXByteCount) do={} else={:set $ifReboot ($ifReboot+1);}
  123. # Tandai jika nilai RXTX-Byte saat ini lebih besar dari RXTX-Byte pada log
  124. ################################################################
  125. :if ($ifReboot>=1) do={
  126. # Cek Jika Router Reboot
  127. ################################################################
  128. :set $RXByte ($RXByte+$RXByteCount);
  129. /system scheduler set RXByte.log comment=$RXByte on-event=$RXByte
  130. # jika komputer reboot jumlahkan total RX-Byte
  131. ################################################################
  132. :set $TXByte ($TXByte+$TXByteCount);
  133. /system scheduler set TXByte.log comment=$TXByte on-event=$TXByte
  134. } else={
  135. # jika komputer reboot jumlahkan total TX-Byte
  136. ################################################################
  137. }
  138. :set RXByteCount ($RXByteCur);
  139. /system scheduler set RXByteCur.log comment=$RXByteCount on-event=$RXByteCount
  140. # Perbaharui nilai RX-Byte saat ini pada file log RXByteCur
  141. ################################################################
  142. :set TXByteCount ($TXByteCur);
  143. /system scheduler set TXByteCur.log comment=$TXByteCount on-event=$TXByteCount
  144. # Perbaharui nilai TX-Byte saat ini pada file log TXByteCur
  145. ################################################################
  146. :local RXTot ($RXByte+$RXByteCur);
  147. :local RXMB ($RXTot / 1024 / 1024);
  148. :local RXGB ($RXTot  / 1024 / 1024 / 1024);
  149. # kalkulasi nilai RX-BYTE dalam MB dan GB
  150. ################################################################
  151. :local TXTot ($TXByte+$TXByteCur);
  152. :local TXMB ($TXTot / 1024 / 1024);
  153. :local TXGB ($TXTot / 1024 / 1024 / 1024);
  154. # kalkulasi nilai TX-BYTE dalam MB dan GB
  155. ################################################################
  156. :local RXTX ($RXTot+$TXTot);
  157. :local RXTXMB ($RXMB+$TXMB);
  158. :local RXTXGB ($RXGB+$TXGB);
  159. # Total kalkulasi nilai Total RXTX
  160. ################################################################
  161. :log warning "###############################################";
  162. :log warning "BANDWIDTH MONITORING [ Router Identity: $[/system identity get name] ]";
  163. :log warning "###############################################";
  164. :log warning "Interface Monitoring For: $INTMon";
  165. /interface monitor-traffic [/interface find name=$INTMon] once do={
  166. :local tx (tx-bits-per-second / 1024);
  167. :local rx (rx-bits-per-second / 1024);
  168. :log warning "Live Monitor RX = $rx kbps / TX = $tx kbps";
  169. }
  170. # hanya untuk menampilkan rxtx saat ini
  171. ###############################################################
  172. :log warning "Total RX = $RXGB GB / $RXMB MB / $RXTot Bytes";
  173. :log warning "Total TX = $TXGB GB / $TXMB MB / $TXTot Bytes";
  174. :log warning "Total (RX+TX) = $RXTXGB GB / $RXTXMB MB / $RXTX Bytes";
  175. :local percent ($RXTXGB*100 / $TOTQuota);
  176. :log error "Used Quota On This Month = $RXTXGB GB = $percent% from $TOTQuota GB";
  177. :log warning "###############################################";
  178. # Tampilkan Info pada LOG Mikrotik
  179. ################################################################
  180. :local varDate;
  181. :local varDay;
  182. :set varDate [/system clock get date];
  183. :set varDay [:pick $varDate 4 6];
  184. :if ($varDay = "29") do={
  185. # jika hari ini tanggal 29 aktifkan RESET-RXTX
  186. /system scheduler enable [/system scheduler find name="RESET-RXTX"];
  187. }
  188. ###########################################################################################
  189. :global SetMaxLimit;
  190. :if ($RXTXGB < 400) do={
  191. :if ($RXTXGB < 300) do={
  192. :set SetMaxLimit 10M;
  193. :log info "--> Max-limit berubah ke 10Mbps";
  194. } else={
  195. :set SetMaxLimit 7M;
  196. :log info "--> Max-limit berubah ke 7Mbps";
  197. };
  198. } else={
  199. :set SetMaxLimit 4M;
  200. :log info "--> Max-limit berubah ke 4Mbps";
  201. };
  202. /queue tree set "Total_DOWNLOAD" max-limit=$SetMaxLimit #Sesuaikan nama parent, fungsi ini untuk merubah max-limit di queue tree sesuai BW yang diberikan ISP
  203. /tool fetch url="https://api.telegram.org/botTOKEN/sendmessage?chat_id=CHAT_ID&text=Tanggal : $varDate Total Bandwith $SetMaxLimit Kuota Terpakai $RXTXGB GB = $percent% from $TOTQuota GB Total RX = $RXGB GB / $RXMB MB Total TX = $TXGB GB / $TXMB MB" keep-result=no;
  204. };
  205. #jangan lupa ganti TOKEN dan CHAT_ID yang sudah anda buat
  206. ################################################################
  207.  
  208. jangan lupa ganti nama ether dalam script sesuai interface masing2 yang ingin dipantau
  209. :local INTMon WAN-WARNET;
  210.  
  211. jangan Lupa ganti total quota yang diberikan ISP masing2 dicontoh adalah 500GB
  212. :local TOTQuota 300;
  213.  
  214. credit: http://www.o-om.com/2017/06/mikrotik-bandwidth-monitoring-script.html
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement