İçeriğe geç

Linux Sistemlerde Hata Tespiti: journalctl Kullanımı

linux-sistem-yoneticisi

Linux sistem yöneticileri ve geliştiriciler için hata tespiti ve sistem günlüklerini analiz etmek kritik bir süreçtir. journalctl, systemd tabanlı sistemlerde günlük kayıtlarını yönetmek ve incelemek için kullanılan güçlü bir araçtır.

Bu yazıda, journalctl komutunun detaylarını, hata tespiti ve sistem izleme için nasıl kullanabileceğinizi anlatacağız.

journalctl Nedir?

journalctl, systemd-journald servisi tarafından toplanan günlük kayıtlarını okumanızı ve analiz etmenizi sağlayan bir komuttur. Geleneksel /var/log/messages ve /var/log/syslog dosyalarına alternatif olarak kullanılır.

Başlıca avantajları şunlardır:
Gerçek zamanlı log analizi
Tarihe, servise, kullanıcıya ve seviyeye göre filtreleme
Renkli ve okunaklı çıktı desteği
Uzak sistemlerden log çekme imkanı

Temel journalctl Kullanımı

Tüm günlük kayıtlarını görmek için:

journalctl

Ancak bu çıktı çok uzun olacağı için genellikle belirli tarih aralıkları, hata seviyeleri ve servis bazında filtreleme yaparak daha anlamlı analizler yapılır.


Hata Tespiti İçin journalctl Kullanımı

1. Son Boot’a Ait Kayıtları Görüntüleme

Her reboot sonrası oluşan logları görmek için:

journalctl -b

Eğer bir önceki reboot’a ait logları görmek istiyorsanız:

journalctl -b -1

2. Hata (Error) ve Kritik (Critical) Kayıtları Görüntüleme

Sadece hata kayıtlarını görmek için:

journalctl -p 3 -xb

Buradaki -p 3 parametresi hata seviyesini belirtir. Seviye seçenekleri:

  • 0 Emergency (Acil)
  • 1 Alert (Uyarı)
  • 2 Critical (Kritik)
  • 3 Error (Hata)
  • 4 Warning (Uyarı)
  • 5 Notice (Bilgilendirme)
  • 6 Info (Bilgi)
  • 7 Debug (Hata Ayıklama)

Örneğin, sadece uyarı (warning) ve daha ciddi olayları görmek için:

journalctl -p 4 -xb

3. Belirli Bir Servise Ait Logları Görme

Örneğin, SSH servisi ile ilgili hataları görüntülemek için:

journalctl -u sshd --no-pager

Eğer NGINX servisiyle ilgili hataları görmek isterseniz:

journalctl -u nginx --no-pager

Buradaki --no-pager parametresi, logları direkt ekrana dökmek için kullanılır.

Zaman Bazlı Filtreleme

4. Belirli Bir Tarihe Ait Logları Görme

Son 1 saatte oluşan logları görmek için:

journalctl --since "1 hour ago"

Belirli bir tarih aralığında logları görmek için:

journalctl --since "2025-02-01 08:00:00" --until "2025-02-01 12:00:00"

Gerçek Zamanlı Log Takibi

Tıpkı tail -f gibi, logları canlı olarak görmek için:

journalctl -f

Örneğin, Apache için canlı log izleme:

journalctl -u apache2 -f

Disk Kullanımı ve journalctl Log Yönetim

Journal logları diskte fazla yer kaplayabilir. Aşağıdaki komutlarla disk alanını kontrol edebilir ve logları temizleyebilirsiniz.

Mevcut disk kullanımını öğrenmek için:

journalctl --disk-usage

Logları belirli bir boyuta kadar sınırlandırmak için:

sudo journalctl --vacuum-size=500M

Logları belirli bir gün öncesine kadar temizlemek için:

sudo journalctl --vacuum-time=7d

Uzak Sunucudan journalctl Kullanımı

SSH üzerinden bir başka sunucunun günlük kayıtlarını görüntülemek için:

ssh user@remote-server "journalctl -u nginx -n 50"

journalctl Kullanım Özeti

KomutAçıklama
journalctlTüm günlükleri görüntüle
journalctl -bSon boot sonrası günlükleri göster
journalctl -p 3 -xbSadece hata ve kritik kayıtları göster
journalctl -u sshd --no-pagerBelirli bir servisin loglarını göster
journalctl --since "1 hour ago"Son 1 saatteki logları göster
journalctl -fGerçek zamanlı log takibi
journalctl --disk-usageLogların disk kullanımını göster
sudo journalctl --vacuum-size=500MLogları 500MB ile sınırla

journalctl, hata tespiti ve sistem yönetimi için oldukça güçlü bir araçtır. Zaman bazlı, servis bazlı ve hata seviyesine göre filtreleme yaparak sistemlerinizde oluşan sorunları hızlıca tespit edebilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

12 − 6 =