Unix / Linux - Sistem Günlüğü
Bu bölümde, Unix'te sistem oturum açma hakkında ayrıntılı olarak tartışacağız.
Unix sistemleri, hayal edebileceğiniz hemen hemen her şeyi kaydetmenize ve ardından ihtiyaç duyduğunuz bilgileri almak için günlükleri değiştirmenize olanak tanıyan çok esnek ve güçlü bir kayıt sistemine sahiptir.
Unix'in birçok sürümü, adı verilen genel amaçlı bir günlük kaydı olanağı sağlar. syslog. Bilgilerin kaydedilmesi gereken bireysel programlar, bilgileri syslog'a gönderir.
Unix syslog , ana bilgisayar tarafından yapılandırılabilir, tek tip bir sistem günlük kaydı olanağıdır. Sistem, programı çalıştıran merkezi bir sistem günlük kaydı sürecini kullanır/etc/syslogd veya /etc/syslog.
Sistem kaydedicinin çalışması oldukça basittir. Programlar, günlük girdilerini yapılandırma dosyasına başvuran syslogd'ye gönderir./etc/syslogd.conf veya /etc/syslog ve bir eşleşme bulunduğunda, günlük mesajını istenen günlük dosyasına yazar.
Anlamanız gereken dört temel syslog terimi vardır -
Sr.No. | Terim ve Açıklama |
---|---|
1 | Facility Günlük mesajını gönderen uygulamayı veya işlemi açıklamak için kullanılan tanımlayıcı. Örneğin, posta, çekirdek ve ftp. |
2 | Priority Mesajın öneminin bir göstergesi. Seviyeler, hata ayıklama bilgilerinden kritik olaylara kadar syslog içinde kılavuz olarak tanımlanır. |
3 | Selector Bir veya daha fazla tesis ve seviyenin birleşimi. Gelen bir olay bir seçiciyle eşleştiğinde, bir eylem gerçekleştirilir. |
4 | Action Bir seçiciyle eşleşen gelen bir mesaja ne olur - Eylemler mesajı bir günlük dosyasına yazabilir, mesajı bir konsola veya başka bir cihaza yansıtabilir, mesajı oturum açmış bir kullanıcıya yazabilir veya mesajı başka bir syslog sunucusuna gönderebilir. |
Sistem Günlüğü Olanakları
Şimdi syslog olanaklarını anlayacağız. Seçici için mevcut olanaklar şunlardır. Tüm tesisler Unix'in tüm sürümlerinde mevcut değildir.
Tesis | Açıklama |
---|---|
1 | auth İsim ve şifre isteme ile ilgili aktivite (getty, su, giriş) |
2 | authpriv Yetkilendirmeyle aynı, ancak yalnızca seçili kullanıcılar tarafından okunabilen bir dosyada oturum açtı |
3 | console Genellikle sistem konsoluna yönlendirilen mesajları yakalamak için kullanılır |
4 | cron Cron sistem planlayıcısından gelen mesajlar |
5 | daemon Sistem arka plan programı tümünü yakalama |
6 | ftp Ftp arka plan programıyla ilgili mesajlar |
7 | kern Çekirdek mesajları |
8 | local0.local7 Site başına tanımlanan yerel tesisler |
9 | lpr Satır baskı sisteminden mesajlar |
10 | Posta sistemiyle ilgili mesajlar |
11 | mark Günlük dosyalarında zaman damgaları oluşturmak için kullanılan sözde olay |
12 | news Ağ haber protokolü (nntp) ile ilgili mesajlar |
13 | ntp Ağ zaman protokolüyle ilgili mesajlar |
14 | user Düzenli kullanıcı süreçleri |
15 | uucp UUCP alt sistemi |
Sistem Günlüğü Öncelikleri
Sistem günlüğü öncelikleri aşağıdaki tabloda özetlenmiştir -
Sr.No. | Öncelik ve Açıklama |
---|---|
1 | emerg Olası bir sistem çökmesi gibi acil durum, genellikle tüm kullanıcılara yayınlanır |
2 | alert Bozuk bir sistem veritabanı gibi hemen düzeltilmesi gereken durum |
3 | crit Donanım hatası gibi kritik durum |
4 | err Sıradan hata |
5 | Warning Uyarı |
6 | notice Hata olmayan ancak muhtemelen özel bir şekilde ele alınması gereken durum |
7 | info Bilgi mesajı |
8 | debug Programlarda hata ayıklarken kullanılan mesajlar |
9 | none İletilerin günlüğe kaydedilmemesini belirtmek için kullanılan sözde düzey |
Tesislerin ve seviyelerin birleşimi, nelerin günlüğe kaydedildiğini ve bu bilgilerin nereye gittiğini ayırt etmenizi sağlar.
Her program, mesajlarını görev bilinciyle sistem kaydedicisine gönderirken, kaydedici, seçicide tanımlanan seviyelere göre neyin izleneceği ve neyin atılacağına karar verir.
Bir seviye belirlediğinizde, sistem o seviye ve daha yüksek seviyedeki her şeyi takip edecektir.
/Etc/syslog.conf dosyası
/etc/syslog.confmesajların kaydedildiği dosya kontrolleri. Tipiksyslog.conf dosya şöyle görünebilir -
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @prep.ai.mit.edu
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
Dosyanın her satırı iki bölümden oluşur -
Bir message selectorhangi tür mesajların günlüğe kaydedileceğini belirtir. Örneğin, tüm hata mesajları veya çekirdekten gelen tüm hata ayıklama mesajları.
Bir action fieldbu mesajla ne yapılması gerektiğini söylüyor. Örneğin, bir dosyaya koyun veya mesajı bir kullanıcının terminaline gönderin.
Aşağıda, yukarıdaki yapılandırma için dikkate değer noktalar verilmiştir -
Mesaj seçiciler iki bölümden oluşur: a facility ve a priority. Örneğin, kern.debug , çekirdek (tesis) tarafından üretilen tüm hata ayıklama mesajlarını (öncelik) seçer.
Mesaj seçici kern.debug , hata ayıklamadan daha büyük olan tüm öncelikleri seçer.
Tesis veya önceliğin yerine bir yıldız işareti "tümünü" belirtir. Örneğin,*.debug tüm hata ayıklama mesajları anlamına gelir, kern.* çekirdek tarafından oluşturulan tüm mesajlar anlamına gelir.
Birden fazla tesisi belirtmek için virgül de kullanabilirsiniz. İki veya daha fazla seçici, noktalı virgül kullanılarak birlikte gruplanabilir.
Günlük İşlemleri
Eylem alanı beş eylemden birini belirtir -
Mesajı bir dosyaya veya cihaza kaydedin. Örneğin,/var/log/lpr.log veya /dev/console.
Bir kullanıcıya mesaj gönderin. Birden çok kullanıcı adını virgülle ayırarak belirtebilirsiniz; örneğin, root, amrood.
Tüm kullanıcılara bir mesaj gönderin. Bu durumda, eylem alanı bir yıldız işaretinden oluşur; Örneğin, *.
Mesajı bir programa aktarın. Bu durumda, program Unix boru sembolünden (|) sonra belirtilir.
Mesajı başka bir ana bilgisayardaki sistem günlüğüne gönderin. Bu durumda işlem alanı, önünde bir at işareti bulunan bir ana bilgisayar adından oluşur; örneğin, @ tutorialspoint.com.
Logger Komutu
Unix, loggerkomut, sistem günlüğü ile başa çıkmak için son derece yararlı bir komuttur. logger command günlük mesajlarını syslogd arka plan programına gönderir ve sonuç olarak sistem günlüğünü tetikler.
Bu, istediğimiz zaman komut satırından kontrol edebileceğimiz anlamına gelir. syslogddaemon ve yapılandırması. Logger komutu, komut satırından sistem günlük dosyasına tek satırlık girişler eklemek için bir yöntem sağlar.
Komutun biçimi -
logger [-i] [-f file] [-p priority] [-t tag] [message]...
İşte parametrelerin detayı -
Sr.No. | Seçenek ve Açıklama |
---|---|
1 | -f filename Dosya adı içeriğini günlüğe kaydedilecek mesaj olarak kullanır. |
2 | -i Kaydedici işleminin işlem kimliğini her satırla birlikte günlüğe kaydeder. |
3 | -p priority Mesajı belirtilen öncelikle girer (belirtilen seçici girişi); mesaj önceliği sayısal olarak veya bir tesis öncelik çifti olarak belirtilebilir. Varsayılan öncelik user.notice'dir. |
4 | -t tag Günlüğe eklenen her satırı belirtilen etiketle işaretler. |
5 | message İçerikleri, boşlukla ayrılmış, belirtilen sırayla birbirine birleştirilen dize bağımsız değişkenleri. |
Bu komutun sözdiziminin tamamını kontrol etmek için Manpage Yardım'ı kullanabilirsiniz .
Günlük Rotasyonu
Günlük dosyaları, çok hızlı büyüme ve büyük miktarda disk alanı kullanma eğilimindedir. Günlük rotasyonlarını etkinleştirmek için çoğu dağıtım aşağıdaki gibi araçlar kullanır:newsyslog veya logrotate.
Bu araçlar, cihaz kullanılarak sık bir zaman aralığında çağrılmalıdır. cron daemon. Daha fazla ayrıntı için haber günlüğü veya logrotate için man sayfalarına bakın.
Önemli Günlük Konumları
Tüm sistem uygulamaları kendi günlük dosyalarını oluşturur /var/logve alt dizinleri. İşte birkaç önemli uygulama ve bunlara karşılık gelen günlük dizinleri -
Uygulama | Rehber |
---|---|
httpd | / var / log / httpd |
samba | / var / log / samba |
cron | / var / log / |
posta | / var / log / |
mysql | / var / log / |