28 Eylül 2016 Çarşamba

Nokia (Alcatel-Lucent) 5620 SAM sistemine XML API arayüzünden istek gönderen perl script

Merhaba,

Nokia 5620 SAM ağ yönetim sistemine XML API kullanarak dışarından bağlanmak ve çeşitli işler yaptırmak mümkündür. Bu arayüz ile diğer yönetim sistemleri SAM ile konuşabilir ayrıca geliştirilen scriptler ile cihazlar kongiure edilebilir, raporlama yapılabilir ve network yönetilebilir.

Altta bahsedilen konuları bu yolla yapmak oldukça kolaydır.

- SAM üzerinde olan herhangi bir ağ cihazında istenilen konfigurasyonu yapmak.
- Cihazlarla ilgili detaylı bilgileri raporlamak.
- Envanter raporları oluşturmak.
- Çeşitli senaryolara uygun konfigurasyon işlemleri yapmak.
- Servis tanımlamaları ve konfigurasyonları yapmak.
- Servis raporlamaları oluşturmak.
-
.
.
.

Göndermek istediğiniz XML il alttaki perl scripti içinde <SOAP:Body></SOAP:Body>
tagleri arasına yerleştirmeniz yeterlidir.

#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent 6.0;
my $usrAgent = LWP::UserAgent->new();
$usrAgent->timeout("120");
my $msg_to_send=
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
<SOAP:Header>
<header xmlns=\"xmlapi_1.0\">
<security>
<user>SAM User</user>
<password hashed=\"true\">kjhds7843jwe9js9324jhkhı6wejs89ks9</password>
</security>
<requestID>\"MyRequest\"</requestID>
</header>
</SOAP:Header>
<SOAP:Body>
    #Gönderilecek XML bu bölüme yazılacak
 </SOAP:Body>
</SOAP:Envelope>";
my $xrequest = HTTP::Request->new(POST => "http://SAM-IP-Address:8080/xmlapi/invoke");
$xrequest->content($msg_to_send);
$xrequest->content_type("text/xml; charset=utf-8");
my $xresponse = $usrAgent->request($xrequest);
my $Xml = $xresponse->decoded_content;
print "$Xml";




Teşekkürler,
Cem Selmanoğulları

Nokia (Alcatel-Lucent) 7750 SR cihazına SSH ile bağlanıp komut gönderen perl scripti

Merhaba,

Nokia 7750 Service Router (SR) cihazına bağnarak komut gönderen bir script paylaşmak istiyorum.
Cisco cihazlardan biraz farklı olarak direkt kanal üzerinden komut göndermek yerine kanal üzerinden bir terminal edinilerek shell üzerinden yazmak sureti ile komutumuzu gönderiyor ve çıktısını alıyoruz.


#!/usr/bin/perl
use Net::SSH2;
use warnings;
use strict;
no warnings 'uninitialized';
my $host = "A.B.C.D";
my $user = "ssh-username";
my $password = "password";
my $komut = "show router interface\r";
#SSH baglantisi saglanir
my $ssh = Net::SSH2->new();
        if(!$ssh->connect($host)){
                print("SSH Baglantisinda Problem - $@ \n");
                exit(1);
        } else {print("\nSSH Baglantisi Yapiliyor...\n");}
sleep(1);
        if(!$ssh->auth_password($user,$password)){
                print("Kullanici-Sifre Problemi - $@");
                exit(1);
        } else {print("\nBaglandi...\n\n");}
sleep(1);
print("Gonderilen Komut : ".$komut."\n\n");
#Kanal acilarak komut gonderilir
my $channel = $ssh->channel();
$channel->blocking(0);
$channel->pty(1);      #set tty
$channel->shell();    
sleep (1);
$channel->write("environment no more\r".$komut);
sleep (1);  
my $output;
$channel->read($output,99999999);
print "Komut Ciktisi :\n $output\n";



Teşekkürler,
Cem Selmanoğulları

22 Ağustos 2016 Pazartesi

Java ile konsoldan Ping ve Telnet

Merhaba,

Java ile konsoldan bir ip adresine ping ve telnet yapan basit bir kod.
Henüz ip format validasyonlarını eklememiş olsamda çalışan güzel bir uygulama.

Çalıştırdığınızda konsolda  "Ping 10.1.1.10" yada "Telnet 10.1.1.10 22" şeklinde girmeniz yeterli.

package Tests;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class test1 {
public static void main(String[] args) {
System.out.println("Telecom Tools Menu\n");
System.out.println("--------------------\n");
System.out.println("Commands :  [Ping <IP Address>]  |  [Telnet <IP Add>]\n");
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(System.in));
            while (true) {
                System.out.print("Enter Command : ");
                String input = br.readLine();
                if ("q".equals(input)) {
                    System.out.println("Exit!");
                    System.exit(0);
                }          
/* Ping Block Start */                   
                  if(input.toLowerCase().contains("ping"))
                  {    
                   String[] CommandParts = input.split(" ");
                   int ArrSize = CommandParts.length;
                       if(ArrSize != 2)
                       {
                         System.out.println("Wrong Command. Ex : Ping 10.1.1.10");
                       } else if (ArrSize == 2) {     
                          String ip = CommandParts[1];  
                          InetAddress inet = InetAddress.getByName(ip);
                          System.out.println("Sending Ping Request to " + ip);
                          System.out.println(inet.isReachable(5000) ? "Host is reachable" : "Host is NOT reachable");
                       }                       
/* Ping Block End */  /* Telnet Block Start */   
                    } else if (input.toLowerCase().contains("telnet")) 
                    {
                         String[] CommandParts = input.split(" ");
                         int ArrSize = CommandParts.length;
                         if(ArrSize!=3)
                         { 
                         System.out.println("Wrong Command Format. Ex : Telnet 10.1.1.10 22"); 
                          } else {    
                             String ip = CommandParts[1];
                             Integer port = Integer.parseInt(CommandParts[2]) ; 
                             Socket pingSocket = null;
                             PrintWriter out = null;
                             BufferedReader in = null;                      
                              try {  
                                 pingSocket = new Socket(ip, port);
                                 out = new PrintWriter(pingSocket.getOutputStream(), true);
                                 in = new BufferedReader(new InputStreamReader(pingSocket.getInputStream()));
                              } catch (IOException e) {
                                return;
                              }
                           System.out.println(in.readLine()); 
                           out.close();
                           in.close();
                           pingSocket.close();
                          }
} else {
   System.out.println("Command Not Found or Wrong Command Format");
}                     
/* Telnet Block End */                  
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 }
}
Teşekkürler

27 Temmuz 2016 Çarşamba

Bir IP adresinin verilen Subnet içinde olup olmadığını Perl script yazarak anlamak.

Merhaba,

Verilen bir ip adresinin verilen bir subnet içinde olup olmadığını anlamak için basit bir perl scripti.

$ip = 192.168.10.11
$subnet = 192.168.10.0/24

sub checkip {
        my ($ip, $subnet) = @_;
        my $result = 0;

        my @iparr = split(/\./, $ip);
        my $ipval = $iparr[0] * 2**24 + $iparr[1] * 2**16 + $iparr[2] * 2**8 + $iparr[3];

        my @temparr = split(/\//, $subnet);
        my $ipsub = $temparr[0];
        my $netmask = $temparr[1];

        my @ipsubarr = split(/\./, $ipsub);
        $ip2val = $ipsubarr[0] * 2**24 + $ipsubarr[1] * 2**16 + $ipsubarr[2] * 2**8 + $ipsubarr[3];

        if( $ipval >> (32-$netmask) == $ip2val >> (32-$netmask) ) {
            $result = 1;
        }
        return $result;
}

Sonuç değeri olarak $result=1 geldiğinde ip adresinin ilgili subnete ait olduğunu anlamış oluruz.

27 Nisan 2016 Çarşamba

Port dinleyen script

Merhaba,

Bir sistem üzerinde port dinlemek ve bağlantı kabul etmek için basit bir perl script paylaşıyorum.
Bu scripti çalıştıracağımız sistem üzerinde herhangi bir portu dinlemeye geçirmek ve başka bir makineden telnet ile test etmek mümkün.

Böylece herhangi iki network arasında yada herhangi bir cihaz üzerinde ilgili port üzerinden iletişim olup olmadığını test edebileceksiniz.

Script, bağlantı kabul edecek makine (10.10.1.11) üzerinde, port no verilerek alttaki şekilde çalıştırılır,

c:\test>perl conntest.pl 8071

Bağlanacak makinede ise alttaki şekilde telnet client çalıştırılır,

c:\telnet 10.10.1.11 8071

Telnet çalıştırdığınız makinede alttaki çıktıyı göreceksiniz.

-----------------------------------------------------------------------------
Port 8071 Ayakta. Baglandiginiz Sistem : TRISTN0H408852

                                                       **Baglanti Kesiliyor**

Connection to host lost.
-----------------------------------------------------------------------------


#!/usr/bin/perl -w
use strict;
use Socket;
my $port = shift or die "\nPort Belirtilmedi.\nKullanim : \"perl conntest.pl 8088\"";
my $protocol = getprotobyname('tcp');
my $hostname = `hostname`;
# Soket Oluştur
socket(SERVER, PF_INET, SOCK_STREAM, $protocol) or die "socket: $!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die "setsock: $!";
# Lokal Port
my $ipaddress = sockaddr_in($port, INADDR_ANY);
# Portu Dinlemeye Başla
bind(SERVER, $ipaddress) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
# Bağlantıyı Kabul Et
my $client_addr;
while ($client_addr = accept(CLIENT, SERVER)) {
    # Mesaj Bas, Bağlantı Kapa
    print CLIENT "\nPort $port Ayakta. Sistem : $hostname\n*Baglanti Kesiliyor*";
    close CLIENT;
}




Teşekkürler,
Cem Selmanoğulları

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ı

Hap Bilgi : Snmp GET vs Snmp Trap

Snmp GET vs Snmp Trap...

Snmp GET metodu izleme sunucusu tarafından kullanılır. Belli periyodlarda izlenecek cihaza gidilip snmp monitor verisi alınır.

Snmp TRAP ise monitor verisini içeren bilgilerin izlenen cihaz tarafından izleme sunucusuna gönderilmesini sağlar.

Peki hangisini nerede kullanacağız ? Geçmişe yönelik düzenli data tutacak iseniz Snmp GET kullanabilirsiniz. Örneğin CPU değerini 3 dakikada bir izleyip geriye dönük CPU değeri grafiği çıkarabilirsiniz. Ayrıca CPU belli bir değeri geçtiğini alarm üretebilirsiniz.

Peki 3 dakikada bir sorgularken 2 dakikalık CPU yükselmesini nasıl yakalarsınız ? İşte bu durumda Snmp TRAP devreye giriyor. Üzerinde snmp agent içeren cihaz CPU yükselmesini tespit ettiğinde Snmp TRAP gönderir, izleme sunucusu Alarm üretir.

Bir örnek de interface kontrolü için verilebilir. İzlenen cihazlarda bir interface down olduğunda cihaz Snmp TRAP gönderecektir. Fakat Snmp GET ile her sorguladığınızda down olan interface i yakalayamayabilirsiniz.

Saatlerle detaylı açıklar isek;

5 dakikada bir bir interface i kontrol ediyorsak,

............................17:10   -   17:15   -  17:20   -   17:25................... saatlerinde interfaceler Snmp GET ile kontrol edilecektir. Eğer bir interface 17:16 - 17:19 arasında down olup sonra up olursa izleme yapan cihaz Snmp GET sorgusu ile bunu yakalayamayacaktır. Bunu yakalamanın kesin yolu 17:16 ve 17:19 saatlerinde cihaz tarafından gönderilen Snmp TRAP olacaktır.

Teşekkürler,
Cem Selmanoğulları

Hap Bilgi : Snmp Trap ve Syslog...

Merhaba,

Benzer amaçlarla kullanılan iki izleme metodolojisinden biraz bahsetmek istiyorum.

Hangisini kullanmalıyım ? Snmp Trap mi ? Syslog mu  ?

Performans parametreleri, iyi tanımlı hatalar, up/down durumları ve temel event-incident management için SNMP Trap yeterli olacaktır.

Daha derinlemesine bilgi alabilmek, cihazlar arası yada kullanıcı cihaz işlemlerini troubleshoot edebilmek için syslog  kullanmak mantıklı olacaktır.

Daha somut bir örnek vermek gerekirse HSRP durum değişiklikleri anında cihaz SNMP Trap fırlatacaktır. HSRP durum değişikliğinin nedenini troubleshoot etmek için ise daha derinlemesine bilgiye ihtiyaç olacağı için syslog dan yararlanılabilecektir.

Sunucularda yapılan monitoring işlemlerinde syslog mesajlarından uygulama derinliğinde bilgi almak da mümkün olacaktır.

"Cisco 6500 serisi bir cihaz için yapılan araştırmada standart bir snmp mib i için 90 civarı snmp trap e karşılık 6000 civarı syslog tanımlanabildiği görülmektedir."

[ Bkz : http://www.cisco.com/c/en/us/products/collateral/services/high-availability/white_paper_c11-557812.html#wp9000392 ]

Kısacası Syslog ile SNMP Trap lerden çok daha granüler bilgi alıp troubleshoot yapmak mümkündür.

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ı