Skip to content
Back to blog
Kariyer sistem yöneticisi debugging hata ayıklama Linux Windows Server kariyer problem çözme log analizi Mistral

Junior Sistem Yöneticileri İçin Kritik Hata Ayıklama (Debugging) Stratejileri: Gerçek Dünya Senaryoları ve Pratik Çözümler

Junior sistem yöneticilerinin karşılaştığı yaygın sistem hatalarını nasıl etkili bir şekilde çözebileceğini adım adım anlatan, sahada uygulanabilir bir rehber.

Caner Serbest

Sistem ve Altyapı

5 min read

Junior Sistem Yöneticileri İçin Kritik Hata Ayıklama (Debugging) Stratejileri: Gerçek Dünya Senaryoları ve Pratik Çözümler

Merhaba! Sistem yöneticiliğine yeni başlayan ya da bu alanda kendini geliştirmek isteyen birçok kişi, karşılaştıkları teknik sorunları nasıl çözeceğini bilemiyor. Bu yazıda, junior sistem yöneticilerinin en sık karşılaştığı sistem hatalarını nasıl analiz edeceğini, logları nasıl okuyacağını ve pratik çözümler üreteceğini adım adım anlatacağım. Amacım, sadece teorik bilgilerden öte, gerçek dünya senaryolarında uygulanabilir debugging stratejileri sunmak.


1. Hata Ayıklama Sürecine Giriş: Sistematik Yaklaşımın Önemi

Bir sistem yöneticisi olarak karşılaştığınız her hata, aslında bir öğrenme fırsatıdır. Ancak, bu fırsatı değerlendirebilmek için sistematik bir yaklaşım benimsemeniz gerekiyor. Aşağıda, hata ayıklama sürecini adımlara ayırdım:

  1. Problemi Tanımlama

    • Hatanın ne olduğunu net bir şekilde ifade edin.
    • Örneğin: “Web sunucusu yanıt vermiyor” yerine, “Nginx servisi çalışmıyor ve /var/log/nginx/error.log dosyasında bind() to 0.0.0.0:80 failed hatası var.”
  2. Logları İnceleme

    • Sistem logları (/var/log/ dizini), uygulama logları ve güvenlik logları (/var/log/auth.log, /var/log/syslog) en önemli kaynaklardır.
    • Komut örneği:
      sudo tail -n 50 /var/log/nginx/error.log
      sudo journalctl -u nginx --no-pager -n 100
  3. Sorunun Kaynağını Belirleme

    • Loglar size ipucu verir, ancak her zaman yeterli olmayabilir. Bu durumda, sistem durumunu analiz edin:
      • top, htop, vmstat, iostat gibi araçlarla CPU, bellek ve disk kullanımını kontrol edin.
      • Komut örneği:
        top -c
        vmstat 1 5
        iostat -x 1 3
  4. Hipotez Oluşturma ve Test Etme

    • Loglardan elde ettiğiniz bilgilere dayanarak bir hipotez oluşturun.
    • Örneğin: “Nginx servisi çalışmıyor çünkü port 80 başka bir süreç tarafından kullanılıyor.”
    • Hipotezinizi test etmek için:
      sudo netstat -tulnp | grep :80
      sudo ss -tulnp | grep :80
  5. Çözümü Uygulama ve Doğrulama

    • Çözümü uyguladıktan sonra, sorunun gerçekten çözüldüğünden emin olun.
    • Örneğin, port 80’i serbest bıraktıktan sonra Nginx’i yeniden başlatın ve logları kontrol edin.
  6. Dokümantasyon ve Öğrenme

    • Çözümü ve süreci not alın. Bu, ileride aynı hatayla karşılaştığınızda hızlıca müdahale etmenizi sağlar.

2. Yaygın Sistem Hataları ve Debugging Stratejileri

A. Linux Sistemlerinde Disk Doluluğu Sorunu

Sorun: Sunucunuzda disk doluluğu nedeniyle hizmetler çalışmıyor.

Debugging Adımları:

  1. Disk kullanımını kontrol edin:

    df -h
    du -sh /var/*
  2. Büyük dosyaları ve klasörleri bulun:

    sudo du -ah / | sort -rh | head -n 20
  3. Logrotate ayarlarını kontrol edin:

    • /etc/logrotate.conf dosyasını inceleyin ve log dosyalarının ne sıklıkla döndürüldüğünü (rotate) ve ne kadar süreyle saklandığını (retention) kontrol edin.
  4. Eski log dosyalarını temizleyin:

    sudo find /var/log -type f -name "*.log" -size +100M -delete
  5. Sistemdeki gereksiz dosyaları silin:

    • /tmp, /var/tmp gibi dizinlerdeki gereksiz dosyaları temizleyin.

Pratik Çözüm:

  • Logrotate yapılandırmasını optimize edin:
    /var/log/nginx/*.log {
        weekly
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 0644 www-data adm
    }

B. Windows Server’da Kritik Hizmetlerin Çalışmaması

Sorun: Windows Server’da Active Directory, DNS veya DHCP gibi kritik hizmetler çalışmıyor.

Debugging Adımları:

  1. Hizmet durumunu kontrol edin:

    • services.msc üzerinden ilgili hizmetin durumunu inceleyin.
    • Komut satırı alternatifi:
      Get-Service -Name "DNS"
  2. Event Viewer (Olay Görüntüleyici) kullanın:

    • eventvwr.msc üzerinden sistem, uygulama ve hizmet loglarını inceleyin.
    • Kritik hataları filtreleyerek inceleyin.
  3. Bağımlılıkları kontrol edin:

    • Bir hizmetin çalışması için başka bir hizmetin çalışması gerekiyorsa, bağımlılıkları kontrol edin.
    • Komut örneği:
      sc qc "DNS"
  4. Güvenlik Duvarı (Firewall) ayarlarını kontrol edin:

    • Hizmetin kullanması gereken portların engellenip engellenmediğini kontrol edin.
    • Komut örneği:
      Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*DNS*" }

Pratik Çözüm:

  • Hizmeti yeniden başlatmadan önce bağımlılıklarını kontrol edin:
    Restart-Service -Name "DNS" -Force

C. Ağ Bağlantı Sorunları: Ping Çalışıyor, Fakat Uygulama Erişilemiyor

Sorun: Sunucunuza ping atabiliyorsunuz, ancak web uygulamasına erişemiyorsunuz.

Debugging Adımları:

  1. Port erişilebilirliğini kontrol edin:

    nc -zv <sunucu_ip> 80
    telnet <sunucu_ip> 80
  2. Güvenlik duvarı kurallarını inceleyin:

    • Linux (UFW/iptables):
      sudo ufw status numbered
      sudo iptables -L -n -v
    • Windows:
      Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*80*" }
  3. Uygulama loglarını kontrol edin:

    • Web sunucusu logları (/var/log/nginx/access.log, /var/log/apache2/error.log).
  4. SELinux/AppArmor durumunu kontrol edin:

    sudo sestatus  # SELinux
    sudo aa-status  # AppArmor

Pratik Çözüm:

  • Güvenlik duvarı kurallarını geçici olarak devre dışı bırakıp testi tekrarlayın:
    sudo ufw disable
    (Test bittikten sonra tekrar etkinleştirmeyi unutmayın!)

3. Debugging Araçları ve Kaynakları

AraçKullanım AlanıKurulum Komutu
straceSistem çağrılarını izlemesudo apt install strace (Debian/Ubuntu)
tcpdumpAğ trafiğini yakalamasudo apt install tcpdump
lsofAçık dosya ve portları listelemesudo apt install lsof
journalctlSystemd loglarını okuma(Varsayılan olarak gelir)
Process ExplorerWindows’ta detaylı süreç analiziMicrosoft sitesinden indirin
WiresharkAğ paketlerini analiz etmesudo apt install wireshark

Örnek Kullanım:

  • Bir uygulamanın neden çalışmadığını anlamak için strace kullanın:
    strace -f -o /tmp/app_debug.log /usr/bin/nginx
    Bu komut, Nginx’in çalışırken yaptığı sistem çağrılarını /tmp/app_debug.log dosyasına kaydeder.

4. Junior Sistem Yöneticileri İçin İpuçları

  1. Logları Okumayı Öğrenin:

    • Sistem logları (syslog, auth.log, kern.log) ve uygulama logları (nginx/error.log, apache2/error.log) en değerli kaynaklardır.
    • İpucu: grep, awk, sed gibi komutlarla logları filtreleyin.
  2. Sistem Durumunu Sürekli İzleyin:

    • htop, glances, netdata gibi araçlarla sistem performansını anlık olarak takip edin.
  3. Araçları Tanıyın:

    • iftop, nmon, dstat gibi araçlarla ağ ve disk performansını analiz edin.
  4. Dokümantasyonu Önemseyin:

    • Her yaptığınız değişikliği ve çözdüğünüz hatayı not alın. Gelecekte karşılaşacağınız benzer sorunlarda size büyük avantaj sağlar.
  5. Topluluklardan Faydalanın:

    • Stack Overflow, Reddit (r/sysadmin), Discord toplulukları gibi platformlarda sorular sorun ve deneyimleri paylaşın.
  6. Otomatikleştirin:

    • Sık karşılaştığınız sorunları otomatik çözümler haline getirin. Örneğin, disk doluluğunu otomatik olarak temizleyen bir cron job oluşturun.

5. Sonuç: Debugging Becerinizi Nasıl Geliştirirsiniz?

Debugging, sistem yöneticiliğinin en kritik becerilerinden biridir. Bu beceriyi geliştirmek için:

Pratik yapın: Gerçek sistemlerde karşılaştığınız hataları çözmeye çalışın. ✅ Logları okuyun: Sistem loglarını anlamaya çalışın ve hangi bilgilerin nerede olduğunu öğrenin. ✅ Araçları tanıyın: Sistem durumunu analiz etmek için kullanılan araçları öğrenin ve kullanın. ✅ Dokümantasyonu takip edin: Resmi dokümantasyonları (örneğin, Linux man pages) okuyun. ✅ Topluluklardan öğrenin: Diğer sistem yöneticilerinin karşılaştığı sorunları ve çözümlerini inceleyin.

Unutmayın, her hata bir öğrenme fırsatıdır. Başarısız olduğunuzda moralinizi bozmayın; aksine, neden başarısız olduğunuzu analiz edin ve bir sonraki sefer daha iyi olun.


Kaynaklar ve Okuma Önerileri

Eğer bu yazı size faydalı olduysa, yorumlarınızı ve deneyimlerinizi paylaşın! Ayrıca, karşılaştığınız ilginç hata senaryolarını da bana iletebilirsiniz. İyi debuggingler! 🚀


Bu yazı Mistral ile otomatik oluşturulmuştur.