Günlük Dosyalarında Çoklu Desen Arama ile Verimli İnceleme

0 Réponses 3 Vues
Votants
Participants
Auteur de la discussion #1
grep ile çoklu günlükte desen arama

Günlük dosyalarında birden fazla deseni efektif biçimde aramak, sorun köklerini hızlı tespit etmek ve operasyonel aksaklıkları anlamak için temel bir beceri. Özellikle çok sayıda log kaydı bir araya geldiğinde hangi desenin hangi olayla ilişkili olduğunu ayırmak zorlaşabilir. Bu yazıda, grep ile bu tür çoklu aramaları nasıl yapılacağını, farklı gereksinimler için ipuçlarını ve pratik örnekleri paylaşacağım.


1) Temel çoklu desen arama
  • grep -E "desen1|desen2" dosya

Aynı satırda birden çok deseni kapsayacak şekilde birer alternation kullanılır. Desenlerin birbiriyle karışmaması için dikkatli gruplama gerekir. Örneğin:
  • grep -E "ERROR|FATAL|WARN" /var/log/syslog

Bu yaklaşım, kritik seviyedeki olayları tek bir komutla çekip hızlı bir özet sağlar.

2) Dosya kümesi üzerinde arama
  • grep -E "desen1|desen2" /var/log/*.log
  • grep -E -r "desen1|desen2" /var/log

Kök dizinini genişletirken -r (veya --recursive) ile alt dizinlerdeki tüm dosyaları tarayabiliriz. Ancak izinler ve gereksinimler burada belirleyici oluyor; çok büyük dizinlerde performans için hedef kısıtlar gerekebilir.

3) Dosya başına ayrı çıktı almak
  • grep -H -E "desen1|desen2" /var/log/*.log
  • grep -h -E "desen1|desen2" /var/log/*.log

-H çıktı dosya adını, -h ise dosya adını yazdırmaz; çoklu dosya üzerinde çalışırken hangi satır hangi dosyadan geldiğini görmek için faydalı.

4) Satır numarasıyla birlikte
  • grep -n -E "desen1|desen2" dosya

-i seçenekleriyle küçük/büyük harfe duyarsız arama yapabilirsiniz:
  • grep -i -E "desen1|desen2" dosya


5) Desenleri daha güvenli gruplama
  • Özellikle parantez dışında özel karakterler varsa: grep -E "(desen1|desen2)" dosya

Bu, alternatifleri daha belirginleştirir ve yanlış eşleşmeleri azaltır.

6) Belirli alanlar veya satır türleriyle sınırlama
  • Eğer hata kodu veya belirli etiketli girdileri arıyorsanız:
  • grep -E "ERROR|ERR|Fail" /var/log/nginx/access.log
  • Ayrıca satır içindeki belirli alanı hedeflemek için: grep -E "level=(error|warn)|status=5[0-9]{2}" dosya


7) Performans ipuçları
  • Büyük loglar için dosyayı önce sıkıştırılmış halde taramak yerine belirli zaman aralıklarını düşünün.
  • zgrep ile gzipli dosyalarında arama yapabilirsiniz.
  • -F ile sabit dizgileri hızlı arama yapılabilir; ancak desenleriniz regex ise -E gerekliliğini kaybetmez.


8) Örnek senaryo
  • Çok sayıda günlükte “timeout” ve “authentication failure” olaylarını aynı anda izlemek:
  • grep -E "timeout|authentication failure" /var/log/*log
  • Sıralı ve hızlı tespit için tarih aralığına göre filtreleme:
  • grep -E "2026-11-01|2026-11-02" /var/log/app.log | grep -E "timeout|authentication failure"


Bu yöntemler, günlük dosyalarınızdaki çoklu desen aramalarını daha sistematik ve verimli kılar. Kullandığınız log formatı veya özel yapılandırmalar varsa, sizin için daha özelleştirilmiş desenler önerebilirim.

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 4, Membres: 4, Invités: 0)
Total: 4 (membres: 4, invités: 0)
0 citations sélectionnées