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ı