Sysdig - Linux için Güçlü Bir Sistem İzleme ve Sorun Giderme Aracı


Sysdig, Linux için açık kaynaklı, platformlar arası, güçlü ve esnek bir sistem izleme ve sorun giderme aracıdır; aynı zamanda Windows ve Mac OSX'te de çalışır ancak sınırlı işlevselliğe sahiptir ve sistem analizi, inceleme ve hata ayıklama için kullanılabilir.

Normalde, Linux izleme ve hata ayıklama görevlerini gerçekleştirmek için aşağıda listelenenler de dahil olmak üzere çeşitli Linux performans izleme ve sorun giderme araçlarının bir karışımını kullanırsınız:

  1. strace – bir sürece yönelik sistem çağrılarını ve sinyallerini keşfedin.
  2. tcpdump – ham ağ trafiğini izleme.
  3. netstat – ağ bağlantılarının izlenmesi.
  4. htop – gerçek zamanlı süreç izleme.
  5. iftop – gerçek zamanlı ağ bant genişliği izleme.
  6. lsof – hangi dosyaların hangi işlemle açıldığını görüntüleyin.

Bununla birlikte, sysdig yukarıdaki araçların tümünün ve çok daha fazlasının sunduklarını tek ve basit bir programda, üstelik muhteşem kapsayıcı desteğiyle birleştirir. Linux sistemlerinin ve konteynerlerin gerçek davranışını (olay akışını) yakalamanızı, kaydetmenizi, filtrelemenizi ve incelemenizi sağlar.

Bir komut satırı arayüzü ve sistem etkinliğini gerçek zamanlı olarak izlemenize veya bir izleme dökümü gerçekleştirip daha sonra analiz için kaydetmenize olanak tanıyan güçlü bir etkileşimli kullanıcı arayüzü (csysdig) ile birlikte gelir. Aşağıdaki videodan csysdig'in nasıl çalıştığını izleyebilirsiniz.

Sysdig'in Özellikleri:

  • Kapsamlı ve iyi belgelenmiş, hızlı, istikrarlı ve kullanımı kolaydır.
  • Docker, LXC dahil konteyner teknolojileri için yerel destekle birlikte gelir.
  • Lua'da yazılabilir; Yakalanan sistem olaylarını işlemek için keskiler (hafif Lua komut dosyaları) sunar.
  • Çıktının yararlı filtrelenmesini destekler.
  • Sistem ve uygulama izlemeyi destekler.
  • Ansible, Puppet ve Logstash ile entegre çalışabilmektedir.
  • Örnek gelişmiş günlük analizini etkinleştirin.
  • Ayrıca etik bilgisayar korsanları için Linux sunucu saldırısı (adli bilimler) analiz özellikleri ve çok daha fazlasını sunar.

Bu yazıda, bir Linux sistemine sysdig'in nasıl kurulacağını ve nasıl kullanılacağını sistem analizi, izleme ve sorun gidermeye ilişkin temel örneklerle göstereceğiz.

Linux'ta Sysdig Nasıl Kurulur

sysdig paketini yüklemek, tüm gereksinimleri kontrol edecek aşağıdaki komutu çalıştırmak kadar kolaydır; her şey yerli yerindeyse, paketi Draios APT/YUM deposundan indirip yükleyecektir.

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Yükledikten sonra sysdig'i root olarak çalıştırmanız gerekir çünkü /proc dosya sistemi, /dev/sysdig* gibi kritik alanlara erişim gerektirir. cihazlar ve sysdig-probe çekirdek modülünün otomatik olarak yüklenmesi gerekiyor (olmaması durumunda); aksi halde sudo komutunu kullanın.

En temel örnek, onu herhangi bir argüman olmadan çalıştırmaktır; bu, Linux sisteminizin gerçek zamanlı olarak güncellenen olay akışını görüntülemenizi sağlayacaktır:

sudo sysdig

Yukarıdaki çıktı (ham veri), daha kullanışlı bir csysdig çıktı çalıştırması için size pek bir anlam ifade etmeyebilir:

sudo csysdig 

Not: Bu aracın gerçek hissini elde etmek için, daha önce gördüğümüz gibi çalışan bir programdan ham veriler üreten sysdig'i kullanmanız gerekir. Linux sistemi: Bu, filtrelerin ve keskilerin nasıl kullanılacağını anlamanızı gerektirir.

Ancak sysdig'i zahmetsiz bir şekilde kullanma yöntemine ihtiyacınız varsa csysdig ile devam edin.

Sysdig Keskileri ve Filtreleri Anlamak

Sysdig keskileri, yararlı sistem sorun giderme işlemlerini gerçekleştirmek ve daha fazlasını gerçekleştirmek için sysdig olay akışını incelemeye yönelik minimal Lua komut dosyalarıdır. Aşağıdaki komut mevcut tüm keskileri görüntülemenize yardımcı olacaktır:

sudo sysdig -cl

Ekran görüntüsünde farklı kategorilerdeki örnek keski listesi gösterilmektedir.

Belirli bir keski hakkında daha fazla bilgi edinmek istiyorsanız -i işaretini kullanın:

sudo sysdig -i topprocs_cpu

Sysdig filtreleri, olay akışlarından elde edebileceğiniz çıktı türüne daha fazla güç katar ve çıktıyı özelleştirmenize olanak tanır. Bunları komut satırının sonunda belirtmelisiniz.

Basit ve en yaygın filtre, temel bir "class.field=value" kontrolüdür; daha da güçlü özelleştirmeler için keskileri filtrelerle de birleştirebilirsiniz.

Kullanılabilir alan sınıflarının, alanlarının ve bunların açıklamalarının listesini görüntülemek için şunu yazın:


sudo sysdig -l

Linux Sistem İzleme Dosyası Oluşturma

Sysdig çıktısını daha sonra analiz etmek üzere bir dosyaya dökmek için -w bayrağını şu şekilde kullanın.

İzleme dökümü dosyasını -r işaretini kullanarak okuyabilirsiniz:


sudo sysdig -r trace.scap

-s seçeneği, her sistem olayı için yakalanacak veri bayt miktarını belirtmek için kullanılır. Bu örnekte mongod süreci için olayları filtreliyoruz.

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Linux Süreçlerinin İzlenmesi

Sistem işlemlerini listelemek için şunu yazın:

sudo sysdig -c ps

İşlemleri CPU Kullanımına Göre İzleme

CPU kullanım yüzdesine göre en iyi işlemleri izlemek için şu komutu çalıştırın:

sudo sysdig -c topprocs_cpu

Ağ Bağlantılarını ve G/Ç'yi İzleme

Sistem ağ bağlantılarını görüntülemek için şunu çalıştırın:

sudo sysdig -c netstat

Aşağıdaki komut, en iyi ağ bağlantılarını toplam bayta göre listelemenize yardımcı olacaktır:

sudo sysdig -c topconns

Daha sonra, ağ G/Ç'sine göre en önemli işlemleri aşağıdaki gibi de listeleyebilirsiniz:

sudo sysdig -c topprocs_net    

Sistem Dosyası G/Ç'sini İzleme

Sistemdeki prosesler tarafından okunan ve yazılan verilerin çıktısını aşağıdaki gibi alabilirsiniz:

sudo sysdig -c echo_fds

En iyi işlemleri disk baytlarına (okuma + yazma) göre listelemek için şunu kullanın:

sudo sysdig -c topprocs_file   

Linux Sistem Performansında Sorun Giderme

Sistem darboğazlarını (yavaş sistem çağrıları) takip etmek için şu komutu yürütün:

sudo sysdig -c bottlenecks

Bir Sürecin Yürütme Süresini Takip Etme

Bir işlemin yürütme süresini izlemek için bu komutu çalıştırabilir ve izlemeyi bir dosyaya bırakabilirsiniz:

sudo sysdig -w extime.scap -c proc_exec_time 

Daha sonra belirli bir işlemin (bu örnekte postgres) ayrıntılarını sıfırlamak için aşağıdaki gibi bir filtre kullanın:

sudo sysdig -r extime.scap proc.name=postgres

Yavaş Ağ I/0'ı Keşfedin

Bu basit komut yavaş ağ I/0'ını tespit etmenize yardımcı olacaktır:

sudo sysdig -c netlower     

Günlük Dosyası Girişlerini İzleme

Aşağıdaki komut, sistem günlüğüne yazılan her mesajı görüntülemenize yardımcı olur; belirli bir işlem için günlük girişleriyle ilgileniyorsanız, bir izleme dökümü oluşturun ve daha önce gösterildiği gibi buna göre filtreleyin:

sudo sysdig -c spy_syslog      

Herhangi bir işlem tarafından yazılan herhangi bir veriyi bir günlük dosyasına aşağıdaki şekilde yazdırabilirsiniz:

sudo sysdig -c spy_logs   

HTTP Sunucusu İsteklerini İzleme

Sistemimizde Apache veya Nginx gibi çalışan bir HTTP sunucunuz varsa, bu komutla sunucunun istek günlüğüne bakın:

sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Oturum Açma Kabuklarını ve Etkileşimli Kullanıcı Etkinliğini Görüntüleme

Aşağıdaki komut tüm oturum açma kabuğu kimliklerini görüntülemenizi sağlayacaktır:

sudo sysdig -c list_login_shells

Son olarak, sistem kullanıcılarının etkileşimli etkinliklerini şu şekilde gösterebilirsiniz:

sudo sysdig -c spy_users

Daha fazla kullanım bilgisi ve örnek için sysdig ve csysdig kılavuz sayfalarını okuyun:

man sysdig 
man csysdig

Referans: https://www.sysdig.org/

Ayrıca şu kullanışlı Linux performans izleme araçlarını da kontrol edin:

  1. BCC – Linux Performans İzleme, Ağ İletişimi ve Daha Fazlası için Dinamik İzleme Araçları
  2. pyDash – Web Tabanlı Linux Performans İzleme Aracı
  3. Perf- Linux için Performans İzleme ve Analiz Aracı
  4. Collectl: Linux için Gelişmiş Hepsi Bir Arada Performans İzleme Aracı
  5. Netdata – Linux Sistemleri için Gerçek Zamanlı Performans İzleme Aracı
Çözüm

Sysdig, çok sayıda komut satırı aracının işlevlerini olağanüstü bir arayüzde bir araya getirir, böylece veri toplamak, daha sonraki analiz için kaydetmek için Linux sistem olaylarınızın derinliklerine inmenize olanak tanır ve inanılmaz konteyner desteği sunar.

Bu araçla ilgili soru sormak veya düşüncelerinizi paylaşmak için aşağıdaki geri bildirim formunu kullanın.