binary man

PyDash ile Linux Sunucu Takibi

Merhaba

Web sunucularınızın durumu hakkında bilgi toplamak ve bu bilgileri bir arada analiz edebilmek her zaman kolay değildir. Örnek olarak hangi diskte ne kadar alan kaldı ? Mevcut sisteme giriş yapmış kullanıcıların listesi ? gibi sorulara cevap vermek için küçük betikler yazılması gerekmekte. Ayrıca sunucunuz hakkında anlık takip konusunda başarılı olmanız ile sisteminizin güvenliği doğru orantılıdır.

Bir özgür yazılım : PyDash

PyDash uygulaması yukarıda bahsedilen problemlerin bir çoğunu çözmekte. Sunucunuz hakkında sizlere verdiği bilgilerin listesi ise;

  • CPU, OS, hostname ve uptime bilgisi
  • CPU Kullanım oranı
  • Memory kullanım oranı
  • Disk kullanım oranı
  • Load average
  • Online kullanıcılar
  • İnternet ve Disk I/O trafikleri
  • Interface ve ip’leri hakkında bilgi.
  • Mevcut process’ler hakkında bilgi

Bu bilgilere anlık ulaşabilmek, başlangıç olarak sistem takibi yapabilmek adına çok başarılı bir adım.

PyDash Bağımlılıkları ve Kuruluma Hazırlık

PyDash isminden de anlaşılacağı gibi python temelli bir django web uygulaması. Çalışabilmek için Django’nun 1.6.1 versiyonuna ihtiyaç duymakta. Eğer CentOS kullanıcıları ilk Django’yu apache ile çalıştıracaklarsa bu dökümanı okumalarını öneririm.

Sisteme Django 1.6.1 kurmalısıız.

PyDash veri tabanı sistemi olarak sqlite kullanmakta. Eğer sisteminizde sqlite yoksa pip ile kurabilirsiniz.

Şimdi github’dan pydash uygulamasını clone’layınız.

Clone işlemi bittikten sonra aşağıdaki komut ile veri tabanını oluşturup administrator hesabı oluşturunuz.

Son olarak Apache’ye virtual host tanımlaması girerek PyDash web uygulamasını çalıştırınız.

Örnek virtualhost tanımlaması

Uygulamanın çalışır halini test etmek isterseniz DEMO admin:admin

Not: Bu uygulamayı çok beğendim. Yarın yeni modüller yazıp github’a göndereceğim.

  • Bunu denemistim gayet basarili bir uygulama. Security uzerine moduller entegre edersen guzel olur Mehmet :)

    • mehmet ince

      Çoktan ekledim bile dün gece. Biraz daha çeki düzen verip pull request göndereceğim developerına.

  • gökay

    Süper olmuş ellerine sağlık :)

    Bunlara ek olarak alert sistemi de yapılabilir. Mesela;

    1- Cpu kullanım oranı > %90
    2- Ram kullanım oranı > %90
    3- Bandwidth tanımlama ve kullanım oranı > %90
    4- Disk kullanım oranı > %90

    Thresholdları aşan programları otomatik kill etme gibi özellikler de eklenebilir. Tabii bu artık status viewer dan çıkıp panele girer :)

    • mehmet ince

      Teşekkürler Gökay. 1,2 ve 4’ü yazmak için Django’ya bakındım. Bu tür triggerları yazmak için crontab kullanmak gerekiyor. Öteki türlü kullanıcının sürekli PyDash’u internet tarayıcısından açık tutması lazım. Bir kaç yöntem var Django üzerinden crontab olayını yaşamanın ideal olanını seçip ilk boşlukta yazacağım.

  • gökay

    bana öğret beraber yazalım :D ar-ge lazımsa yardımcı olayım. en azından araştırırım :)

  • Haberleşmeyi socket üzerinden mi sağlıyor, yoksa veri güncellemesi için sayfanın yenilenmesi mi gerekiyor?

    • mehmet ince

      api’ye 2 saniyede bir talep göndermekte.