Network Monitoring dengan MRTG dan Shorewall (IP Accounting)

MRTG (Multi Router Traffic Grapher) adalah tools yang cukup mudah untuk melakukan monitoring. MRTG bisa menggunakan snmp sebagai inputnya, bisa juga menggunakan script manual yang anda buat sendiri. Pada dasarnya input data yang diperlukan oleh MRTG adalah berupa 4 baris, yaitu :

baris 1 : input
baris 2 : output
baris 3 : uptime
baris 4 : hostname

Pada tulisan kali ini saya akan mencoba memonitoring jaringan pada router linux saya. Sebelum melanjutkan membaca ada baiknya anda membaca dahulu tulisan saya yang ini sebagai awalan untuk memahami shorewall. Disini kita menggunakan shorewall untuk melakukan perhitungan paket IP (IP accounting) yang dibutuhkan sebagai input dan output pada MRTG.

    1. Install mrtg dan shorewall dari repository terdekat

       root@devel:~# apt-get install mrtg shorewall

    1. Konfigurasi file /etc/shorewall/accounting


gw2net-in:COUNT   -       eth0 all all - all
gw2net-out:COUNT  -       all eth0 all all all

    1. Pastikan IP accounting sdh berjalan

root@devel:~# shorewall check

apabila tidak ada error yang muncul, lanjutkan dengan restart.

root@devel:~# shorewall restart

test ip accounting

root@devel:~# shorewall show accounting
Chain accounting (3 references)
pkts bytes target prot opt in out source destination
2885K 3401M gw2net-in all -- eth0 * 0.0.0.0/0 0.0.0.0/0
2189K 204M gw2net-out all -- * eth0 0.0.0.0/0 0.0.0.0/0

    1. Membuat script ambil-data.sh untuk mempermudah proses pengambilan data

root@devel:~# vim /home/lqman/script/ambil-data.sh

#!/bin/bash

TYPE=$1
PARAM=$2
UPTIME=`uptime  | cut -d “,” -f1,2 | awk ‘{print $3,$4,$5}’`
NAME=`hostname`

if [ “$TYPE” = “ifstat” ]; then
paketIN=`/sbin/iptables -nvxL accounting | grep “$PARAM-in” | awk ‘{print $2}’`
IN=$paketIN
paketOUT=`/sbin/iptables -nvxL accounting | grep “$PARAM-out” | awk ‘{print $2}’`
OUT=$paketOUT
fi

if [ “$TYPE” = “cpu” ]; then
USER=`cat /proc/stat | grep “cpu ” | awk ‘{print $2+$3}’`
IN=$USER
USER_SYSTEM=`cat /proc/stat | grep “cpu ” | awk ‘{print $2+$3+$4}’`
OUT=$USER_SYSTEM
fi

if [ “$TYPE” = “mem” ]; then
RAM=`free -b | grep “Mem: ” | awk ‘{print $3}’`
OUT=$RAM
SWAP=`free -b | grep “Swap: ” | awk ‘{print $3}’`
IN=$SWAP
fi

echo $IN
echo $OUT
echo $UPTIME
echo $NAME

Jadikan script tsb executable

root@devel:~# chmod +x /home/lqman/script/ambil-data.sh

    1. Mencoba script ambil-data.sh

root@devel:~# /home/lqman/script/ambil-data.sh ifstat gw2net
20484024
20484024
4 days, 1:27
devel

    1. Membuat konfig mrtg

root@devel:~# vim /etc/mrtg.cfg

WorkDir: /var/www/mrtg
Options[_]: growright, bits, nopercent, nobanner, integer
EnableIPv6: no

Target[gw2net]: `/home/lqman/script/ambil-data.sh ifstat gw2net`
SetEnv[gw2net]: MRTG_INT_IP=”” MRTG_INT_DESCR=”eth0″
MaxBytes[gw2net]: 256000
Unscaled[gw2net]: dwmy
Title[gw2net]: GW2NET
PageTop[gw2net]: GW2NET

    1. Membuat index mrtg

root@devel:~# indexmaker --title="Traffic [at] Devel" /etc/mrtg.cfg > /var/www/mrtg/index.html

    1. Jalankan mrtg beberapa kali, minimal 5 kali (perhatikan error yg terjadi pada 3 kali running awal)

root@devel:~# env LANG=C mrtg /etc/mrtg.cfg

    1. Nikmati hasilnya

Grafik Warna Hijau : download
Grafik Warna Biru : upload

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s