İyi Bir Sistem Yöneticisinin Sahip Olması Gereken Günlük Alışkanlıklar
Sistem yöneticiliğinde sürdürülebilir başarı, anlık kriz müdahalelerinden ziyade günlük rutinlere dayanır. İyi bir sysadmin’in işini kolaylaştıran pratik alışkanlıklar ve operasyonel disiplin rehberi.
Caner Serbest
Sistem ve Altyapı
5 min read
İyi Bir Sistem Yöneticisinin Sahip Olması Gereken Günlük Alışkanlıklar
Sistem yöneticiliği (Sysadmin), dışarıdan bakıldığında genellikle iki uç senaryo ile algılanır: Ya sunucuların başında hiçbir şey yapmadan kahve içen sakin bir çalışan ya da ekranda akan loglar arasında panikle komut yazan bir kriz çözücü. Ancak gerçek dünya bu iki uçtan oldukça farklıdır. Sürdürülebilir, güvenli ve kesintisiz bir altyapı yönetmek, saatler süren kahramanlık anlarından ziyade, her gün tekrarlanan küçük ama kritik alışkanlıkların bir toplamıdır.
Bir sistem yöneticisinin teknik bilgisi ne kadar iyi olursa olsun, operasyonel disiplini ve günlük rutinleri yoksa sistemler bir gün mutlaka başarısız olacaktır. Bu yazıda, junior seviyeden senior seviyeye geçişte fark yaratan, sahada bizzat test edilmiş ve uzun vadeli başarıyı garantileyen temel alışkanlıkları ele alacağız.
1. Güne Log İncelemesiyle Başlamak (Proaktif Yaklaşım)
Ortalama bir sistem yöneticisi sabneye sadece bir hata raporu aldığında çıkar. İyi bir sistem yöneticisi ise kullanıcılar fark etmeden önce sorunu çözer. Bu farkın arkasındaki en temel alışkanlık, güne log incelemesiyle başlamaktır.
Sabah masaya oturduğunuzda ilk iş olarak kritik sunucuların gece boyunca ürettiği logları taramak gerekir. Her satırı okumaktan bahsetmiyoruz; anomaly tespiti yapmak esastır.
/var/log/auth.logveya/var/log/securedosyalarında başarısız SSH denemeleri var mı?- Disk doluluk oranları güvenli sınırda mı?
- Web ve veritabanı servisleri hata döngüsüne (crash loop) girmiş mi?
Bu kontrolü otomatize etmek de mümkündür. Örneğin, her sabah size gece yaşanan kritik olayların özetini geçen basit bir Bash betiği yazabilirsiniz:
#!/bin/bash
# Gunluk hata özeti çıkaran basit bir script örneği
DATE=$(date --date="yesterday" "%b %d")
echo "=== $DATE SSH Basarisiz Giris Denemeleri ==="
grep "$DATE" /var/log/auth.log | grep "Failed password" | wc -l
echo "=== Disk Doluluk Oranlari ==="
df -h | awk '{print $5, $6}' | while read output;
usep=$(echo $output | awk '{print $1}' | cut -d'%' -f1)
partition=$(echo $output | awk '{print $2}'
if [ "$usep" -ge 80 ]; then
echo "Dikkat: $partition doluluk orani %$usep"
fi
done
Bu tarz küçük rutinler, sorunlar büyük birer kesintiye dönüşmeden müdahale etmenizi sağlar.
2. Değişiklik Yönetimi ve Belgeleme (Dokümantasyon)
“Geçici olarak şöyle bir ayar değiştirdim, sonra düzeltirim” cümlesi, sistem yöneticilerinin mezar taşlarına yazılsa yeridir. Acil bir durumda yapılan anlık müdahaleler (hotfix), sonrasında belgelenmediği takdirde gelecekteki en büyük kabusa dönüşür.
İyi bir sistem yöneticisinin en önemli alışkanlıklarından biri, değişiklik yönetimi (Change Management) disiplinidir. Sunucu üzerinde yapılan her konfigürasyon değişikliği, küçük bile olsa bir yere not edilmelidir.
- Hangi dosyada değişiklik yapıldı?
- Bu değişiklik neden yapıldı?
- Geri alma (rollback) adımları nelerdir?
Günümüzde bu süreci yönetmek için Git tabanlı wiki sistemleri veya basit Markdown dosyaları kullanılabilir. Alt yapı kod olarak yönetilse bile (Infrastructure as Code - IaC), yapılan her manuel müdahale belgelenmelidir. Yarın gece saat 03:00’te sistem çöktüğünde, aradığınız şey karmaşık bir çözüm değil, dün akşam hangi portu neden değiştirdiğinizi gösteren net bir nottur.
3. Yedekleri Test Etmek (Yedek Almak Yetmez)
Sistem yöneticileri iki gruba ayrılır: Yedek alanlar ve yedeklerinden veri dönebilenler.
Her gece otomatik olarak alınan veritabanı yedekleri veya disk imajları, eğer düzenli olarak geri yükleme testine tabi tutulmuyorsa, sadece birer hayal ürünüdür. Depolama birimindeki bir bozulma, yanlış sıkıştırma parametresi veya eksik bir bağımlılık, en kritik anda yedeğin kullanılamaz olmasına yol açabilir.
İyi bir sysadmin, yedekleme rutinine mutlaka geri yükleme (restore) testini de dahil eder. Ayda bir kez, izole bir test ortamında (staging veya lokal homelab), alınan yedeklerin gerçekten çalışıp çalışmadığı doğrulanmalıdır.
# Örnek: PostgreSQL veritabanı yedeğinin test ortamına sağlıklı kurulup kurulmadığını kontrol etme
gunnedb_backup.sql.gz dosyasini test ortamina aktar
gunzip < /path/to/backup/gunnedb_backup.sql.gz | psql -h localhost -U test_user -d test_db
Bu testi yapmayan bir yöneticinin yedek stratejisi eksiktir.
4. Güvenlik Güncellemeleri ve Yama Yönetimi (Patch Management)
Sistemlerin açık hedef haline gelmesini önlemek için yama yönetimi proaktif bir şekilde yürütülmelidir. Ancak bu, her yeni çıkan paketi “gözü kapalı” sunucuya kurmak anlamına gelmez.
Bilinçli bir sistem yöneticisi:
- Kritik güvenlik bültenlerini takip eder (CVE kayıtları, işletim sistemi dağıtıcılarının güvenlik duyuruları).
- Güncellemeleri öncelikle test ortamında uygular.
- Servis sürekliliğini etkilemeyecek bir planlama ile (genellikle düşük trafikli saatlerde) üretim ortamına taşır.
Güncellemeleri tamamen ihmal etmek ne kadar tehlikeliyse, kontrolsüz bir şekilde uygulamak da o kadar risklidir. Dengeyi bulmak, düzenli bir takvim oluşturmaktan geçer.
5. Scripting ve Otomasyon Düşünce Yapısı
Bir işi manuel olarak iki kez yaptıysanız, bunu üçüncü kez manuel yapmamalısınız. İyi bir sistem yöneticisinin zihniyeti otomasyon odaklıdır.
Her gün tekrarlanan kullanıcı oluşturma, yetki atama, log temizleme veya raporlama gibi rutin görevler Bash, Python veya PowerShell kullanılarak betikleştirilmelidir. Otomasyon sadece zamandan tasarruf sağlamaz; aynı zamanda insan hatasını (human error) ortadan kaldırır. Manuel işlem sırasında yapılan yanlış bir karakter, sistemin erişilemez olmasına neden olabilir ancak yazılmış ve test edilmiş bir otomasyon betiği her seferinde aynı hatasız adımları uygular.
Ancak otomasyonla ilgili de altın bir kural vardır: Anlamadığınız bir kodu asla çalıştırmayın. İnternetten bulduğunuz veya yapay züka araçlarına yazdırdığınız bir betiği doğrudan üretim sunucusunda çalıştırmak felakete davetiye çıkarır. Satır satır inceleyip ne yaptığını kavradığınız otomasyon araçlarını sisteminize entegre edin.
6. Monitoring ve Alarm Yorgunluğu Yönetimi (Alert Fatigue)
İyi bir sistem yöneticisi iyi izlenen bir sistem kurar. Ancak burada düşülen en büyük tuzak, her küçük olay için alarm kurmaktır.
CPU kullanımı %80’e çıktığında,disk doluluğu %75 olduğunda ya da anlık bir ağ gecikmesinde telefonunuza bildirim geliyorsa, bir süre sonra bu alarmları görmezden gelmeye başlarsınız. Buna alarm yorgunluğu (alert fatigue) denir. Gerçek bir kriz anında çalan alarm ile sıradan bir dalgalanmanın sesi birbirine karıştığında, gecikmeler ve büyük kesintiler kaçınılmaz olur.
İyi bir sysadmin, izleme sistemlerini (Prometheus, Zabbix, Grafana vb.) optimize eder:
- Sadece eylem gerektiren (actionable) durumlar için alarm kurulur.
- Eşik değerler (thresholds) gerçekçi senaryolara göre ayarlanır.
- Geçici durumlar için uyarı gecikmeleri (delay/hysteresis) tanımlanır.
7. Sürekli Öğrenme ve Lab Ortamı Alışkanlığı
Teknoloji dünyası çok hızlı değişiyor. Bugün kullanılan araçlar, konseptler yarın yerini yenilerine bırakabiliyor. Sadece mevcut sistemleri ayakta tutmak bir sistem yöneticisini zamanla köreltir.
İyi bir sistem yöneticisi, yeni teknolojileri denemek, hata yapmak ve öğrenmek için kendine ait bir Homelab veya test ortamına sahiptir. Üretim ortamında deneme yapılmaz; denemeler izole laboratuvar ortamlarında yapılır.
Günlük iş temposunun koşturmacası içinde bile haftada birkaç saat yeni bir teknolojiyi (örneğin yeni bir konteynerizasyon aracı, farklı bir ağ protokolü veya güvenlik sıkılaştırma yöntemi) incelemek için ayrılmalıdır. Bilgiyi taze tutmak, kriz anlarında reflekslerin hızlı çalışmasını sağlar.
Sonuç
Sistem yöneticiliği, kriz anlarında gösterilen kahramanlıklarla değil, o krizlerin hiç yaşanmaması için arka planda sürekli işletilen disiplinli rutinlerle ölçülür. Güne log kontrolüyle başlamak, yedekleri düzenli test etmek, değişiklikleri belgelemek ve her tekrar eden işi otomatize etmek bir sysadmin’in en iyi dostudur.
Unutmayın; en iyi sistem yöneticisi, sistemleri sanki hiç sorun çıkmayacakmış gibi kusursuz tasarlayan, ancak her an her şey bozulabilecekmiş gibi hazırlıklı olandır.
Bu yazı Gemini ile otomatik oluşturulmuştur.