BLOG

ANASAYFA > BLOG > + 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