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çintop'tan çok daha iyitmux— SSH bağlantısı koptuğunda oturumlarınızı hayatta tutar; ben onsuz çalışmıyorumncdu— hızlı disk kullanım analizcisi; saat 03:00'te bir partition dolduğunda mükemmelrsync— güvenilir dosya senkronu ve artımlı yedekler için hâlâ kraldstat—vmstat,iostatveifstat'ı 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:
mtr—tracerouteveping'i canlı bir görünüme birleştirir; paketlerin nerede düştüğünü yakalamak için mükemmeltcpdump— kablo üzerinde gerçekte ne olduğunu görmek istediğinizdenmap— 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çerdig— DNS sorun giderme içinnslookup'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ışımdagrep -r'ın yerini tamamen aldıjq— JSON logları ve API yanıtlarını aklınızı kaybetmeden ayrıştırırless— basit duyuluyor amaless +Fsize geri kaydırma özelliğiyletail -fdavranışı verirawk— sütun tabanlı metin işleme için hâlâ yenilemezcsvkit— 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şirGrafana— metrikleri herkes için anlaşılır kılan görselleştirme katmanınode_exporter— host düzeyinde metrikleri Prometheus'a gönderirnetdata— hafif gerçek zamanlı izleme; yeni sunucularda hızlı kurulumlar için harikastrace— 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ımcron— eski ama basit zamanlanmış işler için güvenilirsystemd timers— daha iyi loglama ve bağımlılık yönetimiyle cron için modern alternatifMake— sadece kod derlemek için değil; dağıtım adımlarını düzenlemek için kullanıyorumgit— 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çinrsyncve hard link kullanırBorgBackup— 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 yasaklarLynis— sistem sağlamlaştırmayı denetler ve düzeltmeniz gerekenlerin bir kontrol listesini verirAIDE— 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
