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
Komut | Açıklama |
---|---|
journalctl | Tüm günlükleri görüntüle |
journalctl -b | Son boot sonrası günlükleri göster |
journalctl -p 3 -xb | Sadece hata ve kritik kayıtları göster |
journalctl -u sshd --no-pager | Belirli bir servisin loglarını göster |
journalctl --since "1 hour ago" | Son 1 saatteki logları göster |
journalctl -f | Gerçek zamanlı log takibi |
journalctl --disk-usage | Logların disk kullanımını göster |
sudo journalctl --vacuum-size=500M | Logları 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.