Konuyu Açan
#1
grep ile günlük filtreleme
Giriş ve bağlam
Sistem günlükleri (loglar) hızla büyüyebilir ve içinden ilginç olayları çıkarmak, hataları tespit etmek veya güvenlik olaylarını izlemek için filtreleme gerekir. grep, metin içeriğinde desen arayan temel araçlardan biridir ve günlük analizi için pratik bir başlangıç noktası sağlar. Burada basit kullanımdan başlayıp, birlikte daha karmaşık kombinasyonları kuracağız: birden çok deseni aynı anda kontrol etmek, belirli zaman aralıklarındaki kayıtları izlemek ve günlük dosyalarını dönüştürmeden hızlıca analiz etmek.
Temel yaklaşım: desene göre arama
Gelen kutu günlük dosyasında belirli bir hatayı bulmak için:
Bu yaklaşım, tek satır üzerinde belirli bir kelime veya ifade arar. Ancak günlükler genelde zaman damgaları içerir; bu yüzden daha kırpılmış aramalar için regex kullanımı faydalı olur. Örneğin:
Burada -E ile genişletilmiş regex kullanıyoruz ve iki farklı deseni aynı anda yakalıyoruz.
Zaman aralığına göre filtreleme
Günlüklerin çoğu zaman damgası içerir. Belirli bir tarih aralığını hedeflemek için tarih desenini kullanabiliriz:
Dikkat: tarih formatı sistemden sisteme değişebilir. Ayrıca logrotate nedeniyle günlükler sıkıştırılmış olabilir; bu durumda zgrep kullanılır:
Çoklu dosya ve izleme
Bir dizindeki tüm günlükleri taramak için:
Gerçek zamanlı izleme için tail ile birlikte kullanabiliriz:
--line-buffered, akış halinde çıktı üretmesini sağlar.
İpucu ve riskler
Sonuç ve kapanış
grep ile günlük filtreleme, hızlı başlangıç için yeterince esnek ve güçlüdür. Temel desen aramalarından zaman damgası odaklı filtrelere, çoklu desenlere ve gerçek zamanlı izlemlere kadar geniş bir yelpazeyi kapsar. Belirli bir günlük yapılandırması veya özel deseniniz varsa, onunla uyumlu bir çözüm üretelim.
Giriş ve bağlam
Sistem günlükleri (loglar) hızla büyüyebilir ve içinden ilginç olayları çıkarmak, hataları tespit etmek veya güvenlik olaylarını izlemek için filtreleme gerekir. grep, metin içeriğinde desen arayan temel araçlardan biridir ve günlük analizi için pratik bir başlangıç noktası sağlar. Burada basit kullanımdan başlayıp, birlikte daha karmaşık kombinasyonları kuracağız: birden çok deseni aynı anda kontrol etmek, belirli zaman aralıklarındaki kayıtları izlemek ve günlük dosyalarını dönüştürmeden hızlıca analiz etmek.
Temel yaklaşım: desene göre arama
Gelen kutu günlük dosyasında belirli bir hatayı bulmak için:
KOD
1grep "ERROR" /var/log/syslogBu yaklaşım, tek satır üzerinde belirli bir kelime veya ifade arar. Ancak günlükler genelde zaman damgaları içerir; bu yüzden daha kırpılmış aramalar için regex kullanımı faydalı olur. Örneğin:
KOD
1grep -E "ERROR|CRITICAL" /var/log/syslogBurada -E ile genişletilmiş regex kullanıyoruz ve iki farklı deseni aynı anda yakalıyoruz.
Zaman aralığına göre filtreleme
Günlüklerin çoğu zaman damgası içerir. Belirli bir tarih aralığını hedeflemek için tarih desenini kullanabiliriz:
KOD
1grep -E "2024-11-0[1-9]|2024-11-1[0-5]" /var/log/syslogDikkat: tarih formatı sistemden sisteme değişebilir. Ayrıca logrotate nedeniyle günlükler sıkıştırılmış olabilir; bu durumda zgrep kullanılır:
KOD
1zgrep "WARNING" /var/log/syslog.1.gzÇoklu dosya ve izleme
Bir dizindeki tüm günlükleri taramak için:
KOD
1grep -R "failed user" /var/logGerçek zamanlı izleme için tail ile birlikte kullanabiliriz:
KOD
1tail -f /var/log/auth.log | grep --line-buffered "Accepted password"--line-buffered, akış halinde çıktı üretmesini sağlar.
İpucu ve riskler
- Deseni dikkatli seçin; ifadeleriniz kısmi eşleşmelere yol açabilir. Örneğin "ERR" yalnızca kısmı eşleşmelere neden olabilir.
- Büyük dosyaları işlerken -F (fixed strings) kullanmak performansı artırır:
KOD
1grep -F "ERROR" /var/log/syslog- Büyük çıktıların yönetimi için çıktıyı dosyaya yönlendirmek veya awk/sed ile biçimlendirmek faydalıdır:
KOD
1grep -E "ERROR|CRITICAL" /var/log/syslog | awk '{print $1, $2, $3, $0}' > errors.logSonuç ve kapanış
grep ile günlük filtreleme, hızlı başlangıç için yeterince esnek ve güçlüdür. Temel desen aramalarından zaman damgası odaklı filtrelere, çoklu desenlere ve gerçek zamanlı izlemlere kadar geniş bir yelpazeyi kapsar. Belirli bir günlük yapılandırması veya özel deseniniz varsa, onunla uyumlu bir çözüm üretelim.
