BandwidthD ile Birden Fazla Interface’i Monitor Etmek | FreeBSD
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
bandwidthd, 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, bandwidthd'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 freebsd 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 linux dağıtımı kullanıyorsanız bu script genellikle /etc/init.d/ dizini altında bulunur.)
freebsd 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.
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
Trackbacks
Yorumda bulunun.
Güzel bi yazılım gerçekten, birebir gördüm cok işe yarar ve pratik.
[Cevapla]