İster geliştirici ister sistem yöneticisi olun, Linux ve Unix sistemlerinizdeki hataları gidermek için günlük dosyalarını kullanmanız gerektiği bir sır değil. Günlük dosyalarını görüntülemek için grep, tail, cat veya Journalctl gibi araçları kullanırsınız. Ancak çok sayıda günlük dosyasıyla ilgili yardıma ihtiyacınız olabilir. Bu temel Unix araçları, temel metinler için uygundur ancak birçok günlük dosyasıyla uğraşırken yetersiz kalır. Sonsuz satırlık günlük dosyalarını incelemekten yorulabilirsiniz. lnav yardımcı programı kurtarmaya hazır! Temel bilgilerin ötesine geçen güçlü bir günlük dosyası görüntüleyicisidir. Zaman damgalarını, günlük düzeylerini ve diğer hayati ayrıntıları tanımlayarak günlüklerinizi anlar. Standart günlük dosyalarınızda SQLite SQL sorguları çalıştırabilir ve ihtiyaçlarınıza yönelik raporlar oluşturabilirsiniz. lnav aracını hızlı bir şekilde nasıl kurup kullanabileceğimizi görelim.
lnav yardımcı programı hangi benzersiz özellikleri sunar?
- Linux ve Unix’teki z* yardımcı programlarına benzer şekilde, günlük dosyalarınızın sıkıştırmasını gerektiği gibi anında açabilirsiniz.
- Günlük dosyası biçimini algıla.
- Dosyaları zamana göre tek bir görünümde birleştirin.
- Terminal renk desteği, hataların ve uyarıların tespit edilmesini kolaylaştırır.
- Günlük dosyalarını görüntülemek için uzak Linux ve Unix makinelerine yönelik SSH (SFTP) desteği.
- Dosyaları yeniden adlandırmayı takip edin, sorun giderme işlemi yaparken günlük dosyaları döndürüldüğünde dizinlerde yeni dosyalar bulun.
- Bir hata ve uyarı dizini oluşturabilir.
- Gerekirse JSON satırlarını gösterir.
- Önceki/sonraki hataya hızlı bir şekilde atlayabilirsiniz.
- Normal ifadeleri kullanarak arama yapın.
- Metni normal ifadeyle vurgulayın.
- Normal ifadeleri veya SQLite ifadelerini kullanarak mesajları filtreleyin.
- Güzel baskı yapılandırılmış metin.
- Zaman içindeki mesajların histogramını görüntüleyin.
- SQLite kullanarak mesajları sorgulayın.
- Kısacası, bir yardımcı program grep, cat, tail ve daha fazlası gibi temel yardımcı programların işlevlerini kapsar.
Kurulum
Kurulum komutlarını Linux ve Unix çeşitlerinize göre yazın.
Debian/Ubuntu Linux
“apt” veya “apt-get” komutunu aşağıdaki gibi deneyin:
sudo apt install lnav
CentOS/RHEL/Fedora/Rocky/Alma/Oracle Linux
Öncelikle EPEL deposunu etkinleştirin (Fedora Linux hariç), ardından lnav’ı yüklemek için aşağıdaki dnf komutunu kullanın:
sudo dnf install lnav
Arch Linux
Pacman komutunu kullanın:
sudo pacman -S lnav
Alpine Linux
Aşağıdaki apk komutunu kullanın:
apk add lnav
OpenSUSE / SUSE Linux
Aşağıdaki zypper komutunu deneyebilirsiniz:
sudo zypper install lnav
macOS lnav’ı yükleme
Öncelikle homebrew’u etkinleştirip yükleyin, ardından demleme komutunu yazın:
brew install lnav
OR try the port command:
sudo port install lnav
FreeBSD Unix lnav kurulumu
pkg komutunu aşağıdaki gibi deneyin:
pkg install lnav
lnav terminal tabanlı günlük dosyası gezgini yardımcı programını nasıl kullanırım?
Sözdizimi basittir:
# Log file
lnav /path/to/file.log
lnav /path/to/file1.log /path/to/file2.log
# Dir name
lnav /path/to/your/app/log/dir1/
lnav /path/to/your/app/log/dir1/ /var/log/
# Wildcard
lnav /var/log/nginx/app_*_error*log
lnav /var/log/nginx/app_*_error*log /var/log/*.err
##############################
# Using ssh for remote hosts #
##############################
lnav user@server-name-here:/var/log/file.log
lnav [email protected]:/var/log/
lnav [email protected]:/var/log/*.err
#########################################
# Linux system with systemd-journald use
# lnav as the pager
#########################################
journalctl | lnav
journalctl -f | lnav
journalctl -u ssh.service | lnav
Hataları bulmak için e tuşuna bastığınızda bir sonraki hataya geçilir. Önceki hataya geçmek için Shift+E tuşlarına basabilirsiniz. Benzer şekilde w ve Shift+W sırasıyla sonraki veya önceki uyarıya geçmek için kullanılır. lnav oturumundan veya komut isteminden çıkmak için q veya CTRL+c tuşlarına basın. SFTP URL’lerini açarken uzak ana bilgisayar için parola sağlanmadıysa kimlik doğrulama yapmak için SSH aracısı kullanılabilir. Dosyalarda metin aramak için / tuşuna basarak arama istemine girebilirsiniz. Arama dizesini otomatik tamamlamak için SEKME tuşuna basabilirsiniz.
Linux’ta Docker konteyner günlüğünü görüntüleme
En basit sözdizimi aşağıdaki gibidir:
docker logs container-id | lnav
docker logs -f container-id | lnav
Konteyner kimliği 611ac85cc97d ise veya “app” olarak adlandırılıyorsa, o zaman:
docker logs 611ac85cc97d | lnav
docker logs -f app | lnav
lnav’ın en son sürümü aşağıdaki docker:// URL sözdizimini de destekler:
lnav docker://{container_id_or_name}/path/to/log/file
lnav docker://{container_id_or_name}/var/dir1
lnav docker://app/var/log/
lnav docker://app/var/log/nginx/nginx.app.log
Herhangi bir komutun çıktısını izleme
Birçok komut çalışırken çıktılar ve günlükler oluşturur. Örneğin, bir şeyi derlerken make komutunun çıktısını nasıl izleyeceğiniz aşağıda açıklanmıştır:
lnav -e 'make -j8'
-e komut1, komut1 adlı bir kabuk komutunu yürütmek için kullanılır.
SQLite arayüzünü kullanma
lnav’da SQLite arayüzü kullanılarak log analizi yapılabilir. Bu öldürücü bir özellik. Tüm günlük mesajlarına, her dosya formatı için oluşturulan sanal tablolar aracılığıyla erişilebilir. Bu tablolar, günlük formatına göre adlandırılır ve her günlük mesajı ayrı bir satır olarak temsil edilir. Örneğin, bir Nginx erişim günlüğünden aşağıdaki günlük mesajını göz önünde bulundurun:
lnav /var/log/nginx/www.cyberciti.biz_https_access.log
Şimdi göreceksin
SQL komut istemini ; anahtar tuşuna basarak etkinleştirebilirsiniz. Artık basit bir sorgu yazabilirsiniz. Örneğin:
SELECT * FROM logline LIMIT 10
Ve sonuç alacaksınız:
Merak etme. SQL alanlarını ve örneklerini açıklayan bir yardım penceresi de olacaktır. SQL ifadelerini bildiğiniz sürece sorgular oluşturabilirsiniz. Bu verileri çıkarabilir ve kaydedebilirsiniz. İhtiyaçlarınızı karşılamak için komutlar ve gelişmiş SQL sözdizimi de dahil olmak üzere çok sayıda seçenek mevcuttur; bu nedenle, belge URL’sine yer işareti koymak iyi bir fikirdir.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.