Yazılara geri dön
Yazı

Haftada Saatler Kazandıran 25 Linux Sistem Yöneticisi Aracı

Rutin işleri hızlandıran, sorun giderme ve otomasyon için günlük kullandığım 25 Linux sistem yöneticisi aracının pratik listesi.

Linuxsysadmin toolscommand linemonitoringAnsiblenetwork troubleshootingbackupDevOps

Yıllar içinde öyle bir araç seti oluşturdum ki gerçekten haftada saatlerimi kurtarıyor. Bunlar gösterişli yeni projeler değil — sunucularda sorun çözmek, tekrarlayan işleri otomatikleştirmek, logları taramak ve production'ı stabil tutmak için her gün uzandığım iş atlarımdan. İşte ortamımda aktif olarak kullandığım, çözdükleri soruna göre grupladığım 25 araç.

Günlük Sunucu Yönetimi İçin Temel Komut Satırı Araçları

Düzinelerce Linux kutusu yönettiğinizde temel şeyler hâlâ önemli. Bu araçlar her yeni sunucuda ilk kurduğum şeyler:

  • htop — CPU ve bellek canavarlarını interaktif olarak yakalamak için top'tan çok daha iyi
  • tmux — SSH bağlantısı koptuğunda oturumlarınızı hayatta tutar; ben onsuz çalışmıyorum
  • ncdu — hızlı disk kullanım analizcisi; saat 03:00'te bir partition dolduğunda mükemmel
  • rsync — güvenilir dosya senkronu ve artımlı yedekler için hâlâ kral
  • dstatvmstat, iostat ve ifstat'ı tek temiz görünüme taşır

Disk alanını neyin yediğini sonsuza kadar beklemeden nasıl kontrol ettiğime dair hızlı bir örnek:

ncdu -x /

-x parametresi onu aynı dosya sisteminde tutar; bu, network mount'lı kutularda önem taşır.

Her Sistem Yöneticisinin İhtiyaç Duyduğu Ağ Sorun Giderme Araçları

Ağ yavaşlığının gerçek nedenini bulma yazımda (https://furkanikkan.com/urun/ag-yavasliginin-gercek-nedenini-bulmanin-7-yolu-50) belirttiğim gibi, ölçemediğiniz şeyi düzeltemezsiniz. Bu araçlar ağ tanısı için ilk başvurduklarım:

  • mtrtraceroute ve ping'i canlı bir görünüme birleştirir; paketlerin nerede düştüğünü yakalamak için mükemmel
  • tcpdump — kablo üzerinde gerçekte ne olduğunu görmek istediğinizde
  • nmap — güvenlik duvarı kurallarının düşündüğünüz şeyi yaptığını doğrulamak için hızlı port taramaları
  • iperf3 — iki düğüm arasındaki gerçek throughput'u ölçer
  • dig — DNS sorun giderme için nslookup'tan çok daha bilgilendirici

İpucu: Yukarı akış sağlayıcılarına tanı gönderirken mtr'ı rapor modunda çalıştırıyorum:

mtr --report --report-cycles 10 target.example.com

Log Tarama ve Metin İşleme Araçları

Eğer bütün gün manuel olarak log grep'liyorsanız, zamanınızı boşa harcıyorsunuz. Bu araçlar log dosyalarını hızlıca dilimlememe yardımcı oluyor:

  • ripgrep (rg) — saçma derecede hızlı özyinelemeli arama; iş akışımda grep -r'ın yerini tamamen aldı
  • jq — JSON logları ve API yanıtlarını aklınızı kaybetmeden ayrıştırır
  • less — basit duyuluyor ama less +F size geri kaydırma özelliğiyle tail -f davranışı verir
  • awk — sütun tabanlı metin işleme için hâlâ yenilemez
  • csvkit — biri size bir CSV gönderip on dakika içinde cevap beklediğinde

Bir nginx erişim logundan HTTP durum kodlarını hızlıca nasıl saydığım:

awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

İzleme ve Performans Analiz Araçları

İzlemediğiniz şeyi yönetemezsiniz. Benim ortamımda bu araçlar günlük görünürlüğün belkemiğini oluşturur:

  • Prometheus — metrik toplama ve uyarı; panolar için Grafana ile eşleşir
  • Grafana — metrikleri herkes için anlaşılır kılan görselleştirme katmanı
  • node_exporter — host düzeyinde metrikleri Prometheus'a gönderir
  • netdata — hafif gerçek zamanlı izleme; yeni sunucularda hızlı kurulumlar için harika
  • strace — bir process düzgün davranmadığında ve hangi syscall'ları yaptığını görmeniz gerektiğinde

Otomasyon ve Yapılandırma Yönetimi Araçları

Elle tekrarlayan işler yapmak hataların oluşma şeklidir. Bu araçlar ortamlar arasında tutarlı kalmama yardımcı oluyor:

  • Ansible — agentsız ve YAML tabanlı; yapılandırma yönetimi ve anlık görevler için varsayılanım
  • cron — eski ama basit zamanlanmış işler için güvenilir
  • systemd timers — daha iyi loglama ve bağımlılık yönetimiyle cron için modern alternatif
  • Make — sadece kod derlemek için değil; dağıtım adımlarını düzenlemek için kullanıyorum
  • git — sürüm kontrol sadece geliştiriciler için değil; tüm yapılandırma scriptlerimi repolarda tutuyorum

Tüm sunucularda uptime'ı kontrol etmek için kullandığım basit bir Ansible anlık komutu:

ansible all -m command -a "uptime" -f 10

-f 10 onu aynı anda 10 hostta paralel çalıştırır; 50+ sunucunuz olduğunda bu önem taşır.

Production Sunucuları İçin Güvenlik ve Yedekleme Araçları

Güvenlik ve yedekleme el ele yürür. 3-2-1 yedekleme kuralı yazımda (https://furkanikkan.com/urun/3-2-1-yedekleme-kurali-sadece-yedek-almak-yetmez-49) belirttiğim gibi, sadece yedek almak yetmez — onları güvenilir ve doğrulanabilir kılacak doğru araçlara ihtiyacınız var.

  • rsnapshot — alan verimli anlık görüntüler oluşturmak için rsync ve hard link kullanır
  • BorgBackup — deduplikasyonlu, sıkıştırılmış, şifrelenmiş yedekler; dış kopyalar için tercih ettiğim araç
  • fail2ban — SSH veya web servislerini brute-force eden IP'leri otomatik olarak yasaklar
  • Lynis — sistem sağlamlaştırmayı denetler ve düzeltmeniz gerekenlerin bir kontrol listesini verir
  • AIDE — yetkisiz değişiklikleri yakalamak için dosya bütünlüğü izleme

Kendi Araç Setinizi Oluşturma Üzerine Son Düşünceler

Bu listedeki her araç ortamınıza uymayabilir ve bu sorun değil. Önemli olan, her yeni projenin peşinden koşmak yerine derinlemesine bildiğiniz bir araç seti oluşturmak. Bunların çoğunu yıllardır kullanıyorum ve gerçek production olayları, gece geç saatlerdeki kesintiler ve rutin bakım işleri sayesinde yerlerini hak ettiler.

Mevcut acı noktalarınızı çözenlerle başlayın. Disk alanı günlük baş ağrınızsa, önce ncdu ve ripgrep'i edinin. Ağ sorunları sizi uykudan tutuyorsa, mtr kurun ve tcpdump'ı düzgün öğrenin. En iyi araç, saat 02:00'de işler ters gittiğinde zaten iyi bildiğiniz araçtır.


Kapak görseli: personalgraphic.official · CC0 (Openverse / kamu malı) · https://www.flickr.com/photos/198895458@N04/53097628210