7 Ekim 2016 Cuma

Linux sisteminde konsolda yazılan komutların otomatik olarak kaydedilmesi

Merhaba,

Konsol bağlantısı yaptığınız bir linux sisteminde çalıştırdığınız scriptlerin çıktılarını ekranda izlerken biryandan da bir dosyaya kaydetmek için ne yapmamız gerektiğinden bahsetmek istiyorum.

Bazı durumlarda çalıştırdığınız bir scriptin çıktısını bir dosyaya aktarmak için ">" yada ">>" yeterli olmamaktadır. Script takılmakta ve çıktı üretememektedir.

Özellikle scriptin çalışması sırasında kullanıcı girişi istenen interaktif bir akış izlenmiş ise tüm bu akışın bir dosyaya aktarılması için ne yapmalıyız ?

Bu durumda Linux "script" komutu yardımımıza yetişiyor.

Alttaki şekilde çalıştırılan komut yaptığınız tüm işlemleri bir doayaya kaydediyor.


sh-3.00$ perl ./findscript.pl
Script is ok!
sh-3.00$ exit
exit
Script done, file is output.txt


Teşekkürler,
Cem Selmanoğulları


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ı