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.
- Install mrtg dan shorewall dari repository terdekat
- Konfigurasi file /etc/shorewall/accounting
- Pastikan IP accounting sdh berjalan
- Membuat script ambil-data.sh untuk mempermudah proses pengambilan data
- Mencoba script ambil-data.sh
- Membuat konfig mrtg
- Membuat index mrtg
- Jalankan mrtg beberapa kali, minimal 5 kali (perhatikan error yg terjadi pada 3 kali running awal)
- Nikmati hasilnya
root@devel:~# apt-get install mrtg shorewall
gw2net-in:COUNT - eth0 all all - all
gw2net-out:COUNT - all eth0 all all all
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
root@devel:~# vim /home/lqman/script/ambil-data.sh
#!/bin/bashTYPE=$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
fiif [ "$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
fiif [ "$TYPE" = "mem" ]; then
RAM=`free -b | grep "Mem: " | awk '{print $3}'`
OUT=$RAM
SWAP=`free -b | grep "Swap: " | awk '{print $3}'`
IN=$SWAP
fiecho $IN
echo $OUT
echo $UPTIME
echo $NAME
Jadikan script tsb executable
root@devel:~# chmod +x /home/lqman/script/ambil-data.sh
root@devel:~# /home/lqman/script/ambil-data.sh ifstat gw2net
20484024
20484024
4 days, 1:27
devel
root@devel:~# vim /etc/mrtg.cfg
WorkDir: /var/www/mrtg
Options[_]: growright, bits, nopercent, nobanner, integer
EnableIPv6: noTarget[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
root@devel:~# indexmaker --title="Traffic [at] Devel" /etc/mrtg.cfg > /var/www/mrtg/index.html
root@devel:~# env LANG=C mrtg /etc/mrtg.cfg
Grafik Warna Hijau : download
Grafik Warna Biru : upload
reference :
MRTG official web page
Tulisan ini yg sdh kusimpan pada DRAFT sejak bertahun2 yang lalu

