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

mail

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 /