CentOS ve Ubuntu Üzerinde Log İncelemesi ve Yapılandırması

ANASAYFA > BILGI BANKASI > CentOS ve Ubuntu Üzerinde Log İncelemesi ve Yapılandırması
# / 2014-09-25
CentOS ve Ubuntu Üzerinde Log İncelemesi ve Yapılandırması

Giriş

Linux sistem yöneticilerinin sorun giderme amacıyla log dosyalarına sık sık kontrol etmesi gerekir. Aslında bu herhangi bir sistem yöneticisinin yapacağı ilk şeydir.

Linux ve Linux içersinde çalışan uygulamaların farklı log tutma şekilleri vardır. Bu log dosyalarının nerede tutulduğunu bilmek ve logları okuyabilmek sorun çözme sırasında yardımcı olur ve zamandan tasarruf sağlar.

Bu makalede Linux log mekanizmasına bir göz atacağız.

Uyarı: Bu makalede kullanılan komutlar CentOS 6.4, Ubuntu 12 ve Debian 7 üzerinde test edildi.

Standart log dosyaları nerede bulunur

Linux log dosyaları “/var/log” dizini içersinde bulunur.

Basitce “ls -l /var/log” komutunu kullanarak log dosyalarını listeleyebilirsiniz.

[root@TestLinux ~]# ls -l /var/log
total 143  
-rw/-. 1 root root  59041 Nov 15 16:04 anaconda.log  
-rw
/-. 1 root root 299910 Nov 15 16:04 anaconda.storage.log  
-rw/-. 1 root root  57061 Nov 15 16:04 anaconda.xlog
-rw*. 2 root root   4096 Nov 15 16:11 audit
-rw-r–r–  1 root root   2252 Dec  9 10:27 boot.log  
-rw
/-. 1 root utmp   1920 Nov 28 09:28 btmp-20131202  
drwxr-xr-x  2 root root   4096 Nov 29 15:47 ConsoleKit
-rw/-. 1 root root   8809 Dec  2 17:09 cron-20131202  
-rw-r–r–  1 root root  21510 Dec  9 10:27 dmesg
-rw-r–r–  1 root root  21351 Dec  6 16:37 dmesg.old  
-rw-r–r–. 1 root root 165665 Nov 15 16:04 dracut.log  
-rw-r–r–. 1 root root 146876 Dec  9 10:44 lastlog
-rw
/-. 1 root root   4609 Dec  2 17:00 maillog-20131202  
-rw/-. 1 root root 458481 Dec  2 17:00 messages-20131202  
-rw
/-. 1 root root  15984 Dec  2 17:00 secure-20131202  
-rw/-. 1 root root      0 Nov 15 16:02 spooler-20131202  
-rw
/-  1 root root   3778 Dec  6 16:48 yum.log

Log dosyalarının içeriğini görüntüleme

”/var/log” içersinde bulabileceğiniz bazı önemli log dosyaları.

wtmp

utmp

dmesg

messages

maillog veya mail.log

spooler

  • auth.log veya secure

wtmp ve utmp gibi bazı log dosyalarının içeriği “cat” komutu ile görüntülenemez.

Şimdi bu komutların bazılarını kullanalım.

Şu anda Linux sunucuya bağlı olan kişileri görebilmek için who komutu kullanılır.

CentOS sunucuda bir örnek:

[root@TestLinux ~]# who
root     tty1         2013-12-09 10:44  
root     pts/0        2013-12-09 10:29 (192.168.1.2)  
sysadmin pts/1        2013-12-09 10:31 (192.168.1.2)  
ahmet    pts/2        2013-12-09 10:39 (192.168.1.2)

Özel bir durum daha var. Ben bu sistemin tek kullanıcısıyım ama Oracle VirtualBox ile sallaştırılmış bir sunucu olduğu için fazladan iki tane kullanıcı sistemde aktif görünüyor. (sysadmin ve ahmet)

Aşağıdaki komut ise, sunucuya bağlanan kullanıcıların giriş tarihini gösteriyor:

[root@TestLinux ~]# last | grep sysadmin
sysadmin pts/1        192.168.1.2      Mon Dec  9 10:31   ahmet logged in
sysadmin pts/0        192.168.1.2      Fri Nov 29 15:42 - crash  (00:01)  
sysadmin pts/0        192.168.1.2      Thu Nov 28 17:06 - 17:13  (00:06)  
sysadmin pts/0        192.168.1.2      Thu Nov 28 16:17 - 17:05  (00:48)  
sysadmin pts/0        192.168.1.2      Thu Nov 28 09:29 - crash  (06:04)  
sysadmin pts/0        192.168.1.2      Wed Nov 27 16:37 - down   (00:29)  
sysadmin tty1                          Wed Nov 27 14:05 - down   (00:36)  
sysadmin tty1                          Wed Nov 27 13:49 - 14:04  (00:15)

Bu örnekte, ben sysadmin kullanıcısının giriş tarihini bulmaya çalıştım.

Sistemin ne zaman yeniden başlatıldığını görebilmek için “last reboot” komutu çalıştırabilirsiniz:

[root@TestLinux ~]# last reboot
reboot   system boot  2.6.32-358.el6.x Mon Dec  9 10:27 - 10:47  (00:19)
reboot   system boot  2.6.32-358.el6.x Fri Dec  6 16:37 - 10:47 (2+18:10)
reboot   system boot  2.6.32-358.el6.x Fri Dec  6 16:28 - 16:36  (00:08)
reboot   system boot  2.6.32-358.el6.x Fri Dec  6 11:06 - 16:36  (05:29)
reboot   system boot  2.6.32-358.el6.x Mon Dec  2 17:00 - 16:36 (3+23:36)
reboot   system boot  2.6.32-358.el6.x Fri Nov 29 16:01 - 16:36 (7+00:34)
reboot   system boot  2.6.32-358.el6.x Fri Nov 29 15:43 - 16:36 (7+00:53)
…  
…  
wtmp begins Fri Nov 15 16:11:54 2013

Sisteme son log birini görmek için “lastlog” komutunu kullanın:

[root@TestLinux ~]# lastlog
Username        Port        From            Latest  
root            tty1                        Mon Dec  9 10:44:30 +1100 2013
bin                                        Never logged in
daemon                                     Never logged in  
adm                                        Never logged in  
lp                                         Never logged in  
sync                                       Never logged in  
shutdown                                   Never logged in  
halt                                       Never logged in  
mail                                       Never logged in  
uucp                                       Never logged in  
operator                                   Never logged in  
games                                      Never logged in  
gopher                                     Never logged in  
ftp                                        Never logged in  
nobody                                     Never logged in  
vcsa                                       Never logged in  
saslauth                                   Never logged in  
postfix                                    Never logged in  
sshd                                       Never logged in  
sysadmin         pts/1    192.168.1.2      Mon Dec  9 10:31:50 +1100 2013  
dbus                                       Never logged in  
ahmet            pts/2    192.168.1.2      Mon Dec  9 10:39:24 +1100 2013

Diğer metin tabanlı log dosyaları için, “cat”, “head” yada “tail” komutlarını kullanarak okuyabilirsiniz.

Aşağıdaki örnekte ben Debian bir sunucuda /var/log/messages log dosyasının son satırlarını görüntülemeye çalışıyorum:

debian@debian:~$ sudo tail /var/log/messages
Dec 16 01:21:08 debian kernel: [    9.584074] Bluetooth: BNEP (Ethernet Emulation) ver 1.3  
Dec 16 01:21:08 debian kernel: [    9.584074] Bluetooth: BNEP filters: protocol multicast  
Dec 16 01:21:08 debian kernel: [    9.648220] Bridge firewalling registered
Dec 16 01:21:08 debian kernel: [    9.696728] Bluetooth: SCO (Voice Link) ver 0.6
Dec 16 01:21:08 debian kernel: [    9.696728] Bluetooth: SCO socket layer initialized  
Dec 16 01:21:08 debian kernel: [    9.832215] lp: driver loaded but no devices found  
Dec 16 01:21:08 debian kernel: [    9.868897] ppdev: user-space parallel port driver  
Dec 16 01:21:11 debian kernel: [   12.748833] [drm] Initialized drm 1.1.0 20060810
Dec 16 01:21:11 debian kernel: [   12.754412] pci 0000:00:02.0: PCI INT A -> Link[LNKB] -> GSI 11 (level, low) -> IRQ 11  
Dec 16 01:21:11 debian kernel: [   12.754412] [drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.0 on minor 0

Burada log içeriğini görüntülerken “tail” komutunu kullandım. Aşağıda hangi komutlar ile logların görüntülenebileceğini yazacağım:

cat: Dosyanın hepsini ekrana basar

head: Dosyanın en üstünden 10 satır ekrana basar

tail: Dosyanın en sonundan 10 satır ekrana basar

nano: Aslında nano komutu dosya editörüdür. Dosyayı açarak içersinde düzenlemenizi ve gezinmenizi sağlar. Bu komut ile dosyayıp açıp içersinde gezinerek logları rahatça görüntüleyebilirsiniz.

  • vi: Aynı nano gibi bir dosya editörüdür

rsyslog servisi

Günlük log tutma mekanizmasının arkaplanında rsyslog servisi vardır. Bu servis bir Linux sistemin farklı bölgelerinden gelen mesajları dinleme ve uygun bir biçimde /var/log klasörü içine kaydetmeye yarar.

Rsyslog Yapılandırma Dosyası

Rsyslog servisi rsyslog.conf dosyasından yapılandırılır. Bu dosya /etc dizini altında yer almaktadır.

Temelde rsyslog.conf dosyası, günlük iletilerini kaydetmek için rsyslog servisine bildirir. Bu talimat dosya içinde iki parçalı hatları bir dizi haline geliyor.

Bu dosya ubuntu üzerinde “rsyslog.d/50-default.conf” şeklinde bulunur.

CentOS sistemdeki rsyslog.conf içeriğine bir örnek:

# rsyslog v5 configuration file
…  
…    

Include all config files in /etc/rsyslog.d/  

IncludeConfig /etc/rsyslog.d*/-  1 root root      0 Dec  9 11:21 local4crit.log  
-rw/-  1 root root    359 Dec 17 18:25 maillog  
-rw
/-  1 root root  30554 Dec 17 18:25 messages  
-rw/-  1 root root    591 Dec 17 18:28 secure  
-rw
/-  1 root root    0 Dec 17 18:34 /var/log/maillog
-rw**/-  1 root root  359 Dec 17 18:25 /var/log/maillog-20131217  

[root@TestLinux ~]# ls -l /var/log/messages*  
-rw/-. 1 root root 180429 Dec 16 16:35 /var/log/messages-20131216
-rw
/-  1 root root    0 Dec 17 18:34 /var/log/secure
-rw**/-  1 root root  591 Dec 17 18:28 /var/log/secure-20131217
[root@TestLinux ~]#

Görüldüğü gibi tarihlere göre logar arşivlenmiş ve son logların bulunduğu dosyalar boşaltılmış.

Umarım bu yazı size Linux Log sistemi hakkında bazı fikirler vermiştir. Linux işletim sisteminde log dosyaları hayat kurtarıcı niteliğindedir. Size zaman kazandırır ve sistemin durumu hakkında bilgiler verir. Çözemediğiniz bir durumda ilk başvuracağınız şey log dosyaları olmalıdır…

Avatar
Abdullah Altunbaş Teknik Şef
Netinternet Bilişim Teknolojileri A.Ş.'de teknik konularda liderlik yapıyorum. 15 yıldır bu alanda çalışıyorum ve özellikle sistem yönetimi, ağ teknolojileri ve yazılım geliştirme konularına odaklanıyorum.
Yorumlar

Henüz yorum yok.

Yorum Yap