Nagios üzerinde port istatistiği alıyorsanız bu betiği muhtemelen kullanıyorsunuzdur. Çok güzel bir eklenti olsa da bana göre eksiklerinden biri bilgilerini /tmp altında bir dosyaya yazması, Sunucu tekrar başlatıldığında geri dönük olarak kullanılabilecek bilgilerin kaybolması idi. Bende bu betiği değiştirerek bilgileri mysql üzerine ip ve port bilgileri kullanarak yazmasını sağladım. Bu şekilde hem ileride bu bilgiler gerektiğinde kullanılabilecek hemde sunucu tekrar başladığında bilgiler kaybolmayacak. Betik üzerinde biraz sadeleştirme yapmam gerekiyor ama bu hali ile de işlevini yerine getiriyor. Betiği, kurulumunu ve sql tablosunu bu yazının ekinde bulabilirsiniz. İyi kullanımlar.

Kurulum :

Öncelikle kendinize  mysql üzerinde bir veritabanı açmanız ve ekte verdiğim şema yardımı ile tablo oluşturmanız gerekiyor :

CREATE TABLE `int_traf_stat` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `host` varchar(45) CHARACTER SET latin1 NOT NULL,
  `port` varchar(20) CHARACTER SET latin1 NOT NULL,
  `inbound` bigint(20) UNSIGNED NOT NULL,
  `outbound` bigint(20) UNSIGNED NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

daha sonra betik içindeki aşağıdaki parametreleri uygun şekilde değiştirmelisiniz.

my $platform = "mysql";
my $database = "[oluşturduğunuz veri tabanı ismi]";
my $host = "localhost";
my $port = "3306";
my $tablename = "int_traf_stat";
my $user = "[tabloya erişecek kullanıcı]";
my $pw = "[tabloya erişecek kullanıcı şifresi]";

ve betiğimiz hazır. Betiğe ise bu bağlantıdan erişebilirsiniz.

 

6 views

 

Bu akşam Gürcan Öztürk‘ün günlüğündeki NAGIOS mesajlarını iPhone’a göndermek konulu yazısını görünce aklıma 3 ay önce uyguladığım benzer bir yöntem geldi. Bende bir proje için nagios mesajlarını tweeter üzerinden göndermeyi istemiştim. Bunun için araştırma yaparken nitter adlı perl betiğine rastladım. Betik konsoldan çalışıyor. Kurulumu ve nagios üzerine uygulanması ise şu  şekilde yapılıyor :

- Öncelikle bu adresten betiği indiriyoruz.

- Aşağıdaki komut ile gerekli kütüphaneleri yüklüyoruz.

aptitude install libnet-twitter-lite-perl libnet-oauth-perl

- Nitter ile göndereceğimiz nagios uyarılarının yanlış ellere ulaşmaması için tweet gönderilecek hesabın  “Settings” bölümündeki “Account” kısmındaki “Protect my updates” seçeneğini işaretlemenizi öneriyorum.

- Daha sonra http://dev.twitter.com/apps adresi üzerinden hesabımıza giriş yapıyoruz.

- Sağ kenardaki “Register a new app” bölümüne giriyoruz.

- Program tanımı için benzersiz bir isim seçiyoruz. Daha sonra kısa açıklama ve web adresi kısımlarını da istediğimiz gibi doldurup “Application type” kısımını “client” olarak seçiyoruz. “Default Access Type” kısmını da “Read & Write” olarak seçiyoruz ve kayıt ediyoruz.

Burada üretilen “Consumer key” ve “Consumer secret” bize ileride lazım olacak not edin.

- Sağ taraftaki “My Access Token” kısmını seçiyoruz. Buradan üretilen “Access Token” ve “Access Token Secret” da nitter için gerekli bunları da not ediyoruz.

- Daha sonra nitter2 betiğini açıp not aldığımız değerleri gerekli yerlere giriyoruz.

nitter’ı 2 şekilde kullanabilirsiniz.

a. Özel mesaj yollamak için

nitter2.pl --dm --tweet "Merhaba Dünya"

b. Durum mesajı yollamak için

nitter2.pl --update --tweet "Merhaba Dünya"

şeklinde kullanmak gerekiyor.

Nagios üzerinden nitter ile tweet yollamak için nagios’a aşağıdaki komutları eklememiz gerekiyor.

define command {
        command_name    host-notify-twitter
        command_line    $USER1$/nitter2.pl --update --tweet "d @$_CONTACTTWIT$ [Nagios] $HOSTNAME$ is $HOSTSTATE$ [$SHORTDATETIME$]"
}
 
define command {
        command_name    service-notify-twitter
        command_line    $USER1$/nitter2.pl --update --tweet "d @$_CONTACTTWIT$ [Nagios] $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ [$SHORTDATETIME$]"
}

Böylece nagios uyarılarımızı nitter ile tweet olarak yollamak mümkün hale geliyor.

27 views

 

Debian volatile artık debian dizini içine taşındı. Spamassassin ve clamav gibi güncelliğini sürekli koruması gereken daha önce debian-volatile altında sunulan güncellemelere ulaşmak için /etc/apt.conf içine aşağıdaki satırı eklemeniz yeterli.

deb http://ftp.tr.debian.org/debian squeeze-updates main

Bu arada artık Debian Türkiye yansısı tamemen LKD sunucusu altından hizmet vermeye başladı.

 

22 views

 

Debian Türkiye yansısı LKD bünyesindeki yeni evine taşınıyor. Ankara Üniversitesine 15 yıla yakın yansıya ev sahipliği yaptığı için teşekkür ediyorum. Bu vesile ile LKD FTP ekibine elimden geldiğince katkıda bulunmaya çalışacağım. Debian ailesi olarak artık hız ve yer sorunu yaşamayacağız. Hepimize hayırlı olsun.

47 views

 

Debian 6.0 squeeze için geri sayım başladı. Tahmini sürüm zamanı 5 yada 6 şubat olarak belirlendi. Sürüm yayınlandığında imaj dosyalarına http://ftp.tr.debian.org/debian-cd adresinden ulaşabileceksiniz. Hadi hayırlısı. http://wiki.debian.org/NewInSqueeze adresinden sürümdeki yeniliklere bakabilirsiniz.

4 views

 

2011 yılına yeni bir yıl ve yeni bir iş ile başlıyorum. 2011 Ocak itibari ile Dora Telekom‘da çalışmaya başladım. Daha profesyonel ve sıcak bir ortam.

5 views

 

Firefox 4.0b7 kullanıma sunuldu. Bu sürümde görsel olarak büyük değişimler yapılmış ( En azından linux sürümünde ). Öncelikle önemli böcükleri temizlemişler. Durum çubuğu tamamı ile kaldırılmış. Bu firefox ile chrome arasındaki benzerlikleri oldukça artırmış.

Durum çubuğunun görevi adres çubuğuna aktarılmış. Artık adres çubuğu ; hem adres hem durum çubuğu görevini yerine getiriyor. JavaScript motoru olarak artık daha hızlı olan JägerMonkey kullanılmaya başlanmış. Bunun yanında WebGL artık windows ve Mac OS X sürümlerinde ( her ne kadar OpenGL bir grafik kartı gerekse de ) varsayılan olarak açık geliyor. Diğer güncellemeleri incelemek isterseniz buradan ulaşabilirsiniz. 4.0b6 kullananlara mutlaka beta 7 ye geçmelerini tavsiye ediyorum. Yavaş yavaş 4.0 sürümü bir şeye benzemeye başladı. Bu aralar 4.0 sürümü üzerinde ilerleme hızlanmaya başladı. 26 Kasım’a kadar 2 tane daha beta çıkması bekleniyor. Her zamanki gibi ertelemeler olmazsa RC1 sürümünün ise Ocak ortalarda görünmesi gerekli ama bakalım. Son olarak indirmek için http://www.mozilla.com/tr/firefox/beta/ adresini kullanabilirsiniz.

15 views

 

Sistemi kurmak ve yürütmek için sabah 8 den gece yarılarına kadar geçen özverili bir 6 aydan sonra Türkmesh’deki “Sistem yöneticisi” görevimden 04 Kasım 2010 itibari ile ayrıldım. Sistemi yürütmek için yaptığım özverili çalışmalar ise kendilerine hediyem olsun.

6 views

 

Ankara Üniversitesi Ftp sunucusunda mozilla yansısı tutmaya başladığımızdan beri sunucunun yurt dışı trafiğinde bir artma oldu. Bende bu aralar henüz bir iş bulamadığım için boşluktan fayda buna bir çözüm yolu aramaya başladım. Bana ilk başta gereken, sunucuda en fazla trafik oluşturan US kullanıcılarını sunucudan uzaklaştırmaktı. Her ne kadar Mozilla coğrafi yönlendirmeye başlasada bir miktarda olsa bu US isteklerinin sunucuya gelmesini engelleyemiyor (yada engellemiyor) . Bende çözümü apache web sunucusu üzerinde Maxmind firmasının ücretsiz kullanıma sunduğu geoip modülü ile ülke bazında yönlendirme yapmakta buldum. Bunun için apache sunucusunda geoip ve rewrite modüllerini aktif ediyoruz.

#a2enmod geoip rewrite

Daha sonra aşağıdaki ayarları sunucu ayar dosyamıza ekliyoruz.

<ifmodule mod_rewrite.c>
<ifmodule mod_geoip.c>
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$
RewriteRule ^(.*)$ http://3347-mozilla.voxcdn.com/pub/mozilla.org [R,L]
</ifmodule>
</ifmodule>

Şu an sunucuya gelen US kullanıcılarını istediğimiz başka bir sunucuya yönlendirilmiş olduk.

Ama beni bir şeyler daha rahatsız etti. Bu yönlendirme işlemi neden sadece bir tek sunucuya olsun ki. Bu işlemi istediğim kadar sunucu arasında rastgele yapılmalı. İnternet sağ olsun bu konuda da araştırma yapmama yardımcı oldu. rewrite modülünün parametreleri bu işlem içinde yanımızda. Bu işlem için yukarıdaki kurallara aşağıdaki şekilde değişiklik ve eklemeler yapmamız gerekiyor.

RewriteMap yonlendir rnd:/etc/apache2/yonlendir.map
<ifmodule mod_rewrite.c>
<ifmodule mod_geoip.c>
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$
RewriteCond ${yonlendir:US} !=""
RewriteRule ^(.*)$ ${yonlendir:US}/$1 [R,L]
</ifmodule>
</ifmodule>

Daha sonra ise /etc/apache2/yonlendir.map dosyasının içeriğine aşağıdaki ifadeleri ekliyoruz :

US http://releases.mozilla.org/pub/mozilla.org/|http://mirrors.xmission.com/mozilla.org

Burada yaptığımız işlemler :

1. Rewritemap kuralı ekledik. Buradaki “yonlendir” bizim seçtiğimiz bir ifade. Daha sonra gelen “rnd:/etc/apache2/yonlendir.map” ifadesi ise seçimin hangi dosyada ve ne kural ile yapılacağını belirliyor. Kullandığımız “rnd” ifadesi seçimin karışık (rnd: random) şekilde olacağını belirliyor.
2. RewriteCond ${yonlendir:US} !=”” kuralı ile dosyamızın içinde tanımladığımız şekilde bir seçenek yok ise yönlendirmenin yapılmaması gerektiğini belirtiyoruz.
3. RewriteRule ^(.*)$ ${yonlendir:US}/$1 [R,L] şeklindeki kural ile ise yönlendirmenin yonlendir ile tanımladığımız dosya içindeki US parametresindeki sunuculara yapılacağını belirtiyoruz.

Peki bu kurallar bize ne kazandırıyor :

1. Yönlendirme bir kaç sunucuya birden karışık olarak yapılıyor
2. Yönlendirmeyi kaldırmak istediğimizde sunucu ayar dosyasında değişiklik yapıp yeniden başlatmak yerine sadece tanımlanan dosya içindeki gerekli parametrenin başına # ifadesini ekliyoruz ve yönlendirme RewriteCond ${yonlendir:US} !=”” kuralına göre tamamen kalkıyor.

4 views

 

İnternette gezerken reverse proxy hakkında bazı yararlı adresler buldum. Bunları da paylaşmak istedim.

Reverse proxy nedir derseniz ? Web sunucumuz üzerinden gereksiz yükleri kaldırmak yada yük paylaşımı yapmak için  uygulanan bir yöntemdir.

Implementing Reverse Proxy Using Squid (Eng)
Reverse Proxy Mode by squid (Eng)
Apache mod_proxy, mod_cache ile Reverse Proxy Kurulumu (Tür)

13 views