Ana Sayfa » *nix » BandwidthD ile Birden Fazla Interface’i Monitor Etmek | FreeBSD

BandwidthD ile Birden Fazla Interface’i Monitor Etmek | FreeBSD


BerbatKötüİdare EderGüzelHarika (Toplam 1 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYQkTm9x' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
, Network monitoring konusunda favori olarak kullandığım yazılımlardan birisi. Kısaca, belirlenen ağ arayüzünü izler ve trafiğin grafiklerini çıkarırak html formatında IP bazlı raporlar sunar. bandwidthd

konusunda daha önce http://www.syslogs.org/bandwidthd/ adresinde bir yazı yayınlamıştım; kurulum ve yapılandırma ile ilgili bilgi almak için o dökümandan yararlanabilirsiniz. Bu yazıda, 'nin birden fazla ağ arayüzü için çalıştırılmasından bahsedeceğim.

Normalde sisteminize bandwidthd kurduğunuz zaman, yapılandırma sadece tek ethernetin dinlenebileceği şeklide set edilebiliyor. Yani yazılımı, birden fazla network interface'ine sahip bir ağ geçidinde kullanmak istemeniz durumunda, her bir interface için ayrı ayrı rapor almanız öntanımlı ayarlarla mümkün olmuyor. Bu gibi bir durumda her bir arayüz için ayrı bir bandwidthd instance'ı çalıştırmak gerekiyor.

Örneğin internet'e çıkış için kullanılan DSL networküne bakan bir ethernet, sunucuların bulunduğu DMZ networküne bakan diğer bir ethernet ve lokal network'e bağlı bir başka ethernet olmak üzere toplam 3 farklı ağ arayüzüne sahip bir ağ geçidi üzerine hem DMZ hem de DSL networklerine ait trafiğin IP bazında ayrı ayrı raporlanmak istenmesi durumunda iki ayrı bandwidthd instance'ı (multiple instance) çalıştırmak gerekiyor.

Bu şekilde her bir bandwidthd instance'ının kendi yapılandırma dosyası ve daemon'ı oluyor ve ayrı ağ arayüzlerini izleyerek grafik oluşturup rapor html'leri üretebiliyorlar. Yazının devamında yeni bir bandwidthd instance'ı oluşturmaktan bahsedeceğim.

NOT: Burada, bandwidthd'nin kurulumu ayrıca anlatılmamaktadır; dolayısı ile sisteminizde bandwidthd'nin hali hazırda kurulu ve çalışıyor olması gerekmektedir. Kurulum notları için http://www.syslogs.org/bandwidthd/ adresine bakabilir ya da yazılımla gelen INSTALL dosyasını okuyabilirsiniz.

Misal olarak, ikinci bir bandwidthd instance'ı çalıştırmak istediğimiz ağ geçidinde eth0, eth1 ve eth2 olmak üzere üç adet ethernet bulunduğunu, eth0'ın DSL networküne, eth1'in DMZ networküne ve eth2'nin lan'a baktığını farzedelim ve bandwidthd eth0 yani DSL networkü için hali hazırda yapılandırılmış olsun. Biz ise, eth1 yani DMZ networkü için de bir bandwidthd instance'ı çalıştıralım.

Bildiğiniz gibi bandwidthd ile ilgili dosyalar sistemde /usr/local/bandwidthd dizininde bulunmaktadır. Bu dizin içerisinde yapılandırma ve binary dosyaları ile html raporların bulunacağı htdocs dizini bulunmaktadır. Yapacağımız iş bu dizinin bir kopyasını almak, kopya dizinin içerisindeki yapılandırma dosyasını ikinci network interface'ini dinleyecek şekilde düzenlemek ve kopyalanan binary dosyasının çalıştırılması için yeni bir başlangıç betiği oluşturmaktan ibaret.

Şimdi ana bandwidthd dizinini bandwidthd2 ismi ile kopyalayalım.

# cp -pr /usr/local/bandwidthd /usr/local/bandwidthd2

Sonra kopya dizin içerisindeki etc dizininde bulunan yapılandırma dosyasını editliyoruz:

# vi /usr/local/bandwidthd2/etc/bandwidthd.conf

Bu dosya içerisindeki ethernet satırını ikinci interface'e göre düzenliyoruz. Yukarıda bahsettiğimiz örneğe göre biz DMZ networkü için eth1'in izlenmesini isteyeceğiz. Bu durumda, dosya içerisinde dev “eth0” olarak geçen satırı eth1 olarak değiştiriyoruz:

# Device to listen on
# Bandwidthd listens on the first device it detects
# by default.  Run "bandwidthd -l" for a list of
# devices.
dev "eth1"

Ayrıca, hangi IP subnet'i için raporlama yapılacağını belirtiyoruz. Örneğin biz LAN'da 192.168.1.0/24 subneti kullanıldığını düşünelim; DMZ networkünde sadece iç network'teki istemciler tarafından oluşturulan trafiği raporlamak istersek burada subnet'i 192.168.1.0/24 şeklinde belirtmemiz gerekir:

# Subnets to collect statistics on.  Traffic that
# matches none of these subnets will be ignored.
# Syntax is either IP Subnet Mask or CIDR
subnet 192.168.1.0/24

Bu şekilde sadece bu subnet'i içeren trafik raporlanacaktır, geri kalan trafik ise ignore edilecektir. Birden fazla IP networkü belirtmek için aynı formatta alt alta yazabilirsiniz.

Yapılandırma dosyasındaki ayarlar halihazırdaki (ilk interface için yapılandırıldığı) şekilde kalabilir; bu nedenle conf dosyası içinde yapılması gerekenler bunlardır ve kaydedip çıkabiliriz.

Şimdiki aşama, bandwidthd2 dizininde bulunan bandwidthd isimli binary dosyasının adını da bandwidthd2 olacak şekilde değiştirmektir. (aslında değiştirmeseniz de olur ancak karışıklık olmaması açısından ben bu şekilde yapıyorum.)

# cp -pr /usr/local/bandwidthd2/bandwidthd /usr/local/bandwidthd2/bandwidthd2

Bu yapılandırmadan sonra işlem bitmiş oluyor. Şimdi ikinci /usr/local/bandwidthd2 dizininde bulunan bandwidthd2 isimli binary dosyasını çalıştırırsanız ikinci instance çalışmaya başlayacaktır. Bunu dışında, yeni instance'ın sistem açılışlarında otomatik olarak çalıştırılması için startup scriptinin bir kopyası alınarak ilgili dosya içerisinde de ikinci instance'ın çalışma dizini ve binary ismi gibi değişiklikler yapılmalıdır.

Ben BandwidthD'yi sistemler de kullanııyorum ve bu sistemlerde startup scripti /usr/local/etc/rc.d dizininde bandwidthd.sh olarak görünüyor. (Eğer herhangi bir dağıtımı kullanıyorsanız bu script genellikle /etc/init.d/ dizini altında bulunur.)

bir sistem için yedekleme ve düzenleme işlemleri şu şekilde:

# cp -pr /usr/local/etc/rc.d/bandwidthd.sh /usr/local/etc/rc.d/bandwidthd2.sh

Kopyalamadan sonra dosyayı editleyerek aşağıdaki görüldüğü gibi ikinci instance ile ilgili yol ve binary'leri gösterecek şekilde düzenliyoruz:

bandwidthd2bandwidthd2bandwidthd2 bandwidthd2 bandwidthd2 bandwidthd2

Böylece ikinci instance çalıştırılmaya hazır:

# /usr/local/etc/rc.d/bandwidthd2.sh start

Ps ile duruma bakarsanız bandwidthd ve bandwidthd2 olmak üzere iki instance çalıştığını görebilirsiniz:

root    2544  0.0  0.2  5260  2340  p0  S     4:50PM   0:01.00 ./bandwidthd
root    2545  0.0  0.2  5260  2276  p0  S     4:50PM   0:00.81 ./bandwidthd
root    2546  0.0  0.2  5260  2276  p0  S     4:50PM   0:00.79 ./bandwidthd
root    2547  0.0  0.2  5260  2240  p0  S     4:50PM   0:00.84 ./bandwidthd
root    5942  0.0  0.2  5260  2276  p1  S     5:18PM   0:00.70 ./bandwidthd2
root    5943  0.0  0.2  5260  2276  p1  S     5:18PM   0:00.67 ./bandwidthd2
root    5944  0.0  0.2  5260  2276  p1  S     5:18PM   0:00.70 ./bandwidthd2
root    5945  0.0  0.2  5260  2240  p1  S     5:18PM   0:00.77 ./bandwidthd2

Son olarak da, yeni instance'a ait html rapor dosyalarının bulunduğu htdocs dizinini web sunucusunun kök dizinine bandwidthd2 ismi ile linkliyorum.

# ln -s /usr/local/bandwidthd2/htdocs /usr/local/www/bandwidthd2

Böylece, http://ip-adresi/bandwidthd2 adresinden ikinci interface'e ait grafiklere ulaşabiliyoruz.

Visited 412 times, 1 visit(s) today
Kategoriler: *nix |

Bu yazılar da ilginizi çekebilir:


- Bandwidth Monitoring – Bandwidthd
- FreeBSD – IP Aliases
- FreeBSD Jail Sistemlere İkinci IP Eklemek
- FreeBSD Ethernet Interface (NIC) İsimlerini Değiştirmek
- FreeBSD 6.2 Kurulumu – Part IV: Post-Installation

Yorumlar


  1. Engin | (Temmuz 19th, 2010 10:51 pm)

    Güzel bi yazılım gerçekten, birebir gördüm cok işe yarar ve pratik.

    [Cevapla]

Trackbacks

Yorumda bulunun.