journalctl ile öncelik seviyesine göre filtreleme

0 Ответов 4 Просмотра
Оценившие
Участники
Автор темы #1
journalctl ile öncelik seviyesine göre filtreleme

Bu yazıda, systemd’nin günlük kaydını filtrelemek için öncelik (priority) seviyelerinin nasıl kullanıldığını somut örneklerle ele alacağım. Özellikle kritik ve hata düzeyindeki olayları hızlıca ayırt etmek, günlük hacmini azaltmak ve sorun analizini hızlandırmak için pratik çözümler paylaşacağım.


Giriş ve kavramsal çerçeve
journalctl, systemd-journald tarafından oluşturulan merkezi günlük verilerini sorgulamak için kullanılan güçlü bir araçtır. Her giriş, genellikle bir öncelik seviyesiyle sınırlanabilir. Öncelik seviyeleri şu şekilde sınıflandırılır: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7). Bu sayılar, log mesajlarının kritiklik düzeyini belirtir ve filtreleme için doğrudan kullanılabilir.

Ana kullanım kalıbı ve temel örnekler
  • Belirli bir minimum öncelik ile filtreleme: sadece belirli veya daha kritik kayıtları görmek için -p/--priority bayrağına bir sayı veya bir dize verilir.
  • Örnek: yüksek öncelikli hatalar için err seviyesinden yukarısı

journalctl -p err
  • Veya dize kullanımı ile: journalctl -p err..emerg
  • İlk örneğin amacı, info veya debug gibi düşük öncelikleri göz ardı etmektir.


  • Zaman aralığıyla birlikte öncelik filtreleme: belli bir dönemin içinde yalnızca belli seviyedeki olayları görmek.
  • Örnek: son 24 saat içinde kritik veya hata kayıtları

journalctl -p err.. emerg --since "24 hours ago"
  • veya belirli bir tarih aralığı

journalctl -p warning --since "2024-11-01" --until "2024-11-02"

  • Kanal ve birim bazında filtreleme ile öncelik birleştirme:
  • Örnek: herhangi bir birimde err seviyesindeki hatalar

journalctl -p err /var/log/journal/.. (etiketleme ile birlikte birim filtrelemesi ayrıca --unit kullanılarak da yapılır)
  • Belirli bir birimin sadece uyarı ve daha kritik mesajları:

journalctl -p warning --unit nginx.service

КОД
123456789# Temel filtreyi birleştirme örnekleri
[b]1) Son 12 saat içinde sadece hata ve daha kritik mesajlar[/b]
journalctl -p err.. emerg --since "12 hours ago"

[b]2) Geçerli önyüklemeyle sınırlı ve kritik+alert[/b]
journalctl -p crit.. alert -b

[b]3) Belirli bir birim için debug ve üstü kayıtlar (geliştirme amacıyla)[/b]
journalctl -p debug --unit ssh.service


Çıktı yönetimi ve pratik ipuçları
  • Çıktıyı daha yönetilebilir kılmak için -n veya --since ile daraltma yapın. Özellikle kırpılmış özetler veya başlıklar için -n 200 gibi.
  • -f ile takip modu, gerçek zamanlı akış için kullanışlıdır; filtreler korunur ve yeni kayıtlar akıp gider.
  • Raporlama amacıyla çıktıyı daha temiz görmek için --no-pager ve --output fields/messages gibi ayarlar kullanabilirsiniz.
  • Eğer loglar çok büyükse, filtreyle birlikte zaman damgasını ve birimi de görmek için --output short-precise veya json ile daha detaylı yapıyı elde edin.


Uygulama sınırları ve dikkat edilecek noktalar
  • Öncelik bandını seçerken, -p parametresi yalnızca mesajların kritiklik düzeyini belirler; içerik veya kaynak gibi diğer filtreler için ek seçenekler kullanın.
  • Birden çok filtreyi birleştirirken ardışık komutlar yerine tek bir komutla çalıştırmak performansı artırır.
  • Mikroservis tabanlı ortamlarda birim bazlı filtrelemeyi --unit ile güvenli bir şekilde kullanmak, çapraz log gürültüsünü azaltır.


Kullanım senaryoları ve deneyimleriniz: journalctl ile öncelik filtrelemesini kendi sistemlerinizde hangi senaryolarda, nasıl bir akışla uyguladınız? Özellikle üretim ortamlarında hangi kombinasyonlar en verimli sonuçları verdi?

Чтобы ответить, необходимо войти в систему.

Пользователи, просматривающие эту тему (Всего: 1, Участники: 1, Гости: 0)
Всего: 1 (участники: 1, гости: 0)
0 цитат выбрано