Locust – Açık Kaynak Kod Load Test Uygulaması

Locust, web uygulamaları üzerinde detaylı olarak stress test yapabilmeye olanak sağlayan açık kaynak kodlu çok güzel bir yazılım. Temel olarak yük testinin yapılacağı web uygulaması için hangi sayfalarda kaç kişinin gezeceğini, hangi sayfalardan hangi sayfalara geçileceği, toplam dolaşım süresinin ne olacağı vs. gibi detaylı senaryonuzu bir python scripti şeklinde tarif edip, locust’a bu senaryoyu simule etmesini söylüyorsunuz.

Aşağıdaki gibi güzel ve anlaşılır bir web arabirimi olan Locust aynı anda milyonlarca anlık ziyaretiçiyi belirlediğiniz eşik değerlerine göre web uygulamanıza dolduruyor ve arayüz üzerinden uygulamanızın kullanıcı isteklerine verdiği cevapların stabilitesini ölçüp sınırlarınızı tespit edebiliyorsunuz.

 

Yazinin devami icin tiklayin.


Portspoof ile Network Scanner’ları Yanıtlamak

Portspoof, bir network scanner uygulaması kullanarak sunucular üzerinde çalışan servisleri tespit etmek isteyen saldırganların işlerini zorlaştırmak ve tarama sonucunu manupule etmek sureti onları yanıltmak üzere geliştirilmiş enteresan bir uygulamadır.

Bildiğiniz gibi network scanner uygulamalarının uzaktaki bir sistemde çalışan servisleri tespit etmeleri için kullandıkları bir takım teknikler vardır. Bu tekniklerden en tipik olanı ise TCP’nin üçlü el sıkışma prensibinden hareketle uzak sunucunun tüm portlarına (ya da ilgilenilen portlarına) birer SYN paketi göndermek ve alınacak cevaba göre ilgili servisin mevcudiyeti ya da durumu ile ilgili karara varmaktır. Örnek olarak üzerinde bir web sunucusu çalıştığını bildiğiniz uzaktaki bir sistemin 80. portuna bir SYN paketi gönderirseniz ve uzak sunucudaki bu servis çalışır durumdaysa -ayrıca herhangi bir engelleme yoksa- cevap olarak SYN+ACK paketi alırsınız. Bu şekilde ilgili servisin çalışır vaziyette olduğu uzaktan tespit edilir ve örneğin nmap ilgili port’u OPEN olarak bildirir. Aynı şekilde gönderilen SYN paketine RST paketi dönerse, uzak sunucuda ilgili portu dinleyen bir servis olmadığı anlaşılır ve scanner uygulaması durumu CLOSED olarak değerlendirir. Eğer uzak sunucu bir firewall üzerinden korunuyorsa ve SYN paketini gönderdiğiniz porta erişim izniniz yoksa ilgili paket -genel olarak- drop edilir bu nedenle de geriye herhangi bir paket döndürülmez. Bu durumda da network scanner uygulaması durumu FILTERED olarak bildirir, bu şekilde de uzaktaki sistemin bir firewall’a sahip olduğunu tespit edebilirsiniz.

Yazinin devami icin tiklayin.


sysdig: Sistem Seviyesi Analiz ve Sorun Giderme Aracı

Genelde IT altyapılarında meydana gelen problemleri gidermek ve bir daha tekrarlanmayacak şekilde proaktif bir yaklaşımla probleme neden ana faktörleri ortadan kaldırmak  için yapılması gereken ilk şey problemi doğru analiz etmektir. Zira doğru olarak analiz edilen bir problem için üretilen çözümler doğru orantılı olarak kalıcı ve ilgili problemin ya da varyasyonlarının tekrar yaşanmasını engelleyici nitelikte olacaklardır. Hal böyle olunca yani iş, problem analizine geldiğinde bu konudaki başarıyı belirleyici en önemli faktör ise yaklaşımlarınız ve kullandığınız araçlardır.

Bu noktada doğru yaklaşım herzaman için problemin nedenlerini tam olarak anlamaktır. Yani eğer ortada neden kaynaklandığını bilemediğiniz ancak geçici çözümler üretebildiğiniz – ki gerçek hayatta en çok problemli servisi / sunucuyu restart etmeye tekabül eden – bir problem varsa önceliği problemi geçici olarak çözmek yerine nedenlerini anlamaya çalışmak üzere konunun derinlerine inmek ve altyapıyı enine boyuna analiz etmeye vermek en doğru yaklaşım olacaktır.  Problem çözmede en belirleyici ikinci faktör ise, analiz sırasında kullandığınız araçların derine inmek ve inceleme konusundaki ihtiyaçlarınıza cevap verecek şekilde gelişmiş olması gerekliliğidir. İşte bu yazının konusunu oluşturan sysdig de tarif ettiğimiz bu ihtiyaçlara harika bir şekilde yanıt veren çok güzel bir uygulamadır.

Sysdig Nedir ?

Temel olarak hemen tüm majör Linux dağıtımında çalışan ve doğrudan linux kernel’ine dahil olarak tüm sistem çağrılarını ve OS ile ilgili diğer olayları en alt düzeyde yakalayıp analiz edilmesine olanak sağlayan sysdig, bu işi yapan strace gibi klasik araçlardan farklı olarak bir çok güzel özellik barındırmaktadır.

Öncelikli olarak kernel seviyesinde processing, network, storage ve memory alt sistemlerinde cereyan eden olayların anlaşılır şekilde ve bütünleşik olarak görüntülenmesine olanak sağlar. Bu, incelemekte olduğunuz platform üzerinde çalışmakta olan uygulamaların sistem seviyesinde ne gibi işlemler yaptığını görüntüleyebilmenize olanak sağlamaktadır ki , sysdig üzerinden elde edilen veri, problem çözmede kullanılabilecek ve genelde log dosyalarından ya da uygulama bağımlı debugging araçlarından elde edilemeyecek türden alt seviye kıymetli bilgi içerir.

Yazinin devami icin tiklayin.


Ajenti (Web Tabanlı Kontrol Paneli) ile Linux Yönetimi

Genelde, Linux hostlarda her tür sistem yönetimi işininin komut satırı üzerinden ve mümkünse otomatize bir şekilde yapılmasını tavsiye ediyorum. Zira bu şekilde sistem altyapısına daha fazla hakim olabildiğiniz gibi komut satırından çalışmak bir arabirim üzerinden çalışmaya oranla yaratıcılığı da tetikleyen bir konu olduğundan epeyce önemlidir. Ancak bazı durumlarda sistemlerinizi -tercihen web üzerinden çalışan bir- arabirim üzerinden de yönetmek isteyebilirsiniz.

İşte böyle bir ihtiyaç hasıl olduğu zaman çözüm olarak Ajenti isimli web tabanlı kontrol panelini kullanabilirsiniz. Plesk, cPanel ve Webmin gibi yönetim arabirimlerine güzel bir altrenatif olan Ajenti AGPLv3 lisanslı bir açık kaynak kod yazılım olmakla birlikte hosting işi yapmıyorsanız ya da ticari olarak vps’lerinizin yönetimi için kullanmamanız durumunda yani iş ve evdeki sunucularınızın yönetimini yapmak üzere personal license adı altında tüm sunucularınıza ücretsiz olarak kurup kullanabiliyorsunuz. Hosting yönetimi, VPS ve appliance ürünlerde kullanmak için ise lisans detayları ayrıca şu sayfayada bulunuyor: http://ajenti.org/licensing

Ajenti’nin yum ve apt repoları bulunduğu için RHEL ve Debian tabanlı tüm sistemlerde doğrudan paket yöneticisi üzerinden kurulabiliyor. Bu şekilde oldukça kolay bir kurulama sahip olması ve modüler plugin sistemi sayesinde sunucularınızın üzerinde koşan hemen her türlü bileşeni (Apache, MySQL, PostgreSQL, Nginx, Cron, Firewall, Munin, Samba, FTP, BIND, Squid, OpenVPN vs. ) -eski yapılandırmanızı da bozmadan çalışan sistemlere direk entegre olarak- yönetebilmesi ve API desteği ile kolay plugin geliştirme (python) imkanı vererek kendi özel uygulamalarınız için Ajenti pluginleri yazabilmenize olanak sağlaması gibi gayet güzel özellikler sunuyor. Ayrıca çok küçük bir footprint’e sahip olmasından dolayı küçük memory ve CPU kullanım değerleri ile de oldukça hafif bir uygulama olmasından dolayı tercih edilebilecek bir çözüm sağlıyor.

Aşağıda RHEL/CentOS üzerine Ajenti kurulumun nasıl yapılacağından bahsedeceğim. İlginizi çekerse kurmak isteyebilirsiniz:

Yazinin devami icin tiklayin.


ncdu – Disk Kullanımı Görüntüleme Aracı

Normalde dosya ve dizinlerin sistemde ne kadar yer kapladığını görmek için du (ya da find) komutu kullanır ve konsol üzerinden gerekli bilgiyi ediniriz. Her ne kadar du komutunun çıktısını düzenlemek için bir çok parametre bulunsa da genel anlamda du çıktısı özellikle Linux ile yeni tanışan kişiler için karışık olabilir. İşte bu nedenle, du’nun yaptığı işi yapan ancak çıktı olarak ncurses kullandığından dolayı text-tabanlı da olsa grafiksel sonuç döndüren “ncdu” isimli bir uygulama bulunuyor.

Ncdu hem okunaklı çıktı üretmesi hem de uzak hostlarda doğrudan çalıştırılabilmesi gibi özelliklerinden dolayı epey kullanışlı bir araç. Bulunduğunuz dizinde ncdu’yu çalıştırdığınız zaman aşağıdaki gibi bir çıktı alıyorsunuz:
Yazinin devami icin tiklayin.


Advanced Copy – CP Komutu ve Progress Bar

http://mylinuxbook.com/advanced-copy-cp-command/ adresinde cp ve mv komutunun, kopyalama ya da taşıma işlemine ait gidişatı gösteren bir progress bar’a sahip patch’li bir versiyonu var. Aşağıda örnek bir çıktısı olan araç özellikle büyük dosya ve dizin kopyalama işlerinde durumu, ekstra bir araç ya da komuta ihtiyaç duymadan takip edebilmek açısından epey kullanışlı.

1469 files copied so far...                          130.2 MiB / 298.7 MiB
[|||||||||||||||||||||||||||||------------------------------------] 43.6 %
Copying at  23.4 MiB/s (about 0h 0m 31s remaining)
BigFolder/automation/delegates/class-list.jpeg         1.5 MiB /   2.0 MiB
[|||||||||||||||||||||||||||||||||||||||||||||||------------------] 75.0 %

Aşağıda advanced-copy’nin nasıl kurulup kullanılabileceği ile ilgili notlar mevcut.

Yazinin devami icin tiklayin.


ngrep – Network Grep İle Ağ Trafiğinin İncelenmesi

Kısaca bildiğimiz grep’in network trafiği üzerinde iş yapan versiyonu olan ngrep, özellikle sorun çözme, anormallik tespiti vs. gibi konularda benim sık sık kullanıdığım oldukça güzel bir araçtır. Özellikla HTTP, SMTP, FTP gibi plain-text her türlü ağ trafiğini izlemek, analiz etmek ve içerisinde string/pattern aramak gibi işlere olanak sağlayan ngrep ile örnek olarak bir ağ uygulamasındaki problem, sunucu – istemci arasındaki ilgili trafiği analiz ederek tespit edilebilir ki bu şekilde problemi iligli uygulamanın hata bildirimlerinden ya da log dosyaları üzerinden tespit etmek yerine daha alt bir katmanda yakalamanıza olanak sağlar.

Çok uzun zamandır kullandığım bir araç olmasına rağmen kendisi ile ilgili herhangi bir yazı yazmamış olduğumu farkedince ne olduğundan ve nasıl çalıştığından bahseden dair bu yazıyı yazmak istedim. İlginizi çekerse göz atmak isteyebilirsiniz.

Yazinin devami icin tiklayin.


Apache-Top ile Komut Satırından Apache Status Monitoring

Apache’nin status modülünü kullanarak apache ile ilgili status bilgilerini top çıktısına benzer bir şekilde gerçek zamanlı olarak görüntülemeye yarayan apache-top isimli bir python betiğine rastladım. Saniye başına ortalama bağlantı isteği, süreç ve virtualhost başına cpu kullanımı, en çok hit alan URL’ler, saniye başına kaç byte transfer edildiği gibi bilgileri istenilen şekilde sort ederek real time olarak vermek gibi epey güzel özellikleri bulunuyor.

Daha önce de http://www.syslogs.org/apache-mod_status-yapilandirmasi/ adresinde mod_status yapılandırması ile ilgili bir yazı yayınlamıştım. Bu yazıda da apache-top’la ilgili detaylardan bahsetmek istiyorum.

Yazinin devami icin tiklayin.

Sonraki Sayfa »