Autor del tema
#1
grep ile kaynak kullanımını izleme
[giriş]
Sistem performansını anlamak ve darboğazları tespit etmek için hızlı ve güvenilir bir yöntem arandığında, grep’i doğrudan kaynak kullanımını izlemek için kullanmak pek çoğumuzun aklına gelmez. Oysa dosya içeriğinden hata mesajlarına, log satırlarından işlemci veya bellek kullanımıyla ilgili kalıplara kadar çeşitli metinlerden anlam çıkarmak için grep gücü ve doğru iş akışı birleştiğinde çok faydalı olabilir. Bu yazıda, grep ile kaynak kullanımını izleme konusunda pratik bir yaklaşım ve güvenilir ipuçları paylaşacağım.
[neredeyse her durumda kullanılan temel akış]
İzleme ihtiyacı genelde log dosyalarındaki uyarı ve hataları yakalamakla başlar. Örneğin /var/log/syslog ya da dmesg çıktılarında CPU, bellek veya IO ile ilgili olağanüstü durumları trajektörel olarak görmek için belirli kalıpları arayabiliriz. Aşağıdaki örnekler, bu kalıpları grep ile yakalamanın temel yöntemlerini gösterir:
[pratik teknikler ve güvenilirlik]
[örnek yapılandırma önerisi]
Bir sunucuda periyodik olarak bellek kullanımını izlemek için günlükteki belirli uyarıları toplamak amacıyla bir tetikleyici seti kurabiliriz:
[sonuç ve kapanış]
grep tek başına gerçek zamanlı izleme aracı değildir, fakat log tabanlı kaynak kullanımı olaylarını yakalamak için çok değerli bir filtre görevi görür. Özellikle düşük seviyeli hata güncellemelerini veya geçmiş olayları hızlıca tespit etmek için etkili bir başlangıç noktasıdır. İstersen belirli dağıtım için uygun kalıpları birlikte tayin edelim veya gerçek zamanlı izleme için awk, watch veya grafana ile entegrasyon yollarını da konuşalım. Siz hangi senaryoda daha sık grep kullanıyorsunuz?
[giriş]
Sistem performansını anlamak ve darboğazları tespit etmek için hızlı ve güvenilir bir yöntem arandığında, grep’i doğrudan kaynak kullanımını izlemek için kullanmak pek çoğumuzun aklına gelmez. Oysa dosya içeriğinden hata mesajlarına, log satırlarından işlemci veya bellek kullanımıyla ilgili kalıplara kadar çeşitli metinlerden anlam çıkarmak için grep gücü ve doğru iş akışı birleştiğinde çok faydalı olabilir. Bu yazıda, grep ile kaynak kullanımını izleme konusunda pratik bir yaklaşım ve güvenilir ipuçları paylaşacağım.
[neredeyse her durumda kullanılan temel akış]
İzleme ihtiyacı genelde log dosyalarındaki uyarı ve hataları yakalamakla başlar. Örneğin /var/log/syslog ya da dmesg çıktılarında CPU, bellek veya IO ile ilgili olağanüstü durumları trajektörel olarak görmek için belirli kalıpları arayabiliriz. Aşağıdaki örnekler, bu kalıpları grep ile yakalamanın temel yöntemlerini gösterir:
- Cpu veya bellek aşımını gösteren mesajlar: grep -Ei "cpu.*(throttle|util|MHz|percent|%|usage)|memory|.mem|swap" /var/log/syslog /var/log/dmesg
- Out-of-memory (OOM) olaylarını hedeflemek: grep -Ei "oom|out of memory|killed process" /var/log/syslog
- Disk IO veya eşzamanlı yoğun yazma/okuma kalıpları: grep -Ei "read|write|IO|irq|disk" /var/log/syslog
- Belirli bir süreç için kaynak uyarıları: ps aux | grep && grep -i "memory|cpu" /proc/[pid]/status 2>/dev/null
[pratik teknikler ve güvenilirlik]
- Doğru kalıp seçimi: Kaynak kullanımını ölçmek için loglarda geçen ifadeler dağıtım ve sürüme göre değişir. Örneğin bazı sistemler “CPU_IDLE” veya “irq” gibi terimler yerine farklı mesajlar kullanabilir. Bu nedenle önce logların güncel bölümünü incelemek ve ihtiyaca uygun kelimeleri belirlemek gerekir.
- Çok satırlı durumları tarama: Tek satır üzerinde yoğunlaşmış mesajlar bile olsa, grep ile -A ve -B seçenekleriyle ilgili bağlamı çekebiliriz. Örneğin: grep -i -n -E "memory|mem|swap" /var/log/syslog -A 3 -B 2
- Günlükleri zaman filtrelemek: Tarih ve saat bağlamı, belirli bir zamandaki olayları izlemek için önemlidir. Örneğin: grep -i "Aug 12" /var/log/syslog | grep -i "memory"
- Log dosyalarının sıkıştırılmış olması: logrotate veya arşivler sıkıştırılmış olabilir. zgrep veya bzgrep ile arama yapabilirsiniz: zgrep -E "memory|oom" /var/log/syslog*.gz
- Sonuçları eyleme dönüştürmek: grep çıktısını awk ile işleyip yalnızca yüzde veya MB cinsinden değeri çıkarmak mümkündür. Örnek: grep -i "memory" /var/log/syslog | awk '{print $1, $2, $5}'.
[örnek yapılandırma önerisi]
Bir sunucuda periyodik olarak bellek kullanımını izlemek için günlükteki belirli uyarıları toplamak amacıyla bir tetikleyici seti kurabiliriz:
- Bellek kullanımını gösteren kayıt kalıplarını belirle.
- Cron ile her 5 dakikada bir log dosyasını tarayan bir komut yaz.
- Sonuçları ayrı bir dosyada biriktir veya bir uyarı sistemiyle entegre et.
[sonuç ve kapanış]
grep tek başına gerçek zamanlı izleme aracı değildir, fakat log tabanlı kaynak kullanımı olaylarını yakalamak için çok değerli bir filtre görevi görür. Özellikle düşük seviyeli hata güncellemelerini veya geçmiş olayları hızlıca tespit etmek için etkili bir başlangıç noktasıdır. İstersen belirli dağıtım için uygun kalıpları birlikte tayin edelim veya gerçek zamanlı izleme için awk, watch veya grafana ile entegrasyon yollarını da konuşalım. Siz hangi senaryoda daha sık grep kullanıyorsunuz?
