monitoringp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
monitoringp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Temmuz 2015 Salı

Riverbed SteelCentral AppResponse 6000 [Opnet] ile network&uygulama analiz ve troubleshoot

Merhaba,


Bu yazımda uzun zamandır takip ettiğim ve yakınlarda inceleme fırsatı bulduğum Riverbed SteelCentral AppResponse 6000 bahsetmek istiyorum.

Network ve uygulama performansını izleyip, analiz ve troubleshoot etmek için kullanılan gerçekten başarılı bir ürün. Kapsamlı son kullanıcı deneyimi sunan ürün, uygulama ve network performansını analiz eden mühendislerin hayatını kolaylaştırıyor. Piyasada bu işi yaptığını iddia eden pekçok ürün bulunmakta. Riverbed bu konuda iddia etmekten bir adım öteye geçiyor ve nokta atışı sorun tespiti yapabiliyor. Networkünüzdeki tıkanıklıkları, darboğazları, performans problemlerinin kaynaklarını başarılı bir şekilde bulabiliyor. İşin güzel tarafı bu sorunların network yada uygulama kaynaklı olması farketmiyor. Bu anlamda uygulamacılar ile network uzmanları arasında uzun zaman süren çatışmalara da son veriyor. Ürün networkünüzdeki herhangi bir problemin hangi uygulama ve servisleri etkilediğini bulabiliyor. Böylece network mühendislerinin, problem son kullanıcıya ulaşmadan proaktif bir yaklaşımda bulunabilmesine izin veriyor.

Networkler son 15 yılda büyük değişime uğramış durumda. Networkü sadece router ve switchlerden oluşan bir altyapı olarak değerlendirmek artık pek de doğru bir yaklaşım olarak görülmüyor. Sanallaştırma, mobil cihazlara geçiş, uygulamaların web tabanlı dönüşümünün yaygınlaşması gibi konular networklerin yönetilmesini büyük ölçüde zorlaştırıyor. Forrester in yaptığı araştırmalara göre performans kaynaklı problemlerin %30 gibi azımsanmayacak bir kısmının çözülmesi minimum bir ay gibi zaman alıyor. Bir kısmıda hiçbir zaman tespit edilip çözülemiyor.
Network yönetimlerinin karşılaştığı bu problemlerin nedeni sahip olunan ürünlerin bazı yaklaşımları doğru olarak sergileyememesi olarak görülüyor. Bir NPM (Network Performance Manager) yada son kullanıcı deneyimi sunan ürün kullanıyor iseniz; Sahip olunan ürün monitoring ve torubleshooting arasında bağlantı kurabiliyor mu ? Uygulama performansı perspektifine sahip mi ? Son kullanıcı perspektifine sahip mi ? Manuel korelasyonlara ihtiyaç duyuyor mu ? gibi soruları kendinize sormanız gerekiyor. Riverbed'in ürünü bu sorulara çok net cevaplar verebileceğiniz bir yaklaşım sunuyor.

2012 yılında Riverbed in satın aldığı Opnet NPM & APM çözümlerinin kombinasyonu ile gerçekten vageçilmez bir ürün haline gelmiş durumda.



Borsa İstanbul firması network bölümünde Baş Uzman olarak çalışmakta olan Elektronik ve Haberleşme Mühendisi Sn. Kamber Aydın ürün ile ilgili sorularımızı cevapladı.

AppResponse 6000 ürününün yetenekleri nelerdir ?

Ürün network datasını toplayıp yorumlamaktadır. Ana amacı son kullanıcı deneyimi ile tespitlerde bulunarak derinlemesine analiz imkanı sunmaktır. Ürün şaşırtıcı biçimde datayı tek noktadan toplayarak nokta atışı tespitler yapmaktadır. Aynı paketleri discard eden deduplication mekanizmasına sahiptir. Topladığı paketlerden network ve sistem gecikmesini çıkarır. Riverbed ile yaptığımız işi ANPM (Application Specific Network Performance Management) olarak isimlendirebiliriz. 

Neden Riverbed AppResponse 6000 ürününü tercih ettiniz ?

Sorun anında troubleshoot amaçlı kullandığımız ürünler vardı. Biz bunun bir adım ötesine geçerek networkü devamlı izleyen ve aynı zamanda geriye dönük analizler de yapabileceğimiz bir araç arayışındaydık. Amacımız kritik noktaların sürekli olarak derinlemesine izlenmesi idi. Ürünün bu isteklerimizi detaylı olarak karşıladığını gördük. Oldukça kullanıcı dostu ekranlara sahip ürünün özelleştirilebilir arayüzü de bizi oldukça etkiledi. Ürünün Box ürün olması bizim için ayrıca bir tercih nedeni. Sunucular üzerine kurulan uygulamalar yüksek trafikte verimli çalışmayabiliyordu. Paket kaybı yada performans problemleri yaşanıyordu. İki adet 10G interface e sahip ürün donanım olarak oldukça iyi iş çıkarıyor.

AppResponse 6000 ürünü networkteki latency, jitter gibi olayları yakalayabiliyor mu ?

0,000000001 saniye hassasiyetle tespit yapabiliyor.


Ürün hayatınızda neleri kolaylaştırdı ?

Hızlı problem çözümü imkanı yanısıra sadece sorun anında değil devamlı ve geriye dönük olarak da kritik noktaları takip etme imkanı sağladı.

Ürünü networkünüzde nasıl konulandırdınız ?

Networkümüde oluşturduğumuz bir aggregator layer üzerinde izlenecek noktalardan gelen dataları toplamakta ve ürüne göndermekteyiz. Bunun için bir aggregator switch kullanmaktayız. Dataları yönlendirmek için ise Tap kullanımı ve mirroring yapmaktayız. Ürünün uygulama arayüzü ise bir dashboard server üzerinden yayın yapmaktadır.

Ürün diğer ürünler ile entegre olabiliyor mu ?

Ürün DataFeed, Trap, dashboard inser yöntemleri ile diğer ürünler ile entegre olabilmektedir. 

Üründe geliştirme yapılabiliyor mu ?

Evet Python ile yapılabiliyor.

Riverbed in tanıdığı ve derinlemesine izleyebildiği protokollere örnek verebilir misiniz ?

HTTP, Fix, Ftp, SSH, DB gibi birçok protokol izlenebilmekte. Yeni bir protokolü de ürüne tanıtmak mümkün. Ayrıca key sağlandığı taktirde https de izlemek mümkün.

Riverbed izlediği bir hattan geçen veriye parse ederek belli bir paterne uygun veriyi yakalayabilir mi ?

Evet. Örnek vermek gerekirse; geçen data içinde "Login Failed" yakaladığında alarm üretebilir.

Ürünün event, incident ve alarm yönetimi var mı ?

Evet. Dashboard üzerinde izlenebilir, sms ve email gönderebilir. Treshold belirlenebilir. TCP data izlenerek connection reset, reject, retransmit ler yakalanıp belli bir treshold geçildiğinde alarm üretebilir. 3rd party araçlar ile entegre olup besleme yapabilir.

Riverbed ile çözdüğünüz sorunlara örnek verebilir misiniz ?

Bir üyemiz yavaşlık problemi yaşamakta fakat WAN hatları incelendiğinde bir sıkıntı olmadığı görülmekteydi. WAN'da kayıp bulunmamaktaydı. Üye sadece belli bir uygulamada sorun yaşıyordu. Riverbed sorunun network kaynaklı olmadığını ve sunucudaki bir prosesin yüksek cpu tüketimine neden olduğunu net bir şekilde gösterdi. Daha derine indiğimizde ürünün Nagle ve Delayed Ack konularında da latency yapan cihazları tespit edebildiğini gördük.

Ürünü seçerken hangi kriterler etkili oldu ?
  • Firma ve personel yetkinliği (Sertifikalar, Referanslar, Deneyimler, vb.)
  • Sistem fiziksel özellikleri ve kapasitesi
  • Çözüm bileşenlerinin tek vendordan olması
  • HTTP&HTTPS analiz yeteneği
  • Ağ paketleri üzerinden kritik verileri gösterebilme yeteneği
  • L4-L7 analiz kapasitesi
  • Band genişliği değişiminin etkisinin simülasyonu
  • Dashboard ve özelleştirme özellikleri
  • Çeşitli protokolleri analiz ve yeni protokoller için özelleştirebilme yeteneği
  • Microburst analiz yeteneği
  • Paketlerin data kısmında istenen alanları parse edebilme yeteneği

Riverbed AppResponse 6000 ürününü tavsiye eder misiniz ?

Kesinlikle...

Teşekkürler,
Cem Selmanoğulları

8 Haziran 2015 Pazartesi

Bir web servisinin uçtan uca izlenmesi

Merhaba,

Bu yazımızda uçtan uca bir web hizmetini nasıl monitor edeceğimizi inceleyeceğiz.

Web hizmeti birkaç katmandan oluşmaktadır. Bunların hepsinin ayrı ayrı monitor edilip bir servis yapısı altında birleştirilmesinde fayda vardır. Web sitesinin performanslı ve kaliteli yayınlanabilmesi için ilişkili olduğu tüm altyapı ve uygulama platformlarının izlenmesi gerekir.




Özellikle e-ticaret ve yayın yapan web platformlarında birkaç dakikalık kesinti yada servis yavaşlaması büyük kayıplara sebep olmaktadır. Bu anlamda proaktif olmak büyük önem taşımaktadır.

Örnek olarak java ile geliştirilmiş ve linux ortamında hizmet veren bir web servisini ele alırsak neleri izlemeliyiz ?



[ Uygulama Sunucuları İzleme (İşletim sistemi, donanım, uygulamalar) ]

  • Sunucu :
            -Linux proses izleme
            -Linux partition ve klasör yapısı izleme
            -Linux dosya yapısı, değişikliklerin izlenmesi
            -Portların izlenmesi
            -CPU, RAM, Disk, Buffer, Interface, Availibity, Reachibility, Disk I/O... izleme
            -Sistem log izleme. Syslog izleme.
  • Uygulama : 
            -J2EE & Java & JVM Component Performans, JMX, Beans...
            -Uygulama Sunucu İzleme : SilverStream, GlassFish,WebSphere,Weblogic, JBOSS, Tomcat              
            -Apache monitor : CPU Load, Uptime, Total Access, BytesPerSecond, BusyWorkers, Idle
             Workers...
            -Uygulama log izleme. Syslog ve uygulamaya özel log klasörlerinin izlenmesi.

[ Veritabanı İzleme ]

  • Availibity & Reachibility
  • Sunucu proses izleme
  • Sunucu CPU, RAM, Disk, Buffer, Interface, Availibity, Reachibility, Disk I/O... izleme
  • Veritabanı login kontrolleri
  • SQL Query Monitor
  • Komponentler : 
            -Connection Time,
            -Request Ststistics,
            -Connection statistics,
            -Thread Details,
            -Table Lock Statistics,
            -Key Efficiency,
            -Query Hit Ratio,
            -Query Cache Hitrate,
            -Replication Details,
            -Active Sessions,
            -Invalid Objects,
            -Waiting Sessions,
            -User Wait Time,
            -Archive Area Used,
            -Consistant Read Changes,
            -Broken Job Count,
            -Average File Read Time,
            -Average File Write Time,
            -Response Time Per Call


[ Network & Security Monitoring ]

  Web sunucularından başlayarak dışarıya yayının çıktığı son noktaya kadar tüm network ve güvenlik   cihazları izlenmelidir.

[ DNS & FTP Monitoring ]

[ Sanal sunucu var  ise Virtualization Monitoring ]

  VM hostların performans metriklerinin izlenmesi.

[ Synthetic Enduser Monitoring ]
  • Lokal networkden kullanıcı deneyimi (Sentetik kullanıcı) ile web sayfası performansının ölçülmesi. Availibity, Response Time, Sayfa yüklenme süresi, Web transaction izlenmesi.
  • Uzak ağdan (Ofislerden, farklı şehirlerden, farklı ülkelerden) kullanıcı deneyimi (Sentetik kullanıcı) ile web sayfası performansının ölçülmesi. Availibity, Response Time, Sayfa yüklenme süresi.
  • Login testi.
[ Real User Monitoring ]

Kullanıcıların verilen hizmet ile gerçek etkileşimi ve hizmeti kullanırken nasıl tepki gösterdiğini izleyin. Böylece ziyaretçilerin işlem yapma sürelerinin ölçülmesi, uygulama problem çözümü için ziyaretçinin nereye tıkladığının tespiti gibi faaliyetleri hızlıca gerçekleştirin. Sıkıntı olduğunda kullanıcıya düzgün hizmet verilemiyorsa iş süreçlerinde nerde tıkanıklık olduğunu tespit edin.

Http/s, FTP, SMTP, SQL, POP3, IMAP, UDP, MQ, LDAP, Citrix ICA... gibi protokolleri kullanan pek çok uygulama için kullanılabilir.

[Web Content Monitoring ]

Web sayfasının içeriğinin tarayıcıda gelip gelmediğinin yada olması şart bir içeriğin sayfada olup olmadığının kontrolü.

[ PCI-DSS Monitoring ]

Eğer web sitesi üzerinden e-ticaret yapılıyor ise PCI-DSS (Payment Card Industry - Data Security Standarts) uyumlulukları konusunda izleme yapılması da gerekecektir.



  • Logon Attempts - Radius, RDP logon activity
  • File access, file creation, deletion, modify
  • Failed logins
  • Admin priviledge user changes on systems
  • Domain policy changes
  • Permission changes
  • Configuration file changes
  • Log monitoring, Who accessed and viewed, modified logs...
  • Monitoring access to cardholder data and network resources.

Teşekkürler,
Cem Selmanoğulları

27 Mayıs 2015 Çarşamba

NetBrain ile IT-Network izleme, otomasyon ve değişiklik yönetimi

Merhaba,

Son günlerde dikkatimi çeken NetBrain ürünü network otomasyon, troubleshoot ve change management konularına yeni bir bakış açısı getiriyor.



Network mühendisleri, çoğu ürünün görsel arayüzlerini kullanıcı dostu güvenilir bulmamaktadır. Görünüşe bakılırsa NetBrain bu bakışı yıkacak bir yaklaşım sunuyor. Model güdümlü arayüz sunan NetBrain network mühendisleri için geliştirilmiş güçlü bir CAD  (Computer-Aided Design) ve modelleme aracı olarak da ön plana çıkıyor. Networkünüzü keşfini takiben oluşturduğu interaktif topoloji haritaları ile yönetim ve troubleshoot operasyonlarını kolaylaştırıyor.

Peki NetBrain networkümüzü nasıl öğreniyor ?

SNMP, SSH/Telnet protokolleri ile tüm networkünüzden topladığı bilgileri ‘neighbor-walking’ keşif algoritması ile harmanlamaktadır. Binlerce snmp verisi ve ssh komut çıktısını birleştirerek networkünüzün matematiksel ve mantıksal tanımını elde eder. Sonrasında rendering işlemleri ile dinamik haritalar oluşturulur.

Bunu yaparken hangi bilgiler kullanılıyor ?

NetBrain cihazlardan routing tabloları, CDP ve ARP tablolarını, MAC adreslerini, STP bilgilerini ve daha pekçok veriyi ssh komutları ve snmp ile alıp harmanlamaktadır. Oluşturulan haritalar dinamik olup network değişiklikleri haritalara dinamik olarak yansıtılır. Ayrıca uçtan uca L3 ve L2 haritalar oluşturmak da mümkündür. Haritalar Visio ya atılarak çıktı alınabilir. Dinamik haritaları yanlızca topolojik görseller olarak düşünmeyin. Harita üzerindeki her cihaz ile etkileşime geçerek cihazları yönetebilir, torubleshoot ve change management işlemlerini yürütebilirsiniz. Burda yapılan operasyona görsel torubleshoot demek yanlış olmaz. Harita üzerinde cihazların canlı performans metriklerine ve geçmiş networksel değişimlere ulaşmak mümkündür.

Yavaş çalışan bir uygulamanın troubleshoot edildiği bir senaryoda uygulamanın network üzerinde uçtan uca akışını görsel olarak çıkarmak mümkündür. NetBrain bu konudaki çözümünü “Map+App” olarak isimlendirmektedir. Çoğu zaman yavaşlık problemleri network bölümlerine mal edilmekte ve bunu ispatlamak uzun zaman almaktadır. Map+App ile yaklaşımında sorunlu network segmentinin dinamik bir haritası çıkarılarak network performansı ile ilgili drill down işlemi yapılarak sorun tespiti yapılabilmektedir.

Altta kaynak ve hedef adresleri belirtilen bir uygulama için real-time akışı görebilirsiniz.



Ürün uygulama trafiğinin asimetrik olduğu durumları da hesaplayabilmektedir. Yani bir A noktasından B noktasına takip edilen akış dönüşte farklı bir yol takip ediyor ise bu iki farklı yolu ayrı ayrı incelemek mümkündür.




Ürün CLI kullanmadan torubleshoot a izin veren modüller içermektedir. Örnek vermek gerekirse “Layer-4 Port Level Analysis App” uçtan uca istediğiniz network yolunu çizerek anlık olarak nerede tıkanıklık olduğunu gösterir. Web yayını yapan sunucunuza http ile ulaşabiliyor fakat ftp ile ulaşamıyorsunuz. Aradaki yolda 10 a yakın network cihazı var. Ürün ACL, QoS, NAT gibi kontrolleri yaparak uçtan uca inceleme ile takılan noktayı bulur. Altta ACL konfigürasyonu yüzünden takılan Telnet ile ilgili bir örneği görebilirsiniz. LA-Core1-Demo cihazında f1/0/1 yanlış tanımlanan bir ACL sebebi ile bu cihazda Telnet geçişi bloklanmıştır. Bu tespit hiçbir manuel CLI komutu girmeden yapılmıştır.



Trafikteki günlük yada haftalık değişimleri görebilmek ister miydiniz ? Ürün bu konuda da oldukça fonksiyonel özellikler sunmaktadır. Son zamanlarda yapılan konfigürasyon değişiklikleri yada route değişimi sebebi ile bir uygulama performansında düşüş yaşanabilir. Bunun network kaynaklı mı uygulama kaynaklı mı olduğunu tespit için ilgili network segmentindeki değişimleri görmek gerekecektir. Bu noktada geçen hafta ile bu hafta arası iki nokta arası iletişimin hangi path üzerinden gerçekleştiğini çizdirerek nelerin değiştiğini görsel olarak tespit etmek oldukça kolaydır.



Ürünün Network Health uygulaması standart network uygulamalarında bulunan cihaz durumu, availibity, interface link performansı, delay, error, utilization gibi değerleri hem topoloji üzerinde hem interface bazlı hem de grafik olarak verebilmektedir.




Network mühendislerinin ihtiyaç duyduğu fakat bazı monitoring ürünlerinde beğenmediğim netflow analiz özelliği net brainde de bulunmakta.



Üründe kendi izleme modüllerini geliştirmeniz oldukça kolay. Örneğin “show processes cpu ” komutu çıktısından cpu değerini alıp buna treshold belirlemek ve treshold geçilince alarm üretmek oldukça kolay ve sürükle bırak şeklinde yapılabilmekte. Bunu kullandığınız her CLI komutu için 3 adımda yapmak mümkün. Ürün ssh ile cihaza bağlanıp belirlediğiniz komutu sizin adınıza girmekte ve çıktıda sizin önceden belirlediğiniz özellikler üzerinde arama yapmakta. Bulduğu değeri isteğinize uygun olarak yorumlamakta. Herhangi bir cihaza cli ile bağlanmadan harita üzerinden bu komutları çalıştırmanız yeterli. Ürün CLI alışkanlığına yeni bir bakış getiriyor. Putty yada SecureCRT ile cihaza bağlanayım ve komut yazayım yerine sağ tıkla komut çalıştır diyorsunuz…




Interface lerin durumlarını kontrol eden bir modül yazmanız yine mümkün.



















Layer-3 bir haritayı daha detaylı troubleshoot etmek için Layer-2 görüntüye çevirmeniz mümkündür. Dilerseniz yeni bir harita olarak oluşturabilir, dilerseniz var olan bir haritayı dönüştürebilirsiniz. “Bridge Network” görselleştirmek için güzel bir araç.



“WAN Congestion” yaşandığı durumlarda hızlı tespit için NetBrain real time topoloji haritası sunuyor. “Diagnostic Monitoring” ile Congestion yaşanan hatları göz önüne seriyor.



Herhangi bir network segmentinde kararsız bir durum oluşturuğunda canlı izleme özelliği ile o an segmentin durumunu görebilirsiniz. Hatayı netleştirmek için topladığınız data arttıkça rootcause bulma olasılığı da artacaktır. Flap eden yada down portları görsel olarak görebileceksiniz.



Belli bir segmente şüpheli bir tarfik akışı gördüğünüzde NetBrain segment ve çevresini görselleştirerek atak kaynağını ve etkilediği tüm ara ve hedef cihazları ortaya çıkarıp haritalandırabiliyor.




Gelelim NetBrain in en güzel özelliklerinden birine. Yukarıda belirlediğiniz şekilde bir atak yakaladığınızda NetBrain sizin yerinize önlem alabiliyor. Gerekli cihazlara bağlanıp statik bir route yazabiliyor yada ACL tanımlayabiliyor. Yani cihaz konfigürasyonlarını değiştirmek sureti ile atak yapan cihazı engelleyerek sizi bilgilendiriyor. Galiba otomasyonun geleceği bu…



Ürünün “Map-Driven Change Management” özelliği sayesinde birçok cihaza aynı anda QoS dizaynı dağıtılabiliyor.

Data Center içinde komplike bir değişiklik yapacaksınız. Dizayn ve konfigürasyon aşamasında yine NetBrain devreye giriyor. Network değişikliği planlayıp yeni dizanınızı ve konfigürasyonlarınızı hazırlıyorsunuz. NetBrain tüm değişiklilkeri cihazlara bağlanıp sizin adınıza yapıyor.
Değişiklikleri manuel yada otomatik yapın… Test etme aşamasında yine NetBrain den yararlanmanız mümkün. Erişilebilirlik testleri, CLI komut testleri, uygulama akış testleri, Routing tablosu değişiklik testleri gibi pek çok testi NetBrain e yaptırabiliyorsunuz. Data Center migration sonrası komple bir testi NetBrain sizin için yapsın.

Change Management modülü sayesinde bir yada daha fazla cihazda yapılacak konfigürasyon değişikliklerinin network üzerindeki etkileri görsel olarak izlenebilir, ok verildikten sonra otomatik olarak konfigürasyonlar NetBrain tarafından cihazlara yüklenebilir.

Ürün hakkında anlatılacak daha çok şey var. www.netbraintech.com sitesini ziyaret etmenizi öneririm. Sitede ürünün demo versiyonunu deneme şansınız da olacak. Ürünü geliştiren NetBrain firması 2004 yılında kurulmuş ve ana merkezi Massachussetts de bulunan bir yazılım firmasıdır. Kendilerini Network CAD özelliğini network dünyasına tanıtan ilk firma olarak tanımlıyorlar. Hemen hemen tüm yazılım eforlarını network yazılımlarına aktarmaktadırlar. British Telecom, Fidelity Investments, Thomson Reuters, IBM,HP,BP,NASA,at&t,Vodacom,verizon,US.Army, Texas Instruments gibi firmalar ürünü kullanmaktadırlar.

Teşekkürler,
Cem Selmanoğulları

2 Ocak 2015 Cuma

Web sayfası yüklenme performansını izleyen bir script (Perl)

Merhaba,

Perl ile web sayafalarının performansını izlemek için bir scripti paylaşmak istiyorum.
Web üzerinde bulduğum bir scripti değiştirip düzenleyerek alttaki hale getirdim.
Scriptimiz web sayfasını http protokolü ile ham kod halinde bilgisayarımıza indirecek ve işlemin başlaması ile bitişi arasındaki süreyi tutarak sayfanın nekadar sürede açıldığını (indirildiğini) bulacak.

Sayfanın indirilebilip indirilemediğine bakacak. İndirilebiliyor ise ham kodu ekrana basacak.

İndirme işlemi belirledigimiz sureden uzun sürüyor ise alarm oluşturacak.


#!/usr/local/bin/perl -w
use LWP::UserAgent;
use Crypt::SSLeay;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Request;
use HTTP::Response;
use Time::HiRes 'time','sleep';
$browser = 'Mozilla/4.04 [en]';
$rooturl = 'http://www.myperltestportal.com/';
$cookie_jar = HTTP::Cookies->new;
$ua = LWP::UserAgent->new;
MAIN: {
 $ua->agent($browser);
 $latency = &get("index.php");
 if($response->content =~ m/404 Not Found/) {
    last;
 } else {
    if($latency > 0.5) {
         print "\n\nGECIKME VAR\n\n";
         last;
    } else {
         print "\n\nGECIKME YOK\n\n";
         last;
     }
 }
 sleep 5;
}
sub get {
 local ($path) = @_;
 $request = new HTTP::Request('GET', "$rooturl$path");
 if ($response) {
     $cookie_jar->extract_cookies($response);
     $cookie_jar->add_cookie_header($request);
 }
 $start = time(  );
 $response = $ua->request($request);
 $end = time(  );
 $latency = $end - $start;
if (!$response->is_success) {
      print $request->as_string(  ), " Basarisiz: ", $response->error_as_HTML;
 }
$GOSTER=OK;
  if($response->content =~ m/404 Not Found/) {
       print "\n\n*****\n\n404 ERROR\n\n*****\n\n";
  } else {
       if ($GOSTER eq "OK") {
             print "\n\nWEB SAYFASI DOSYA ICERIGI\n";
             print $response->content;
             print "\n###\n".$path." Dosyasi Kaynaktan Basari Ile Alindi \n\n###\n";
             print "\n".$path." Dosyasinin Yuklenmesi ".$latency."Surmustur.\n";
       }
 }
 $latency;
}


27 Aralık 2014 Cumartesi

Zabbix altyapı monitoring / izleme ürününe genel bakış

Merhaba,

Opensource bir altyapı izleme ürünü olan Zabbix i inceleyelim.

Alexei Vladishev tarafından geliştirilen vendor bağımsız bir ürün olan Zabbix networkünüzdeki geniş yelpazede iletişim, güvenlik ve sunucu sisteminin izlenmesine destek vermektedir. C ile geliştirilmiş olan ürün önyüzünde PHP kullanmaktadır.
Ürün verilerini depolamak için MySQL, PostgreSQL , Oracle, IBM DB2 ve SQLite veritabanlarını kullanabilmekteyiz.



Zabbix i bir sunucu üzerine kurmanın yanısıra virtual appliance olarak da hızlıca networkünüze dahil edip hemen kullanmaya başlayabilirsiniz. Open SUSE üzerine geliştirilmiş olan appliance altta belirtilen formatlarda bulunmaktadır.

  • vmdk (VMware/Virtualbox)
  • OVF (Open Virtualisation Format)
  • VHD (Hyper-V)**
  • CD iso
  • HDD/flash image
  • Xen guest
HTTP, SMTP, FTP, SSH vs. ve herhangi port bazlı izlemeyi ek bir yazılım kurmadan yapabilmekteyiz. Unix ve Windows sunucularda agent kurarak yada kurmadan CPU, RAM, Disk Kullanımı, Network kullanımı gibi değerleri izlemek mümkün. Agent kurulumuna alternatif olarak SNMP, TCP, ICMP kullanarak izleme yapabilmekteyiz. Ayrıca SSH, Telnet, JMX ve IPMI gibi protokoller üzerinden daha derinlemesine sorgular yaparak alınan çıktılara göre izleme yaparak olay ve alarm yönetimi yapmak mümkündür.

Üründe log rotation özelliği de mevcuttur. Zabbix ile Syslog ve log file monitoring yapılabilmekte ayrıca SNMP Trapleri alınmak sureti ile alarmlar üretilebilmektedir.

Zabbix ODBC desteklenen herhangi bir veritabanını sorgulayabilir. Bunu yapmak için Zabbix in direkt olarak veritabanına bağlanması şart değildir. ODBC arayüzü ve sürücülerini kullanması yeterlidir. Bu özellik değişik özelliklere sahip veritabanlarının daha efektif izlenmesine imkan verir.
Zabbix bu amaçla UnixODBC ve iODBC kullanmaktadır.

Daha detaylı ve akıllı izlemeler için Zabbix script monitoring imkanı sunmaktadır. İzlenen sistemde bazı scriptler çalıştırmak sureti ile üretilen çıktılar parse edilir ve yorumlanır.

Zabbix elde izlenen sistemlerden elde edilen veriler arasında matematiksel işlemler yapıp alınan çıktıları veritabanında tutabilmekte raporlayabilmekte ve alarm üretebilmektedir.

Ürün SNMP get ile herhangi OID ye ait snmp değerini belli periyodlarda sorgulamak sureti ile SNMP monitoring yapabilmektedir. SNMP v3 kullanımı ile MD5 ve DES protokolleri desteklenmektedir.

JMX monitoring özelliğini kullanarak Java uygulamalarının JMX sayaç değerlerini alabilmekteyiz. Bunun için Zapcat - JMX Zabbix Bridge en iyi çözüm olacaktır (Zabbix 1.8). Zapcat plug-in yüklemesi işlerinizi oldukça kolaylaştıracaktır. Zabbix 2.0 ile birlikte JMX monitoring default olarak Zabbix Java Gateway daemon ile birlikte gelmektedir. JMX sayaçlarının değerini almak gerektiğinde ürün Zabbix Java Gateway ile haberleşmekte ve istek JMX Management API aracılığı ile uygulamadan sorgulanmaktadır.

Zabbix ile Intelligent Platform Management Interface - IPMI desteklenen cihazların erişilebilirliği ve donanımsal özelliklerinin durumunun izlenmesi mümkündür. Bunu sağlamak için ilk kurulumunda IPMI desteği ile birlikte konfigure edilmelidir. Donanım statüsünün direkt olarak IPMI destekli kartlardan işletim sistemlerinden bağımsız olarak sorgulanmasına izin verir. Hatta bazı durumlarda makinenin açılmasına bile gerek kalmadan. HP ILO, DELL DRAC, IBM RSA ve SUN SSP gibi bu teknolojiyi desteklenen ürünler izlenebilmektedir.

Windows sistemlerde agent kurulumu ile event loglarını izlemek mümkündür. Performans counter değerleri alınabilmektedir. Servis ve Prosesleri detaylı olarak izleyebilmekteyiz.

Zabbix in network keşif / discovery özelliği alttaki bilgilere göre yapılabilir ve otomatize edilebilir.

  • IP aralıkları.
  • Servis bazlı. (FTP, SSH, WEB, POP3, IMAP, TCP, etc)
  • Zabbix agent tarafından sağlanan bilgiler.
  • SNMP destekli keşif.
Network topolojisinin keşfi desteklenmemektedir.
Ürün ile birlikte "Out-of-Box" alttaki keşif özellikleri gelmektedir.
  • File System Keşfi;
  • Network Interface Keşfi.;
  • SNMP OID Keşfi.
Zabbix probe larını network içinde değişik noktalarda konumlandırarak dağıtık bir yapıda izleme yapmak mümkündür. Zabbix probe proxy ana sunucu adına dataları toplar. Böylece tüm agent ve proxy ler tek bir merkezi Zabbix sunucusuna raporlar. Zabbix probe proxy kullanmak için alttaki maddeleri sayabiliriz;

  • Uzak noktaların izlenmesi.
  • Güvenilmez bağlantılar içeren noktaların izlenmesi.
  • Binlerce cihazın izlenmesi sırasında merkezi sunucunun yükünü hafifletmek.
  • DMZ ve izole networklerin izlenmesi. (Sadece merkezi sunucu ve proxy sunucu arasında güvenilir bağlantı sağlanması sureti ile)
Proxy kurulumu için bir TCP bağlantısı yeterlidir. Böylece Firewall lar üzerinde tek bir kural tanımlamak yeterli olacaktır.

Zabbix proxy sunucusunun kendine ait ayrı bir veritabanı bulunmalıdır. Proxy tarafından toplanan tüm data lokal olarak yerel veritabanında saklanır ve merkezi sunucuya iletilir. Böylece bağlantı sorunları nedeni ile oluşabilecek veri kayıplarının önüne geçilir.


ÖzellikProxy Tarafından Desteklenen
Items
Zabbix agent checksYes
Zabbix agent checks (active)Yes 1
Simple checksYes
Trapper itemsYes
SNMP checksYes
SNMP trapsYes
IPMI checksYes
JMX checksYes
Log file monitoringYes
Internal checksNo
SSH checksYes
Telnet checksYes
External checksYes
Built-in web monitoringYes
Network discoveryYes
Low-level discoveryYes
Calculating triggersNo
Processing eventsNo
Sending alertsNo
Remote commandsNo


[Tablo Alıntı : https://www.zabbix.com/documentation/2.0/manual/distributed_monitoring/proxies ]

Zabbix API programlanabilir arayüz ile 3rd party uygulamalar ile entegrasyon mümkündür. Ayrıca geliştireceğiniz bağımsız dashboard ekranları ve raporlarda bu API ile veri çekmek mümkün olacaktır.

API yi incelemek isterseniz : Appendixes section.

Zabbix ile oluşturulan Dashboard ekranlarını slide-show ekranları şeklinde birbiri peşisıra göstermek mümkündür.

Zabbix in görsellerine göz atalım;

Altta Network kullanımını bir grafik üzerinde görüyoruz.


Bir sistemin disk kullanım grafiği.


Kişiselleştirilmiş görsel bir ekran.








Zabbix ürününün diğer monitoring ürünleri ile karşılaştırmasını alttaki adresten inceleyebilirsiniz.

http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems

Ürün hakkında detaylı bilgi almak için;

http://www.zabbix.com/product.php


Teşekkürler,
Cem Selmanoğulları





26 Aralık 2014 Cuma

Bir monitoring / izleme yazılımı alırken nelere dikkat edilmeli ?

Merhaba,

Bu yazımda monitoring yazılımı alınırken dikkat edilecek konulara dikkat çekmek istiyorum. Firmalar yıllar içinde çeşitli monitoring yazılımlarını denemekte ve birinden diğerine geçerek hem zaman hem de para kaybetmektedirler. Bu kayıpları azaltmak ve nokta atışı bir monitoring yazılımına sahip olmak için isterleri belirlemek çok önemlidir. Her şirketin isterleri farklılık gösterebileceği gibi tüm firmaların ortak isterleri olabilecek bazı maddeleri aşağıda belirlemeye çalıştım.

Bazı isterler monitoring araçları dışında CMDB ve Servis bazlı izleme araçlarının da projeye dahil edilmesini isteyeceği gibi hepsini biraraya toplayan ürün çözümleri de bulunmaktadır.

+İzlenen altyapıda sorun oluştuğunda otomatik olarak istenilen listeye e-posta, SMS atabilme
+Otomatik Eskalasyon
+Yeni eklenen SNMP özellikli donanımların otomatik olarak bulma
+Yetkilendirilmiş kullanıcı tanımlayabilme
+"Kişiye yada Bölüme özel Dashboard hazırlanabilmesi.
+Dashboardlarda bilgiler belli periyodlarda dinamik güncellenmeli."
+Yöneticiye özel rapor alınabilmesi
+Rootcause analiz yapabilmesi
+Detaylı event management ve korelasyon özelliklerinin olması
+Geçmişe yönelik CPU, RAM v.b. kullanımının izlenip grafiklenebilmesi.
+Sanallaştırma ortamlarının izlenmesi. VMware api entegrasyonu
+Grafik oluştururken üst üste grafik bindirme özelliğinin olması
+Servis bazlı izleme yapılabilmesi
+Servis Masası ile entegre olabilmesi. Otomatik kayıt açıp kapatabilme
+Sunucu üzerinde ismi tarihe bağlı olan bir dosyada keyword arayabilme
+Hatlarının etkin şekilde izlenebilmesi. Hat durumlarının yada hattın ucundaki cihaz
durumlarının izlenebilmesi.
+Uygulamalarla ilgili izlemelerin kolay eklenmesi
+Dinamik keşfedilen interfacelerin bandwidth değerlerinin doğru çekiliyor olması.
+CMDB ile entegre olabilmeli.
+İzlenecek her cihaz model ve versiyonu desteklemeli. Bu cihazlardan
birer örnek dashboard incelenerek doğru data geldiği tespit edilmeli.
+Belli saate planlı yada belli zaman periyodlarında çalışabilecek oto keşif yapabilmeli.
+Keşif kriterleri verilirken istenmeyen cihazlar ip, model, vendor, cihaz tipi bazlı exclude edilebilmeli.
+Kolay bir MIB yönetim arayüzü olmalı.
+Hazır raporlar dışında  mümkün olduğunca özelleştirilebilir olmalı.
+Raporlarda format değiştirilebilmeli
+Raporlara yeni sütun eklenebilmeli yada var olan sütunlar çıkartılarak özelleştirilebilmeli.
+Detaylı Availability ve Reachability raporları çıkarılabilmeli.
+Detaylı envanter raporu sunabilmeli.
+Grafiklere zoom yapma ve time windows değiştirme özelliği olmalı.
+Cihaz sayfalarına custom alanlar eklenebilmeli.
+Interface grup oluşturulabilmeli.
+Cihaz grupları oluşturulabilmeli.
+Yedekli çalışan cihazlarla ilgili korelasyonlar yapılabilmeli
+"Interface ve cihaz grupları dinamik olarak filtrelerle oluşturulabilmeli. Ör: Sysname içinde
TR1 geçen cihazlar ilgili gruba otomatik yerleşsin."
+"Dinamik harita çizebilmeli. Çizilen haritada manuel bağlantı değişikliklerine
(Ekleme-Silme) izin vermeli."
+Servis ağaçları oluşturulabilmeli. Servis ağaçlarından oluşturulacak servis görsel olarak izlenebilmeli.
+"Servis ağaçlarının içindeki her elemanın değişikliği dinamik olarak takip edilip değişiklikler
servis ağacına yansımalı."
+"Geriye dönük mümkün olduğunca bilgi tutabilmeli. En az 90 günlük veri çok detaylı sağlanabilmeli.
1-3 yıllık özet bilgi saklanabilmeli."
+"Log içinde arama yapıp belli bir kelime yakalandığında alarm üretmeli.
Bu olay incremental olmalı her taramada eğer yeni bir error kelimesi eklendiyse alarm üretmeli."
+Syslog mesajlarını alarma çevirebilmeli. Gelen mesajları parse edilebilmeli.
+NOC izlemesi için CCTV ekranları hazırlanabilmeli. Bu ekranlar belli periyodlarda güncellenebilmeli.
+Mümkünse şirket içi geliştirmeler için veritabanından bilgi çekme amaçlı webservis yada api si olmalı.
+Domain Controller izlemeye özel yetenekleri olmalı.
+Exchange i izlemeye özel yetenekleri olmalı.
+"Mümkünse APM yeteneği olmalı. Veritabanlarını izleyebilmeli. Veritabanı performansını
izleyebilmeli. Sunucu üzeri çalışan uygulamaları izleyebilmeli. Sentetik kullanıcı ile belli
olayları simule edip kontrol edebilmeli. "
+Bir hataya karşı üreyecek alarmın bir aksiyon üretebilmesi.
+Mümkünse ürün problu yapıda çalışabilmeli.
+Trending yapabilmeli.
+Ürünün kendi kendini detaylı izleme mekanizması olmalı. Kendi health check ini yapabilmeli.
+Belli bir cihaz grubuna toplu olarak izleme ayarı yapılabilmeli.
+Belli bir interface grubuna toplu olarak izleme ayarı yapılabilmeli. 
+Port izleme yapabilmeli. Availability grafikleyebilmeli.
+Ping, tracert, telnet gibi basit troubleshoot toollarını üzerinde barındırmalı.
+URL monitoring yapabilmeli.
+Isı, voltaj, kart ve modüllerin durumu gibi donanım komponentleri kontrol edilip alarm üretilmeli.
+Switchler üzerinde hangi interface üzerinde hangi sunucu olduğunu gösterebilmeli.
+SSH, WMI, SNMP polling, SNMP Trap, Syslog Trap ile izleme yapabilmeli.
+Cihazlar için response time, paket kaybı gibi bilgileri verebilmeli.
+Ürün sayfalarında menüler kişiye özel düzenlenebilmeli.
+Gereksiz email sms göndermemeli. Buna yönelik korelasyon yapılabilmeli.
+Raporları schedule olarak email atabilmeli.
+Kuracak firma 7/24 teknik destek verebilmeli. Gerektiğinde yerinde destek verebilmeli.
+LDAP entegrasyonu
+Mobil cihazlarla uyumlu arayüz.
+Failover seçeneğinin olması.
+Gerektiğinde internet üzerinden izleme için proxy tanımlanabilmesi
+Bakım modu olmalı.
+Dosya ve klasör izleme yapabilmeli.
+Windows ve Linux makinelerde servis ve prosesleri izleyebilmeli.
+Windows ve Linux makinelerde remote script çalıştırıp sonucu parse edebilmeli.
+Diskler üzerinde I/O kullanım, read-write
+Güvenlik cihazlarında VPN bağlantı sayıları
+SAN Switchleri ve depolama cihazlarını izleyebilmeli
+Vendor bağımsız izleme yapabilmeli.
+Hem network, hem sunucu, hem depolama ünitelerini izleyebilmeli

Teşekkürler,
Cem Selmanoğulları

23 Aralık 2014 Salı

NOC için Dashboard geliştirmesi - PHP - Perl - RestAPI

Merhaba,

Telekom hatları, şubeleri ve backbone cihazlarını tek sayfada izlemek isteyen bir müşterim için hazırladığım Dashboard'ı sizlerle paylaşmak isterim. Tamamen canlı bir dashboard ve arkasında ayrıca bir alarm mekanizmasına da sahip.

Uzun yıllar monitoring ve otomasyon işi yapmış biri olarak müşterilerin aldıkları ürünlerden hiçbir zaman tam performans alamadıklarını gördüm. Yüzbinlerce dolarlık ürünler yüzlerce karmaşık işi yapıyor fakat müşterinin istediği bazı şeyleri yapamıyordu. Müşteri hayalinde bir dashboard canlandırıyor ve networkünü bu şekilde izlemek istiyordu. Fakat ürünler bunu sağlayamadığı için hem müşteri tarafında memnuniyetsizlik oluşuyor, hem de projeyi yapan firmanın yetkinliği sorgulanıyordu.

Enterprise seviyede bir monitoring ürününü entegre ederken büyük bir firmada yine benzer bir sorunla karşılaştım. Müşteri büyük paralar karşılığında aldığı ürünü ile gelen dashboardları beğenmiyor ve istediği şekilde bir dashboard oluşturamamamıza anlam veremiyordu.

Müşteriden tam olarak istediği Dashboard ı kağıt kalem alıp çizmesini ve bana birkaç gün müsade etmesini istedim. Çizime göre bunu sadece elimdeki ürünle yapamayacağım aşikardı. İşte bu benim için yeni bir meydan okumaydı. Öncelikle monitoring ürününün API sini araştırdım. Ürün RestAPI interface ine sahipti ve istediğim pekçok veriyi (up-down, cpu high, interface down) gibi alarm verilerini bu arayüzden almam mümkündü. Tüm şube routerları ve backbone cihazları ile ilgili pek çok bilgiyi RestAPI ile alabilecektim.

Telekom hatları ile ilgili ise kendim bir pinger uygulaması yazmayı planladım. Dashboard ın yayınlanacağı sunucuda ayrıca birçok pinger uygulaması çalışacak ve telekom hatlarının ucundaki çeşitli cihazları pingleyerek hatların durumunu kontrol edecekti. Ayrıca gerekli durumlarda email ve sms atacaktı. Bunları da Perl ile yazmaya karar verdim.

Sıra Dashboard ekranın hazırlanmasına gelmişti. Bunu ise PHP ve HTML ile dizayn etmek çocuk oyuncağı idi. Sonuç itibari ile Perl, PHP, Html, Javascript, RestAPI birleşimi ile müşterinin hayallerinin de üstünde herşeyi izleyebileceği bir dashboard geliştirilmişti.

Dashboard, hem monitoring uygulamasından hem de perl ile yazdığım scriptlerden besleniyor ve 30 ar saniyelik aralıklarla kendini güncelliyordu.

Fikir olması açısından 4 ekrandan oluşan Dashboard ekranlarından birini paylaşmak isterim.

Alttaki ekran sıfırdan geliştirilmiş olup monitoring uygulamasından herhangi bir ekran yada görsel alınmamıştır.





Teşekkürler,
Cem Selmanoğulları


19 Aralık 2014 Cuma

Üzerinde SNMP agent bulunduran tüm cihazlardan snmp verisi çekmek için basit bir script...

Merhaba,

Network cihazları, sunucular ve üzerinde SNMP agent bulunduran tüm cihazlardan snmp verisi çekmek için basit bir script paylaşmak istiyorum.

Perl Net::SNMP kütüphanesini kullandığımız bu scriptte SNMP bağlantısı kurup belirlediğimiz bir OID ye karşılık gelen değer için istekte bulunuyor ve elde ettiğimiz sonucu ekrana bastırıyoruz.

IP, Community String ve istenen OID değerini scripte arguman olarak dışarıdan veriyoruz.

Bu scripti geliştirerek basit bir monitoring uygulaması yazmak mümkün olacaktır.


use Net::SNMP;

# SNMP OID değeri arguman olarak disaridan alinir
my $OID => $ARGV[2]

# IP adresi ve SNMP community string disaridan arguman olarak alinir
($session,$error) = Net::SNMP->session(IP => $ARGV[0],Community => $ARGV[1]);
die "SNMP Baglanti Hatasi: $error" unless ($session);

# Alinan SNMP OID degeri ile SNMP istegi yapilarak sonuc degiskenine atanir
$sonuc = $session->get_request($OID);

die "SNMP Istegi Hatasi: ".$session->error unless (defined $sonuc);

$session->close;

# SNMP OID degerine karsilik gelen deger ekrana bastirilir
print "SNMP OID Degeri: ".$sonuc->{".$OID."}";

16 Haziran 2014 Pazartesi

Ping monitor (Perl Script)

Merhaba,

Basit bir ping monitor nasıl yazılır, görelim.

Genelde tercihim perl script dilidir. Diğer dillerde de yazmak mümkündür.
Perl kütüphanelerini kullanabilir yada kendimiz de direkt olarak yazabiliriz.
Öncelikli olarak perl Net::Ping kütüphanesinin kullanımını görelim.

5 adet ip adresine ping attırıp sonucu almaya çalışalım.

Bu 5 ip adresi pinglenecek sonuç ekrana bastırılacak. Ayrıca C:\ipsonuclari.txt isimli dosyaya yazılacak.

Öncelikle 5 ip adresini bir dizide toplayacağız. Sonrasında bu dizi içinde bir for döngüsü ile dönüp her ip adresini pingleyeceğiz.

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::Ping;
  4. my $ip1 = "10.1.1.1";
  5. my $ip2 = "10.1.1.2";
  6. my $ip3 = "10.1.1.3";
  7. my $ip4 = "10.1.1.4";
  8. my $ip5 = "10.1.1.5";
  9. my $ip_durum = "";
  10. my @array = ($ip1,$ip2,$ip3,$ip4,$ip5);
  11. foreach (@array) {
  12.     my $ipadres = $_; 
  13.     chomp($ipadres);
  14.     print $_."\n"
  15.     my $p = Net::Ping->new(icmp);
  16.     if($p->ping($ipadres)) {
  17.         print "BASARILI";
  18.         $ip_durum = $ip_durum." ".$ipadres.":OK ";
  19.     } else {
  20.     print "BASARISIZ";
  21.     $ip_durum = $ip_durum." ".$ipadres.":BASARISIZ ";
  22.     }
  23. }
  24. print $ip_durum;
  25. my $dosyasil = "C:\\ipsonuclari.txt";
  26. unlink $dosyasil;
  27. open(MYFILE, '>> C:\\ipsonuclari.txt');
  28. print MYFILE $dosyasil
  29. close (MYFILE);

Buradaki önemli noktalardan birisi new(icmp); fonksiyonunun çalışabilmesi için bu scriptin hem icmp paketleri göndermeye hem de gelen cevapları dinlemeye iznimizin olmasıdır.
Aksi takdirde ping atılamayan bazı ip ler ayakta gibi görünecektir.

Teşekkürler,
Cem Selmanoğulları