MRTG (The Multi Router Traffic Grapper) networkümüzü html ve grafik olarak döküp analiz etmemize yarayan bir araçtır. MRTG, PERL dili kullanılarak yazılmış olup SNMP protokolü üstünden networkümüzü okur ve anlık olarak onları html ve grafik olarak kaydeder. Örnek Grafik – 1 ‘de görülmektedir. Kısa bir açıklama sonunda yüklemeye ve konfigürasyona başlıyalım.
Test Yapılan Araçlar, Yazılımlar
. Fedora 7
. Cisco 1841
. USR 9108
Grafik – 1

Yükleme
MRTG ‘yi sadece Fedora üstünde yüklemeyi anlatacağım. Diğer dağıtımlar için google ‘u kullanabilirsiniz
Fedora ‘da MRTG yüklemek işte bu kadar basit ;
yum -y install mrtg
Cisco üstünde SNMP Ayarı
Ciscyo cihazımıza login olduktan sonra aşağıdaki gibi SNMP servisini açıyoruz. Burada dikkat etmemiz gereken tek nokta CommunityName kısmıdır. MRTG ile konfigürasyon üretirken bu kısıma ihtiyacımız olacaktır. Genelde public olarak kullanılır
(hiç değilse ben öyleyim)
murat#conf t
murat(config)# snmp-server community CommunityName RO
murat(config)# end
murat# wr me
USR 9108 üstünde SNMP ayarı
Modeme web arayüzünden giriş yapalım ve DEVICE > SNMP menüsüne girelim.Örnek SNMP ayarları Grafik -2 ‘de mevcuttur.
Grafik – 2
MRTG Yapılandırması
MRTG ‘nin en çok hoşuma giden yanı cfgmaker ‘dir. Bu araç sayesinde trafiğini izleyeceğimiz cihazlara otomatik konfigürasyon dosyası oluşturabiliriz.
cfgmaker örnek kullanımı :
cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg.cfg public@192.168.1.244 #Burada public ‘e dikkat edilmesi gerekiyor. Cisco ‘da yapılan SNMP ayarında girilen CommunityName yerine public yazıldı. Oluşturulan MRTG konfig dosyası /etc/mrtg/mrtg.cfg ‘dir. Eğer herhangi bir hata almaz isek MRTG Cisco cihazımıza SNMP ‘den sorunsuz bağlanmış demektir. Eğer SNMP ile ilgili hata almış iseniz cisco ile yukarıdaki yapılan ayarlamaları tekrar yapmalısınız.(Local firewall veya fedora üstünde iptables çalışıyor olabilir).
Şimdi grafiklerimizi oluşturalım;
env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Rateup WARNING: gibi uyarılar alacaksınız. Bu uyarılar bitene kadar env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg komutunu çalıştırmanız gerekiyor. Uyarılar tamamen bittiği zaman grafiklerimiz oluşturulmuş oldu.
MRTG ‘nin her 5 dakikada bir çalışmasını istiyorsanız crontab dosyasına 0-59/5 * * * * root env LANG=C /usr/bin/mrtg mrtg.cfg eklemeniz gerekiyor.
Bir kaç tane cihaz konfigürasyonu oluşturmuş iseniz bunlara erişim için teker teker adres yazmanız gerekiyor. Bunları tek bir index dosyasında toplamak için ;
indexmaker –title “USR MODEMLER”–output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg /etc/mrtg/usr.cfg yapmanız yeterlidir. # Bu sayede mrtg.cfg dosyası ve usr.cfg içinde bulunan cihazlarımızın hepsi index.html dosyası altında (başlıklar halinde) toplandı.
MRTG ‘de Güvenlik
Mrtg web istatistiklerini her kullanıcının görmesini engellemek isteyebiliriz. Bunun için Apache Web Server ‘dan yararlanabiliriz. Apache kullanarak 2 tür kısıtlama gerçekleştirebiliriz.
1. IP bazlı erişim sınırlaması
<Directory /var/www/mrtg />
Order allow,deny
Allow from 192.168.1.0/24
Allow from 127
Allow from 192.168.1.0/24
Allow from 127
</Directory>
Yukarıdaki konfigürasyonu httpd.conf dosyasına yerleştirilecektir. İzin vermek istediğiniz ip adreslerini Allow from ip_adresi şeklinde ekleyebilirsiniz.
[root@mail mrtg]# cd /var/www/mrtg
htpasswd -c murat #parametresiyle murat kullanıcısı eklendi.
[root@mail mrtg]# htpasswd -c .htpasswd murat
New password:
Re-type new password:
Adding password for user murat
mrtg dizininden çıkmadan vim .htaccess yazarak aşağıdaki parametleri bu dosyanın içine yapıştırıyoruz.
AuthName "MRTG LOGIN"
AuthType Basic
AuthUserFile /var/www/mrtg/.htpasswd
Require valid-user
AuthType Basic
AuthUserFile /var/www/mrtg/.htpasswd
Require valid-user
Şimdi son olarak httpd.conf dosyasında herhangi bir boş satıra aşağıdaki örnek conf. ‘u yapıştıralım. Tabiki bu conf ‘u kendinize göre ayarlamalısınız.
<Directory /var/www/mrtg>
AllowOverride AuthConfig
</Directory>
AllowOverride AuthConfig
</Directory>
Tüm bu işlemler yapıldıktan sonra service httpd restart komutu ile httpd yeniden başlatıyoruz. Artık htpasswd komutu ile oluşturulmuş kullanıcılar MRTG Web İstatistiklerine ulaşabileceklerdir.
Sevgiyle
Murat Uğur EMİNOĞLU






AllowOverride AuthConfig
merhaba murat bey yukaridaki bu bolumu tam anlamadim directory derken boyle mi kalacak
ornegin benim cfg dosyam path su sekil /var/www/html/mymrtg/ ben butum httpd pass ler i bunun icine ekledim sizin verdiginiz ornege gore
etc/httpd.conf dosyasina da yukaridakini ekledim ama hala olmadi.
yani login olurken passowrd sormuyor
ltf yardimci olurmusunuz?
Merhabalar, AllowOverride AuthConfig satiri dizine erisim icin .htaccess dosyasinin kullanilacigini soyluyor. Bu satir olmaz ise .htaccess hic bir sekilde calismaz.. Simdi sizin dizine gore asagida bir ornek var. Ona gore yapabilirsiniz.
Bu satir httpd.conf dosyasinda bos yere yapistiriyorsunuz.
<Directory /var/www/mymrtg>AllowOverride AuthConfig
</Directory>
cd /var/www/mymrtg diyerek mrtg kurulu dizine gidiyorsunuz. Bu dizin altinda, htpasswd komutunu calisitiriyorsunuz, murat dedigimiz kullanici adi oluyor.
htpasswd -c .htpasswd murat
Yine ayni dizin icinde (/var/www/mymrtg) vim .htaccess diyerek .htaccess adi altinda bir bos bir dosya olusturup icine asagidakileri giriyorsunuz. (noktahtaccess dikkat etmelisiniz.)
AuthName "MRTG LOGIN"AuthType Basic
AuthUserFile /var/www/mymrtg/.htpasswd
Require valid-user
kaydedip cikin ve service httpd restart diyerek apache serverinizi tekrar baslatin..
Kolay gelsin..
murat bey tekrar selam,
cok tesekkurler verdiginiz bilgiler icin.Ancak daha bugunlerde firsatim oldu calismalarimin devami icin.
simdi crontab benim dizin dekiler asagidaki gibi
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0-59/5 * * * * root env LANG=C /usr/bin/mrtg mrtg.cfg
dedigimde nedense 5 dk bir guncellemiyor.Acaba bu directorde yanlislik var mi?
bır de ayrıca benım olusturdugum dızını de verım sıze bell kı bır yanlıslık olmus olabılır.
hepse cd /var/www/html/mymrtg/ındex bılgılerı var.
ayrıca etc/mrtg/myrtg.cfg dosyam var.ben sızın config maker yaparken ki ornegınızın aynısı almadım.o yuzden benım ornegı daha ıyı hayal etmenız ıcın dızınlerın nasıl durdugunu da yazmak ıstedım.
Benım amacım ıkı adet gatewayımızdakı gelen gıden packetlerı monıtor etmek.Daha ılk gateway beceremedım acıkcası
zaten bu ısde cok ıyı degılım yenı sayılırım.Yanı sızın gıbı ustadların sayesınde ınsallah daha ıyı olacagıma ınanıyorum.
Yardımlarınız ııcn sımdıden tesekkurler.
Bır de kusura bakmayın rahatsızlık verıyorsam….
Selamlar, crontab dosyasinda mrtg.cfg dosyasinin yerini belirtmelisiniz.
misal benim mrtg.cfg dosyam /etc/mrtg.cfg de.
0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
Kolay gelsin
Teşekkürler. Bunun sayesinde Cisco 877 ile CentOS üzerinde MRTG
çalıştırdım. Ancak sunucu üzerinde zaten RRDTOOL var biz bunu
RRDTOOL ile nasıl çalıştırıcaz? Perl ve RRD için path istiyor. Verdiğimde de
çalışmıyor zaten.