Login Sorunu Çözüm Planı

Oturum kapatmadan sistem düzeltmesi

Beklemede

Kritik Kural: Oturum Silme YOK!

Bu plandaki hiçbir adım kullanıcı oturumlarını silmez. redis-cli FLUSHALL ve benzeri komutlar YASAKTIR.

Mevcut Durum Özeti

Herkes İçin

Ne Oluyor?

  • Bazı kullanıcılar siteye giriş yapamıyor
  • Redis (oturum deposu) 34 gündür yeniden başlatılmamış
  • Hafıza parçalanması normalin 10 katı
  • Günlük 400MB log dosyası üretiliyor
Teknik

Sistem Metrikleri

Redis Uptime: 34 gün (8 Ocak'tan beri)
Memory Fragmentation: 16.18 (Normal: 1-1.5)
Aktif Session: 253 adet
Expired Keys: 18.7 milyon
Bugünkü Log: 321 MB

Çözüm Planı (Sıralı Adımlar)

1

Debug Logları Kapat

Güvenli

Herkes İçin

Sistem her işlemde gereksiz kayıt tutuyor. Bu kapatılacak ve disk yükü azalacak.

Teknik Detay

SetTenantSessionConfig middleware'deki DEBUG logları kapatılacak. .env'de LOG_LEVEL kontrol edilecek.

Çalıştırılacak Komutlar:

# 1. Log seviyesini kontrol et
grep LOG_LEVEL .env

# 2. Middleware'deki debug logları yorum satırı yap
# Dosya: app/Http/Middleware/SetTenantSessionConfig.php
# Log::debug satırlarını // ile kapat
Oturum Etkisi: YOK - Sadece log azalır
2

Eski Log Dosyalarını Temizle

Güvenli

Herkes İçin

Son 1 haftanın log dosyaları 3GB+ yer kaplıyor. Eski loglar silinecek, disk alanı açılacak.

Teknik Detay

storage/logs/ altındaki 7 günden eski .log dosyaları silinecek. Güncel loglar korunacak.

Çalıştırılacak Komutlar:

# 7 günden eski log dosyalarını sil
find storage/logs/ -name "*.log" -mtime +7 -delete

# Disk kullanımını kontrol et
du -sh storage/logs/
Oturum Etkisi: YOK - Sadece eski loglar silinir
3

Laravel Cache Temizle (Session Hariç)

Güvenli

Herkes İçin

Sistem ayarları ve görünüm dosyaları yeniden oluşturulacak. Kullanıcılar etkilenmez.

Teknik Detay

config:clear, route:clear, view:clear çalıştırılacak. cache:clear Redis DB1'i temizler (session DB0'da).

Çalıştırılacak Komutlar:

# Session'lar DB0'da, Cache DB1'de - güvenli
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear        # DB1 - session etkilenmez
php artisan responsecache:clear

# OPcache temizle
curl -s -k https://muzibu.com/opcache-reset.php

# Config ve route'ları yeniden cache'le
php artisan config:cache
php artisan route:cache
Oturum Etkisi: YOK - Session DB0, Cache DB1'de ayrı
4

Redis BGSAVE + Graceful Restart

Dikkatli

Herkes İçin

Oturum deposu güvenli şekilde yeniden başlatılacak. Önce tüm oturumlar diske kaydedilecek, sonra sistem yenilenecek.

Teknik Detay

BGSAVE ile RDB snapshot alınır, restart sonrası otomatik yüklenir. Memory fragmentation düzelir.

Çalıştırılacak Komutlar:

# 1. Önce mevcut session sayısını kaydet
redis-cli KEYS "*session*" | wc -l

# 2. RDB snapshot al (arka planda)
redis-cli BGSAVE

# 3. BGSAVE tamamlanmasını bekle
redis-cli LASTSAVE  # timestamp değişene kadar bekle

# 4. Graceful restart (snapshot'tan yükler)
sudo systemctl restart redis

# 5. Session sayısını doğrula
redis-cli KEYS "*session*" | wc -l

Önemli: BGSAVE tamamlanmadan restart YAPMA! Restart sırasında 1-2 saniye kesinti olabilir ama oturumlar korunur.

Oturum Etkisi: KORUNUR - RDB'den geri yüklenir
5

Horizon Restart

Güvenli

Herkes İçin

Arka plan işlemcisi yenilenecek. E-posta gönderimi, bildirimler gibi işlemler etkilenmez.

Teknik Detay

horizon-muzibu.service restart edilecek. Queue işleri kuyrukta bekler, kaybolmaz.

Çalıştırılacak Komutlar:

sudo systemctl restart horizon-muzibu
sudo systemctl status horizon-muzibu
Oturum Etkisi: YOK - Queue sistemi bağımsız
6

Doğrulama ve Test

Kontrol

Herkes İçin

İşlemler sonrası sistemin düzgün çalıştığı doğrulanacak. Login testi yapılacak.

Teknik Detay

Redis INFO, session count, fragmentation ratio kontrol edilecek. Site 200 OK kontrolü yapılacak.

Çalıştırılacak Komutlar:

# 1. Redis durumu
redis-cli INFO memory | grep -E "used_memory_human|mem_fragmentation"

# 2. Session sayısı (öncekiyle karşılaştır)
redis-cli KEYS "*session*" | wc -l

# 3. Site erişim testi
curl -s -k -I https://muzibu.com/ | head -n 1
curl -s -k -I https://www.muzibu.com/ | head -n 1

# 4. Login sayfası testi
curl -s -k -I https://www.muzibu.com/login | head -n 1

# 5. Log hata kontrolü
tail -50 storage/logs/laravel.log | grep -i error
Beklenen: Fragmentation < 2, Session sayısı aynı, 200 OK

Kesinlikle Yapılmayacaklar

Redis Komutları

  • redis-cli FLUSHALL
  • redis-cli FLUSHDB
  • redis-cli DEL *session*

Laravel Komutları

  • php artisan session:clear
  • php artisan auth:clear-resets
  • BGSAVE'siz Redis restart

Özet Kontrol Listesi