[Bu, dergi sistemd sistemleri üzerinde yaygın olarak benimsenmesinden birkaç yıl önce yazılmıştır ve buna dokunmaz. Şu anda (geç 2018) , her iki aşağıda tarif journald ve (r) syslog, Debian gibi dağıtımlar kullanılır. Diğerlerinde, birlikte kullanmak istiyorsanız rsyslog'u yüklemeniz gerekebilir, ancak journal ile entegrasyon basittir.]
Konu genel olarak linux için standartlaştırıldığı için ubuntu ile ilgili olarak günlük kaydını tartışmayacağım (ve söylemek istediğim şeylerin çoğunun veya hepsinin genel olarak herhangi bir lezzet * nix için de doğru olduğuna inanıyorum, ama yapma bunun için sözümü al). Ayrıca, bu soruyu cevaplamanın ötesinde "günlüklerin nasıl okunacağı" hakkında fazla bir şey söylemeyeceğim:
İnsanların okunabilirliği için yazıldıkları varsayımı doğru mu yoksa genel olarak başka araçlar tarafından değerlendirilip kullanılıyor mu?
Sanırım bu uygulamaya bağlıdır, ancak genel olarak, en azından sistem günlüğüne (aşağıya bakınız) girenlere ilişkin olarak, insanlar tarafından okunabilir olmalıdır. "Benim için anlamlı" başka bir konu, lol. Bununla birlikte, belirli amaçlarla standart araçlarla (grep, awk, vb.) Ayrıştırmayı kolaylaştıracak şekilde yapılandırılabilirler.
Her şeyden önce, kendi günlük kaydını yapan uygulamalar ile sistem kaydedicisini kullanan uygulamalar arasında bir ayrım vardır. Apache varsayılan olarak eskidir, ancak daha sonra yapmak üzere yapılandırılabilir (ki çoğu insanın istenmeyen olduğunu düşünürüm). Kendi günlük kaydını yapan uygulamalar, dosya (lar) için herhangi bir konum kullanarak herhangi bir şekilde yapabilir, bu nedenle söylenecek çok şey yoktur. Sistem günlüğü genellikle olarak adlandırılır syslog
.
syslog
"Syslog" gerçekten genel olarak syslogd adı verilen bir daemon işlemi ile uygulanan bir standarttır (d daemon için!). Ubuntu da dahil olmak üzere linux üzerinde şu anda kullanılan baskın syslog arka plan programıdır . Rsyslogd çok şey yapabilir, ancak çoğu dağıtımda kutunun dışında yapılandırıldığı gibi, öğeleri düz metin dosyalarına ayıran geleneksel bir syslog öykünür . Bunun için dokümantasyon bulabilirsiniz (dikkat edin, bir de vardır , ancak bu sadece ve gibi kaynak paketinden bildirimler ). Oradaysa, html'dir, ancak Stack Exchange yerel dosya bağlantılarının yerleştirilmesine izin vermez:rsyslogd
/var/log
/usr/share/doc/rsyslog-doc-[version]
/usr/share/doc/rsyslog-[version]
NEWS
ChangeLog
file://usr/share/doc/rsyslog-doc/index.html
Böylece kopyalamayı yapıştırabilirsiniz. Eğer orada değilse, kurulu olmayan ayrı bir paketin parçası olabilir. Paketleme sisteminizi sorgulayın (örn apt-cache search rsyslog | grep doc
.).
Yapılandırma olduğu /etc/rsyslog.conf
bir manuel sayfası vardır ki, man rsyslog.conf
manuel sayfa ince gönderme yapıyor iken rağmen, bir giriş olarak daha az nüfuz olabilir. Neyse ki, stok rsyslog.conf'un temelleri, etrafında birçok tanıtım ve öğretici bulunan geleneksel syslog.conf'unkilerle uyumludur. Bu , örneğin; Ne yerel rsyslog.conf de bakan ederken, bunların birinden götürmek isteyen bir anlayış tesisler ve öncelikler ( "öncelik" bazen olarak anılır loglevel), çünkü bunlar yukarıda belirtilen sistem günlüğü standardının bir parçasıdır. Bu standardın önemli olmasının nedeni, rsyslog'un eşyalarını çekirdek yoluyla alması ve çekirdeğin uyguladığı standarttır.
$
Rsyslog.conf dosyasındaki yönergelerle ilgili olarak , bunlar rsyslog'a özgüdür ve bu isteğe bağlı doc paketini yüklerseniz, onlara bir kılavuz bulacaksınız rsyslog_conf_global.html
.
İyi eğlenceler ... Uygulamaların sistem kaydedicisini nasıl kullandığını merak ediyorsanız, man logger
ve bölümüne bakın man 3 syslog
.
Kütük Dönüşü
Günlükleri döndüren normatif araçlar, logrotate
(ve a man logrotate
) adında bir araç aracılığıyla yapılır . Logrotate kullanmanın normatif yöntemi, bu şekilde yapılması gerekmese de cron artalan sürecidir (örneğin, masaüstünüzü her gün kapatma eğilimindeyseniz, sistem günlüğü başlamadan önce bir kez önyüklemede de yapabilirsiniz , ancak, açıkçası, dosya sistemi rw monte edildikten sonra).
Burada logrotasyon yapmak için iyi bir giriş var . Not logrotate sadece syslog şeyler için değil , hiç herhangi bir dosya ile kullanılabilir. Temel yapılandırma dosyasıdır /etc/logrotate.conf
, ancak yapılandırma bir "include" yönergesine sahip olduğundan, çoğu şey /etc/logrotate.d
dizindeki tek tek dosyalara girer (burada d dizin içindir, daemon değil; logrotate bir daemon değildir).
Logrotate kullanırken göz önünde bulundurulması gereken önemli bir şey, bir uygulama, günlük dosyası "döndürüldüğünde", başka bir deyişle, uygulama çalışırken - nasıl hareket edeceğidir. WRT (r) syslogd, bu günlüğe yazmayı durduracaktır (bunun için bir güvenlik gerekçesi olduğunu düşünüyorum). Bununla baş etmenin genel yolu, syslog'a yeniden başlamasını (ve tüm dosyalarını yeniden açmasını) söylemektir, bu yüzden postrotate
SysUP daemon'a SIGHUP gönderen log dosyalarındaki bir yönerge göreceksiniz .