Home > World Of ICT > Aplikasi Monitoring – Kegiatan Operasional Internet (KorNet)

Aplikasi Monitoring – Kegiatan Operasional Internet (KorNet)


Application Programming Interface atau lebih dikenal dengan API, merupakan suatu sistem yang dapat difungsikan untuk menerima request atau permintaan dari sistem/platform lainnya  menggunakan teknologi web seperti request GET, POST, PUT, DELETE, dll.

Mikrotik (MRT) sebagai salah satu brand Networking yang banyak digunakan pada berbagai organisasi juga menyediakan layanan API, memungkinkan aplikasi di luar sistem Mikrotik bisa berinteraksi secara langsung. Dalam tutorial kali ini membahas tentang bagaimana cara membuat aplikasi monitoring traffik yang lalu lalang pada interface MRT.

  • Langkah pertama yaitu aktifkan API service pada menu IP-Service-api (untuk keamanan batasi akses hanya pada Network yang anda kelola saja).
  • Kemudian check interface yang akan dimonitor aktifitasnya

  • Saya gunakan bahasa pemrograman PHP untuk membaca data API dan library RouterOS PHP API class v1.4 ( Author: Denis Basta, * Contributors:  Nick Barnes,  Ben Menking,  Jeremy Jefferson, Cristian Deluxe,  Nicolas Daitsch, Nro de Puerto publico).
  • Sesuaikan paramater akses ke Router Mikrotik anda (data.php)

<?php
////////////////////////////////////////////////////////////////////
// API PHP DAN MIKROTIK /////////////////////////////////////////////
// Create By: Nicolas Daitsch, Modify by Gigih Forda Nama////////////
// Contact: gigih@eng.unila.ac.id/////// //////////////////////////
// Router OS Dengan API////////////////////////////////// //////////
//////////////////////////////////////////////////////////////////// ?>
<?php require_once(‘api_mt_include2.php’); ?>
<?php
$ipRouteros = “xxx.3.46.xxx”;
$Username=”UserMikrotik”;
$Pass=”PasswordMT”;
$api_port=8728;

$API = new routeros_api();
$API->debug = false;
if ($API->connect($ipRouteros , $Username , $Pass, $api_port)) {
$rows = array(); $rows2 = array();
$API->write(“/interface/monitor-traffic”,false);
$API->write(“=interface=NamaInterfaceAnda”,false);
$API->write(“=once=”,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
if(count($ARRAY)>0){
$rx = number_format($ARRAY[0][“rx-bits-per-second”]/1024,1);
$tx = number_format($ARRAY[0][“tx-bits-per-second”]/1024,1);
$rows[‘name’] = ‘Tx’;
$rows[‘data’][] = $tx;
$rows2[‘name’] = ‘Rx’;
$rows2[‘data’][] = $rx;
}else{
echo $ARRAY[‘!trap’][0][‘message’];
}
}else{
echo “<font color=’#ff0000′>Koneksi Anda Gagal.</font>”;
}
$API->disconnect();

$result = array();
array_push($result,$rows);
array_push($result,$rows2);
print json_encode($result, JSON_NUMERIC_CHECK);

?>

  • Plot data dari format JSON yang dihasilkan tadi (program ini membutuhkan library HighChart

<!–
////////////////////////////////////////////////////////////////////
// API PHP DAN MIKROTIK /////////////////////////////////////////////
// Create By: Nicolas Daitsch, Modify by Gigih Forda Nama////////////
// Contact: gigih@eng.unila.ac.id/////// //////////////////////////
// Router OS Dengan API////////////////////////////////// //////////
//////////////////////////////////////////////////////////////////// ?>
–>
<!DOCTYPE HTML>
<html lang=”id”>
<head><meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

<title>KORNET- KOR INTERNET UNILA</title>
https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

<script>
var chart;
function requestDatta(interface) {
$.ajax({
url: ‘data.php?interface=’+interface,
datatype: “json”,
success: function(data) {
var midata = JSON.parse(data);
if( midata.length > 0 ) {
var TX=parseInt(midata[0].data);
var RX=parseInt(midata[1].data);
var x = (new Date()).getTime();
shift=chart.series[0].data.length > 19;
chart.series[0].addPoint([x, TX], true, shift);
chart.series[1].addPoint([x, RX], true, shift);
document.getElementById(“Trafik Internet Unila”).innerHTML=” Downstream= ” + TX +” Mbps ” + ” / ” + ” Upstream= ” + RX +” Mbps ” ;
}else{
document.getElementById(“Trafik Internet Unila”).innerHTML=”- / -“;
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.error(“Status: ” + textStatus + ” request: ” + XMLHttpRequest); console.error(“Error: ” + errorThrown);
}
});
}

$(document).ready(function() {
Highcharts.setOptions({
global: {
useUTC: false
}
});

chart = new Highcharts.Chart({
chart: {
renderTo: ‘container’,
animation: Highcharts.svg,
type: ‘spline’,
events: {
load: function () {
setInterval(function () {
requestDatta(document.getElementById(“interface”).value);
}, 1000);
}
}
},
title: {
text: ‘KORNET – Kegiatan Operasional Internet Unila’
},
xAxis: {
type: ‘datetime’,
tickPixelInterval: 150,
maxZoom: 20 * 1000
},
yAxis: {
minPadding: 0.2,
maxPadding: 0.2,
title: {
text: ‘Trafik Internet Unila (Mbps)’,
margin: 80
}
},
series: [{
name: ‘Downstream- TX (Mbps)’,
data: []
}, {
name: ‘Upstream- RX (Mbps)’,
data: []
}]
});
});
</script>

</head>
<body>
http://highchart/js/highcharts.js
http://highchart/js/themes/dark-green.js
<b>
<div id=”container” style=”min-width: 400px; height: 610px; margin: 0 auto”></div>
<div style=”text-align:center”>
<input name=”interface” id=”interface” type=”text” value=”Powered By UIRG Unila” />
</div>

<div id=”Trafik Internet Unila” style=”text-align:center” ></div>
</b>
</body>
</html>

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: