Bu kılavuz, Systemd’nin journalctl yardımcı programının temellerini ve çeşitli komutlarını açıklar. Linux’ta masaüstü ve sunucu günlüklerinde sorun giderme için bu komutları kullanabilirsiniz. Farklı örneklerle Systemd Günlüklerini görüntülemek ve analiz etmek için journalctl’yi bu şekilde kullanabilirsiniz.
giriş
Birçoğu Systemd’nin iyi olmadığını, sisteme ağır geldiğini ve her zaman tartışılan bir konu olduğunu söyler. Ancak, bir sistemi yönetmek ve sorun gidermek için iyi bir dizi yardımcı program sağladığını inkar edemezsiniz. GUI’si olmayan bozuk bir sistemle karşılaştığınızı hayal edin. Muhtemelen önyükleme ve GRUB’u da mahvettiniz. Bu tür senaryolarda veya genel olarak – CANLI bir sistemden önyükleme yapabilir, Linux bölümünüzü bağlayabilir ve sorunu öğrenmek için Systemd günlüklerini keşfedebilirsiniz.
Systemd’nin aşağıdaki gibi üç temel bileşeni vardır –
- systemd: Linux işletim sistemleri için sistem ve servis yöneticisi.
- systemctl: Sistem ve hizmet yöneticisinin durumunu iç gözlem ve kontrol etme komutu.
- systemd-analyze: Sistem başlatma performans istatistiklerini sağlar ve diğer durum ve izleme bilgilerini sistemden ve hizmet yöneticisinden alır
Bu üçünün dışında, systemd’nin sunduğu journald, logind, networkd gibi ek hizmetler de vardır. Bu kılavuzda systemd’nin journald hizmetinden bahsedeceğiz.
journald – systemd günlük arka plan programı
Tasarım gereği systemd, işlemlerden, uygulamalardan vb. gelen tüm işletim sistemi günlüklerini teslim etmenin merkezi bir yolunu sağlar. Tüm bu günlük kaydı olayları, systemd’nin günlük ve arka plan programı tarafından işlenir. Journald daemon, Linux işletim sistemlerinin her yerinden tüm günlükleri toplar ve temaları dosyalarda ikili veri olarak depolar.
Olayların merkezi olarak günlüğe kaydedilmesinin avantajları, ikili veriler olarak sistem sorunları çoktur. Örneğin, sistem günlükleri metin olarak değil ikili olarak depolandığından – çeşitli ihtiyaçlar için metin, JSON nesneleri gibi birçok şekilde çevirebilirsiniz. Ayrıca, günlüklerin tarih/saat manipülasyonu yoluyla günlükler sırayla saklandığından, tek bir olayı izlemek çok kolaydır.
Journald’in topladığı günlük dosyalarının binlerce satır olduğunu ve her olay, her önyükleme için güncellendiğini unutmayın. Bu nedenle, uzun süredir çalışan bir Linux işletim sisteminiz varsa günlük günlüklerinin boyutu GB cinsinden olmalıdır. Günlükler binlerce olduğundan, sistem sorunları hakkında daha fazla bilgi edinmek için temel komutlarla filtrelemek daha iyidir.
Journald Yapılandırma Dosyası
Journald’nin yapılandırma dosyası aşağıdaki yolda bulunur. Günlüğe kaydetmenin nasıl gerçekleştiğine ilişkin çeşitli bayraklar içerir. Dosyaya bir göz atabilir ve gerekli değişiklikleri yapabilirsiniz. Ancak ne yaptığınızı bilmiyorsanız bu dosyayı değiştirmemenizi tavsiye ederiz.
/etc/systemd/journald.conf
Journald’in ikili günlük dosyalarını sakladığı yer
Journald, günlükleri ikili biçimde saklar. Bu yol altındaki bir dizinde saklanırlar.
/var/log/journal
Örneğin, aşağıdaki yolda bugüne kadarki tüm sistem günlüklerini içeren bir dizin vardır.
Bu dosyaları açmak için cat komutunu veya nano veya vi’yi kullanmayın. Düzgün bir şekilde görüntülenemez .
Systemd Günlüklerini Görüntülemek ve Analiz Etmek için journalctl kullanın
Temel günlük komutu
Günlük arka plan programını kullanarak günlükleri görüntülemek için temel komut şudur:
journalctl
Bu size tüm uygulamalardan ve işlemlerden hatalar, uyarılar vb. dahil olmak üzere tüm günlük girişlerini verir. En eski günlük en üstte ve mevcut günlükler en altta olacak şekilde listeyi gösterir. Satır satır ilerlemek için ENTER tuşuna basmaya devam etmeniz gerekir. Kaydırmak için PAGE UP ve PAGE DOWN tuşlarını da kullanabilirsiniz. Bu görünümden çıkmak için q düğmesine basın.
Saat dilimleri için günlük girişleri nasıl görüntülenir?
Varsayılan olarak, journalctl geçerli sistem saat dilimindeki günlük zamanını gösterir. Ancak, aynı günlüğü farklı bir saat dilimine dönüştürmek için komutunuzda saat dilimini kolayca sağlayabilirsiniz. Örneğin, günlükleri UTC’de görüntülemek için aşağıdaki komutu kullanın.
journalctl --utc
Günlük günlüklerinde yalnızca hatalar, uyarılar vb. nasıl görüntülenir?
Bir sistemin ürettiği günlüklerin farklı öncelikleri vardır. Bazı günlükler göz ardı edilebilecek bir uyarı olabilir veya bazıları kritik hatalar olabilir. Uyarılara değil, yalnızca hatalara bakmak isteyebilirsiniz. Bu, aşağıdaki komutu kullanarak da mümkündür.
Acil sistem mesajlarını görüntülemek için şunu kullanın:
journalctl -p 0
Hata kodları
0: emergency 1: alerts 2: critical 3: errors 4: warning 5: notice 6: info 7: debug
Hata kodunu belirttiğinizde, o koddan ve üzeri tüm mesajları gösterir. Örneğin, aşağıdaki komutu belirtirseniz, önceliği 2, 1 ve 0 olan tüm mesajları gösterir.
journalctl -p 2
Belirli bir önyükleme için günlük nasıl görüntülenir?
Journalctl komutunu çalıştırdığınızda, çalıştırmakta olduğunuz geçerli oturumdaki geçerli önyüklemeden gelen bilgileri gösterir. Ancak geçmiş başlatmalarla ilgili bilgileri de görüntülemek mümkündür.
Günlükler her yeniden başlatmada güncellenmeye devam eder. Journald, günlükleri farklı önyüklemelerde takip eder. Önyükleme günlüklerini görüntülemek için aşağıdaki komutu kullanın.
journalctl --list-boots
- İlk sayı, söz konusu önyüklemeyi analiz etmek için bir sonraki komutta kullanabileceğiniz benzersiz günlük önyükleme parça numarasını gösterir.
- İkinci sayı, komutlarda da belirtebileceğiniz önyükleme kimliğidir.
- Sonraki iki tarih, saat kombinasyonu, ilgili dosyada saklanan günlüklerin süresidir. Belirli bir tarih ve saatten bir günlük veya hata bulmak istiyorsanız bu çok kullanışlıdır.
Belirli bir önyükleme numarasını görüntülemek için, aşağıdaki gibi ilk numarayı veya önyükleme kimliğini görüntüleyin.
journalctl -b -45
journalctl -b 8bab42c7e82440f886a3f041a7c95b98
Ekranınızdaki systemd hata mesajlarının açıklamasını ekleyebilen -x anahtarını da kullanabilirsiniz. Bu, belirli durumlarda bir cankurtarandır.
journalctl -xb -p 3
Belirli bir zaman, tarih süresi için günlükleri nasıl görüntüleyebilirsiniz?
Journalctl, saat ve tarih manipülasyonu için komutun kendisinde “ingilizce” benzeri bir argüman sağlayacak kadar güçlüdür.
–since anahtarını “dün”, “bugün”, “yarın” veya “şimdi” kombinasyonlarıyla kullanabilirsiniz.
Aşağıdaki farklı komut örneklerinden bazıları. Bunları ihtiyacınıza göre değiştirebilirsiniz. Aşağıdaki komutlardaki tarih, saat formatı “YYYY-AA-GG SS:DD:SS” şeklindedir.
journalctl --since "2020-12-04 06:00:00"
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"
Yukarıdakileri hata seviyesi anahtarlarıyla da birleştirebilirsiniz.
Çekirdeğe özgü günlükleri nasıl görebilirim?
Linux Çekirdeği mesajları, günlüklerinden çıkarılabilir. Geçerli önyüklemeden Çekirdek mesajlarını görüntülemek için yalnızca aşağıdaki komutu kullanın.
journalctl -k
Bir hizmet için günlükleri nasıl görebilirim, PID
Belirli günlükleri bir systemd hizmet biriminden yalnızca günlüklerden filtreleyebilirsiniz. Örneğin, NetworkManager hizmetinden günlükleri bulmak için aşağıdaki komutu kullanın.
journalctl -u NetworkManager.service
Servis ismini bilmiyorsanız aşağıdaki komutu kullanarak sisteminizdeki systemd servislerini listeleyebilirsiniz.
systemctl list-units --type=service
Bir kullanıcı, grup için günlükler nasıl görüntülenir?
Sunucu günlüklerini analiz ediyorsanız, bu komut birden çok kullanıcının oturum açtığı durumlarda yardımcı olur. İlk önce kullanıcı adından aşağıdaki komutu kullanarak kullanıcı kimliği hakkında bilgi edinebilirsiniz. Örneğin, “hata ayıklama noktası” kullanıcısının kimliğini öğrenmek için –
id -u debugpoint
Ardından, kullanıcı tarafından oluşturulan günlükleri görüntülemek için bu kimliği _UID anahtarıyla kullanın.
journalctl _UID=1000 --since today
Benzer şekilde, kullanıcı grupları için aynı şeyi bulmak için _GID anahtarını kullanın.
Bir yürütülebilir dosya için günlükler nasıl görüntülenir?
Belirli bir programın veya yürütülebilir dosyanın günlüklerini de bulabilirsiniz. Örneğin gnome-shell mesajlarını öğrenmek istiyorsanız aşağıdaki komutu çalıştırabilirsiniz.
journalctl /usr/bin/gnome-shell --since today
Kapanış notları
Umarız bu kılavuz, Linux masaüstünüzde veya sunucu sorunlarını gidermede analiz sistem günlüklerini görüntülemek için journalctl kullanmanıza yardımcı olur. Komutları nasıl kullanacağınızı biliyorsanız, sistem günlüğü yönetimi son derece güçlüdür, hata ayıklama süresi boyunca hayatınızı biraz kolaylaştırır.
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.