20 Eylül 2026 - 12:32
journalctl Disk Alanını Neden Büyütür? Kalıcı Sınır Koyma Görseli
Linux

journalctl Disk Alanını Neden Büyütür? Kalıcı Sınır Koyma

Yorumlar

Systemd journal'ın büyümesi çoğu zaman “journalctl çok yer kaplıyor” diye fark edilir; alanı kullanan araç journalctl değil, günlükleri saklayan systemd-journald hizmetidir. Bir defalık temizlik geçici rahatlama sağlar. Kalıcı çözüm için önce kullanımın nerede olduğunu ölçmek, sonra saklama politikasına sınır koymak gerekir.

Journal kullanımını kendi aracıyla ölçün

BASH
sudo journalctl --disk-usage
sudo du -sh /var/log/journal /run/log/journal 2>/dev/null
df -hT /var/log /run

/var/log/journal kalıcı, /run/log/journal geçici saklama alanıdır. Storage=auto ayarında kalıcı dizinin varlığı davranışı etkiler. Yalnızca du çıktısına bakmak yerine journalctl --disk-usage sonucunu esas alın.

Hangi hizmetin günlük ürettiğini bulun

BASH
sudo journalctl --since '-1 hour' -o json \
  | grep -o '"_SYSTEMD_UNIT"[^,]*' \
  | sort | uniq -c | sort -nr | head

Bu hızlı örnek yalnızca son saatteki birim yoğunluğunu yaklaşık gösterir. Sürekli tekrar eden bir uygulama hatası varsa yalnızca saklama alanını küçültmek belirtinin üzerini örter. İlgili servisin günlüğünü ayrıca inceleyin:

BASH
sudo journalctl -u example.service --since '-30 min' --no-pager

Temizlikten önce journal bütünlüğünü kontrol edin

BASH
sudo journalctl --verify

Bozuk günlük dosyaları görülüyorsa önce disk, dosya sistemi ve beklenmeyen kapanma belirtilerini araştırın. Temizlik komutunu bir dosya sistemi arızasının çözümü gibi kullanmayın.

Arşiv günlüklerini kontrollü küçültün

BASH
sudo journalctl --rotate
sudo journalctl --vacuum-size=500M
sudo journalctl --disk-usage

--vacuum-size yalnızca arşivlenmiş journal dosyalarını temizler. Aktif dosyaların önce döndürülmesi hedefe yaklaşmayı kolaylaştırır. Boyut yerine süre politikası gerekiyorsa örneğin --vacuum-time=14d kullanılabilir. İki yöntemi düşünmeden üst üste uygulamak, olay incelemesi için gerekli kayıtları silebilir; saklama gereksinimini önceden belirleyin.

Kalıcı sınırı drop-in dosyasında tanımlayın

BASH
sudo mkdir -p /etc/systemd/journald.conf.d
sudoedit /etc/systemd/journald.conf.d/90-size-limit.conf
INI
[Journal]
SystemMaxUse=1G
SystemKeepFree=2G
RuntimeMaxUse=256M
MaxRetentionSec=30day

SystemMaxUse kalıcı journal için üst hedefi, SystemKeepFree dosya sisteminde bırakılacak alanı belirler. RuntimeMaxUse geçici journal içindir. Değerleri örnek olarak kopyalamak yerine disk kapasitesi, olay inceleme süresi ve merkezi log sisteminin bulunup bulunmamasına göre seçin.

Etkin yapılandırmayı ve sonucu doğrulayın

BASH
systemd-analyze cat-config systemd/journald.conf
sudo systemctl restart systemd-journald
systemctl status systemd-journald --no-pager
sudo journalctl --disk-usage

systemd-analyze cat-config ana dosya ile drop-in dosyalarının birleşmiş görünümünü verir. Ayarın yazılmış olması, yanlış bölüm veya dosya adı nedeniyle etkin olduğu anlamına gelmez. Restart sonrasında yeni bir test kaydı üretip okuyun:

BASH
logger 'journald-limit-test'
journalctl -t logger -n 5 --no-pager

Merkezi log sunucusuna aktarım yapıyorsanız yerel saklama süresini azaltabilirsiniz; ancak ağ kesintisinde kayıp toleransını hesaba katın. Kısa saklama sınırı disk taşmasını azaltırken geçmiş olay analizinin kapsamını da daraltır.

Teknik başvuru: journald.conf ve journalctl kılavuzları.

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap