Sysdig: Nedir ve Nasıl Kullanılır

Sysdig, konteyner desteği olan evrensel bir sistem görünürlük aracıdır. Sysdig'i özel yapan şey, kendisini makinenin çekirdeğine bağlaması ve bilgileri konteyner başına ayırmasıdır. Bu eğitimin kapsamı için Sysdig'in açık kaynaklı sürümüne odaklanacağız.

Sonraki bölümlerde şunları yapacaksınız:

  • Sysdig'i yükleyin
  • Docker-compose kullanarak bir Wordpress kurulumunu hızlandırın
  • Olayları toplamak ve daha sonra analiz etmek için Sysdig'i kullanın
  • Verileri gerçek zamanlı olarak analiz etmek için Sysdig kullanın

Ön şartlar

  • Docker sisteminize kurulur. Docker'ı yükleme hakkında ayrıntılar için Docker'ı Yükle sayfasına bakın.
  • Docker Compose sisteminize kurulur. Docker Compose yazılımını yükleme talimatları için Docker Compose Kur sayfasına bakın.
  • Çekirdek başlıkları ana sisteme yüklenir.

Sysdig'i yükleyin

Sysdig'i bir Docker kapsayıcısının içine yüklemek için şu adımları izleyin:

  1. Bir terminal penceresinde, Sysdig Docker görüntüsünü çekmek için aşağıdaki komutu yürütün:
docker çekme sistemi / sysdig
Varsayılan etiketi kullanarak: en son: Sysdig / sysdig'den çekme 2967486b0658: Tamamen çekin 78101b780c72: Tamamen çekin 7e78b657334d: Tamamen çekin 650327159ca8: Tamamen çekin 47 Çekme tamamlama 6de86c8ed6e9: Çekme tamamlama 8d1825f8be4b: Çekme tamamlama Özet: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Durum: sysdig / sysdig için daha yeni resim indirildi

2. Aşağıdakileri girerek Sysdig'i bir kapta çalıştırın:

docker run -i -t - adı sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / host / proc: ro -v / boot: / host / boot: ro -v / lib / modülleri: / host / lib / modülleri: ro -v / usr: / host / usr: ro sysdig / sysdig
* Ana bilgisayardan / usr / src bağlantılarının ayarlanması * Varsa, sysdig-probun boşaltılması echo Çekirdek 3.10.0-957.12.2.el7.x86_64 için çekirdek başlıklarınız /lib/modules/3.10.0-957.12.2.el7.x86_64/build veya /lib/modules/3.10.0-957.12 adreslerinde bulunamıyor .2.el7.x86_64 / kaynak. * Dkms derlemesi çalıştırılamadı, /var/lib/dkms/sysdig/0.26.4/build/make.log bulunamadı * Varsa bir sistem sysdig-probu yüklemeye çalışılıyor * 3.10 için önceden derlenmiş sysdig-prob bulmaya çalışılıyor .0-957.12.2.el7.x86_64 /host/boot/config-3.10.0-957.12.2.el7.x86_64 adresinde çekirdek yapılandırması bulundu: https://s3.amazonaws.com/download adresinden önceden derlenmiş modülü indirmeye çalışılıyor .draios.com / kararlı / sysdig-sonda-ikili dosyalar / sysdig-sonda-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko İndirme başarılı, modül kök yükleme @ 7b14a23f22eb::

Yukarıdaki komut hakkında dikkat edilmesi gereken birkaç nokta:

  • -İ bayrağı STDIN'i açık tutar.
  • --Privileged parametresi ana bilgisayardaki tüm aygıtlara erişim sağlar. Ayrıca, konteyner içinde çalışan işlemlerin ana bilgisayarda çalışan bir işlemle aynı ana makineye erişmesine izin vermek için SELinux'u ayarlar.
  • -V bayrağı, Sysdig'in erişebileceği dosyaların (ana bilgisayarda) listesini belirtir.

Wordpress Kurulumunu Döndürün

Bu bölümde, docker-compose komutunu kullanarak Wordpress'i kuracaksınız.

  1. Yeni bir terminal penceresinde projeler dizininize gidin ve aşağıdaki komutları yazın:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Aşağıdaki içeriğe sahip docker-compose adlı bir dosya oluşturun:

sürüm: '3.3' hizmetleri: db: image: mysql: 5.7 ciltler: - db_data: / var / lib / mysql restart: her zaman çevre: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: dss image: depends wordpress: en son bağlantı noktaları: - "8000: 80" yeniden başlatma: her zaman çevre: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress ciltleri: db_data: {}

3. Docker-compose up komutunu aşağıdaki modlarla ayrılmış modda çalıştırın:

docker-compose up -d
Varsayılan sürücü ile ağ "wordpress-sysdig_default" oluşturuluyor Varsayılan sürücü ile birim "wordpress-sysdig_db_data" birimi oluşturuluyor Wordpress çekiliyor (wordpress: latest) ... En son: Tam kütüphane / wordpress 8ec398bc0356: Çekme 85cf4fc86478: Çekme tamamla 970dadf4ccb6: çekerek tamamla 8c04561117a4: Tamamen çekin d6b7434b63a2: Tamamen çekin 83d8859e9744: Tamamen çekin 9c3d824d0ad5: Tamamlandı çekin 9e316fd5b3b3: Tamamlayın çekin 578b40496c37: Tamamlayın 814ae7711d3c: Tamamlayın: çekin: 4896 tam ecda5b7aad12 çekin: Çekme komple 84256a6b6b44: Çekme komple 35d4f385efb7: Çekme komple bf697c2ae701: Çekme komple d054b015f084: Çekme komple Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Durum: İndirilen yeni imajını wordpress: en son oluşturma wordpress-sysdig_db_1 ... wordpress-sysdig_word oluşturma yapılır press_1 ... bitti

4. Konteynerlerinizin durumunu aşağıdakilerle doğrulayabilirsiniz:

docker ps

Her şey yolunda giderse, aşağıdaki çıktıya benzer bir şey görmelisiniz:

KONTEYNER KİMLİĞİ GÖRÜNTÜ KOMUT OLUŞTURULMUŞ DURUM LİMANLARI İSİMLERİ f390eec29f52 wordpress: en son "docker-entrypoint.s…" Yaklaşık bir dakika önce Yukarı Bir dakika kadar 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "docker-giriş noktası. s… "Yaklaşık bir dakika önce Yukarı Bir dakika kadar 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 dakika önce 13 dakika önce sysdig

5. Wordpress şimdi çalışıyor. Kurulum sihirbazını başlatmak için tarayıcınızı http: // localhost: 8000 üzerine getirin:

6. Kurulum sihirbazı tamamlandığında, devam edip örnek bir yazı oluşturalım:

Dosyaya Veri Toplama

Bu bölümde, etkinlikleri toplamak ve daha sonra analiz etmek için Sysdig'i nasıl kullanabileceğinizi göstereceğiz.

  1. Yakalanan tüm olayları bir dosyaya dökmek için Sysdig kapsayıcısına gidin ve aşağıdaki komutu girin:
sysdig -w izleme-wordpress.scap

2. Yeni bir terminal penceresinde, eşzamanlı olarak maksimum 100 istekle 10000 istek yapmak için ab kullanın:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Bu ApacheBench, Sürüm 2.3 <$ Revizyon: 1430300 $> Telif Hakkı 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Apache Yazılım Vakfı Lisansı, http://www.apache.org/ Kıyaslama localhost (sabırlı olun) Tamamlanan 100 istek Tamamlandı 200 istek Tamamlandı 300 istek Tamamlandı 400 istek Tamamlandı 500 istek Tamamlandı 600 istek Tamamlandı 700 istek Tamamlandı 800 istek Tamamlandı 900 istek Tamamlandı 1000 istek Tamamlandı 1000 istek

Yukarıdaki çıktının kısalık açısından kısaltıldığını unutmayın.

3. Sysdig konteynerine geri dönün ve “CTRL + C” girerek veri yakalamayı durdurun.

Verileri analiz etme

Şimdi, tracking-wordpress.scap dosyasının boyutuna bakarsanız, Sysdig'in 80M'den az veri yakalamadığını fark edeceksiniz:

ls -lh izleme-wordpress.scap
-rw-r - r--. 1 kök kökü 80M 7 Ocak 16:28 tracking-wordpress.scap

Bu veri dağında yolunuzu bulmak için keski adı verilen bir şey kullanırsınız.

Bir keski temel olarak olay akışını analiz eden ve yararlı eylemler gerçekleştiren bir Lua betiğidir.

Keski listesini görüntülemek için aşağıdaki komutu çalıştırabilirsiniz:

sysdig -cl
Kategori: Uygulama --------------------- httplog HTTP istek günlüğü httptop Üst HTTP istekleri memcachelog memcached istek günlüğü Kategori: CPU Kullanımı ---------- --------- spektrogram OS gecikmesini gerçek zamanlı olarak görselleştirin. followcoffset Sonraki koşul ofset yürütme süresini görselleştirin. topcontainers_cpu CPU kullanımına göre en üstteki kapsayıcılar topprocs_cpu CPU kullanımına göre en üstteki işlemler Kategori: Hatalar ---------------- topcontainers_error Hata sayısına göre en üstteki kapsayıcılar topfiles_errors Hata sayısına göre en üstteki dosyalar topprocs_errors hataların

Yukarıdaki çıktının kısalık açısından kısaltıldığını unutmayın.

Bir keski hakkında ayrıntılı bilgi almak için, aşağıdaki örnekte olduğu gibi sysdig komutunu ve ardından -i bayrağını ve keski adını çalıştırın:

sysdig -i httptop
Kategori: Uygulama --------------------- httptop Üst HTTP istekleri En iyi HTTP isteklerini şu şekilde göster: ncalls, zaman veya bayt Args: [string] by - En iyi HTTP işlemlerini göster tarafından: ncalls, zaman veya tes tarafından, varsayılan ncalls

Örneğimize devam ederken, en popüler HTTP isteklerini görüntülemek için httptop keskiyi nasıl kullanabileceğiniz aşağıda açıklanmıştır:

sysdig -r izleme-wordpress.scap -c httptop
ncalls yöntemi url ----------------------------------------------- --------------------------------- 2001 localhost AL: 8000 /? P = 7 14 SEÇENEKLER * 2 localhost AL: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / kaplar / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteynırlar / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989da7b8b2d289da7b7d7489

-Pcontainer bayrağıyla aynı bilgileri kapsayıcı dostu bir biçimde görebilirsiniz:

sysdig -r izleme-wordpress.scap -c httptop -pcontainer
ncalls konteyner yöntemi url'si ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo GET localhost: 8000 /? P = 7 1000 ana bilgisayar GET localhost: 8000 /? p = 7 43 wordpress-sysdig_wo SEÇENEKLER * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.2754 kapsayıcılar / 061 d4 cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sistem

Daha Derin Kazmak

Sysdig, konteynırlarınızın iç işleri hakkında ayrıntılı bilgi almanızı sağlayan zengin içerikli bilgileri yakalar. Diyelim ki birkaç kap çalıştırıyorsunuz ve hangi işlemin en fazla CPU tüketdiğini bilmek istiyorsunuz.

  1. Etkinlikleri yakaladığınız süre boyunca etkin olan kapsayıcıları listeleyin:
sysdig -r izleme-wordpress.scap -c lscontainers

2. En çok CPU tüketen kabı aşağıdakilerle tanımlayabilirsiniz:

sysdig -r izleme-wordpress.scap -c topcontainers_cpu
CPU% container.name --------------------------------------------- -----------------------------------% 5.37% wordpress-sysdig_wordpress_1% 1.35 wordpress-sysdig_db_1% 0.84 ev sahibi 0.51% sysdig

3. topprocs_cpu keski ile daha derine inebilir ve en yoğun CPU işlemlerini belirleyebilirsiniz:

sysdig -r izleme-wordpress.scap -c topprocs_cpu container.name wordpress_1 içeriyor
% CPU İşlem PID'si ---------------------------------------------- ---------------------------------- 0.12% apache2 8383 0.11% apache2 9413 0.11% apache2 9300 0.11% apache2 9242 0.11% apache2 8897 0.11% apache2 8422 0.10% apache2 9372 0.10% apache2 9241 0.10% apache2 8424 0.09% apache2 9429

Daha fazla ayrıntı görmek istiyorsanız ps keski daha ayrıntılı bir alternatif sunar:

sysdig -r izleme-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID KULLANICI VIRT RES FDLIMIT CMD 5896 5896 kök 232.82M 22.32M 429496729 apache2 8383 8383 www-veri 307.44M 25.46M 429496729 apache2 8422 8422 www-veri 235.44M 22.90M 429496729 apache2 8424 8424 424.44 424 257 307 8897 www-veri 235.44M 22.89M 429496729 apache2 9154 9154 www-veri 235.44M 22.91M 429496729 apache2 9241 9241 www-veri 307.44M 25.66M 429496729 apache2 9242 9242 www-veri 307.44M 25.67 429 934 939 939 939 939 939 939 939 939 22.89M 429496729 apache2 9372 9372 www-verileri 235.44M 22.89M 429496729 apache2 9413 9413 www-verileri 233.44M 20.77M 429496729 apache2

Faydalı ipuçları

Yukarıdaki örnekte olduğu gibi (sysdig -w tracking-wordpress.scap) olayları yakalamak için Sysdig'i çalıştırırsanız, olay dosyası kullanılabilir tüm alanı tüketene kadar sürekli büyür. Bunun olmasını önlemeye yardımcı olabilecek birkaç yöntem vardır:

  • Sysdig'in -n bayrağını ileterek yakalaması gereken olay sayısını belirtin. Sysdig belirtilen sayıda olayı yakaladığında, otomatik olarak çıkacaktır:
sysdig -n 5000 -w izleme-wordpress.scap
  • Sysdig'i, yakalamayı belirtilen boyuttaki daha küçük dosyalara ayıracak şekilde yapılandırmak için -C bayrağını kullanın. Aşağıdaki örnek, etkinlikleri sürekli olarak <10MB dosyalara kaydeder:
sysdig -C 10-izleme-wordpress.scap

Bu, 10 MB'den büyük olmayan bir grup dosya oluşturur:

ls -lh izleme-wordpress *
-rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:13 Monitoring-wordpress.scap0 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap1 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap2 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap3 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap4 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap5 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap6 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:14 Monitoring-wordpress.scap7 -rw-r - r--. 1 kök kökü 6.4M 7 Oca 17:14 tracking-wordpress.scap8
  • Sysdig'in -W bayrağıyla saklaması gereken maksimum dosya sayısını belirtin. Örneğin, -C ve -W bayraklarını şu şekilde birleştirebilirsiniz:
sysdig -C 10 -W 4 -w izleme-wordpress.scap

Yukarıdaki komut yalnızca son dört yakalama dosyasını tutar:

ls -lh izleme-wordpress *
-rw-r - r--. 1 kök kökü 7.2M 7 Oca 17:21 Monitoring-wordpress.scap0 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:21 Monitoring-wordpress.scap1 -rw-r - r--. 1 kök kökü 9.6M 7 Ocak 17:21 Monitoring-wordpress.scap2 -rw-r - r--. 1 root root 9.6M Jan 7 17:21 tracking-wordpress.scap3 root @ cd06093b141b: / # sysdig -C 10-W 4 -w izleme-wordpress.scap

Gerçek zamanlı izleme

Sysdig ile verileri gerçek zamanlı olarak analiz edebilirsiniz. İlk bakışta, bu göz korkutucu bir görev gibi görünebilir, çünkü varsayılan olarak tüm olaylar sürekli olarak konsola yazdırılır. Neyse ki, keskiler yardım etmek için burada.

Bir örnek verelim.

İşlemlerinizi Kap Başına Göre Analiz Edin

  1. Kapsayıcılarınızı listelemek için aşağıdaki komutu çalıştırın:
docker ps
KONTEYNER KİMLİĞİ GÖRÜNTÜ KOMUT OLUŞTURULMUŞ DURUM LİMANLARI İSİMLERİ 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 dakika önce 9 saat kadar önce sysdig 06def7875617 wordpress: en son "docker-entrypoint.s…" 3 saat önce Up 3 hours 0.0.0.0:8000 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s…" 3 saat önce 3 saate kadar 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. WordPress kapsayıcısında çalışan işlemleri aşağıdakilerle analiz edebilirsiniz:

sysdig -pc -c topprocs_cpu container.name = wordpress-sysdig_wordpress_1

3. Benzer şekilde, MySQL kapsayıcısında çalışan işlemleri analiz edebilirsiniz:

sysdig -pc -c topprocs_cpu container.name = wordpress-sysdig_db_1

Bu örnekten çok farklı olmayan Sysdig'in ağ trafiğini, disk kullanımını vb. İzleyebileceğini unutmayın.

Bu öğreticide, kapsayıcılarınız tarafından oluşturulan etkinliği net bir şekilde anlamak için Sysdig kullanmanın temellerini gözden geçirdiniz. Bu blog gönderisindeki örnekler başlamanıza yardımcı oldu ve gelecekteki eğitimlerde Csysdig ve Sysdig Inspect'in nasıl kullanılacağını göstereceğiz.