Skip to main content

Sunucu Durumu Öğrenme

SSH ile ulaşılan Ubuntu sunucuda CPU/RAM yükünü, disk doluluğunu, servis durumunu ve logları hızlıca kontrol et.

Hızlı kontrol listesi

  • Hangi host: hostname / IP / ortam (prod/preprod/test) net mi?
  • Bağlantı sorunlarında önce sunucu-erisimi ve ssh-baglanti dokümanlarını uygula.
  • Kritik servis/uygulama isimleri ve portlar biliniyor mu?

CPU ve bellek (htop/top/free)

uptime            # Load average: 1,5,15 dakikalık ortalama (CPU core sayısıyla karşılaştır)
w # Aktif kullanıcı/işlem
htop # Renkli canlı izleme, F6 ile sıralama
top -o %CPU # CPU’ya göre sıralı klasik görünüm
free -h # RAM/Swap kullanımı
ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu | head
ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem | head

Notlar:

  • Load average çekirdek sayısından yüksekse CPU baskısı vardır.
  • Swap hızla artıyorsa bellek yetersiz veya sızıntı olabilir.

Disk doluluk ve inode

df -h             # Dosya sistemi doluluk
df -i # Inode doluluğu (inode %100 ise dosya temizliği gerekir)
lsblk -f # Hangi disk hangi mount noktasında
sudo du -sh /var/log/* | sort -h | tail
sudo du -sh /var/www/* | sort -h | tail # Uygulama dizini örneği
sudo find /var/log -type f -size +200M -print

Dolulukta:

  • Loglar şişmişse gerek olmayanları sil/rotate et (logrotate), uygulama log seviyesini düşür.
  • Inode doluysa çok küçük dosya üreten dizini temizle/archivle.

Servis durumu (systemctl)

systemctl status <service>
systemctl list-units --type=service --state=failed
sudo systemctl restart <service>
sudo systemctl daemon-reload # Unit değiştiyse

Servis logu:

journalctl -u <service> -n 200
journalctl -u <service> -f
journalctl -u <service> --since "30 min ago"
journalctl -p err -b # Son boot'tan beri error seviyeleri

Log inceleme (genel)

sudo tail -n 200 /var/log/syslog
sudo tail -n 200 /var/log/auth.log
sudo journalctl -p warning --since "1 hour ago"

Arızalı işlem/servis ipuçları için journalctl -xe de bakılabilir.

Ağ ve bağlantı kontrolleri

dig +short hostname
ping -c 3 hostname
ss -ltnp | head # Dinleyen portlar
nc -vz hostname 80 # Port testi örneği
curl -I http://hostname/health

Firewall ya da rota sorunu şüphesinde traceroute/mtr ekle.

Hızlı yorumlama

  • CPU yüksek: En çok CPU yiyen süreci bul (ps/top/htop), gerekirse restart veya ölçekleme.
  • RAM yüksek: RSS’ı en yüksek işlem, cache/drop (geçici), limit aşımı; swap artıyorsa uyarı.
  • Disk dolu: df -h/du ile en büyük dizin; log rotate veya temizlik; inode’a dikkat.
  • Servis down: systemctl status, son log satırları, konfig değiştiyse daemon-reload + restart.

İlgili dokümanlar