Cara Melihat dan Mengkonfigurasi Log Linux pada Ubuntu dan Centos

Pengantar

Administrator sistim Linux sering perlu untuk melihat file log untuk keperluan troubleshooting. Pada dasarnya, ini adalah hal pertama yang dilakukan oleh seorang sistim administrator.

Linux dan aplikasi yang berjalan di atasnya dapat menghasilkan berbagai jenis pesan yang berbeda, yang direkam di dalam bermacam file log. Linux menggunakan seperangkat file konfigurasi, direktori, program, perintah dan daemon untuk menciptakan, menyimpan dan mendaur-ulang pesan-pesan log ini. Karena itu, dengan mengetahui di mana sistim menyimpan file log tersebut dan bagaimana menggunakan perintah terkait, dapat membantu menghemat waktu dalam men-troubleshooting.

Di dalam tutorial ini, kita akan melihat pada bagian-bagian yang berbeda dari mekanisme pencatatan file log di Linux.

Lokasi Default File Log

Lokasi default untuk file log di Linux adalah /var/log.

Anda dapat melihat daftar dari file log di dalam direktori ini dengan perintah sederhana ls -l /var/log.

Berikut di dalam sistim CentOS:

ls -l /var/log

total 1472  
-rw-------. 1 root root   4524 Nov 15 16:04 anaconda.ifcfg.log  
-rw-------. 1 root root  59041 Nov 15 16:04 anaconda.log  
-rw-------. 1 root root  42763 Nov 15 16:04 anaconda.program.log  
-rw-------. 1 root root 299910 Nov 15 16:04 anaconda.storage.log  
-rw-------. 1 root root  40669 Nov 15 16:04 anaconda.syslog  
-rw-------. 1 root root  57061 Nov 15 16:04 anaconda.xlog 
-rw-------. 1 root root   1829 Nov 15 16:04 anaconda.yum.log  
drwxr-x---. 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    384 Dec  9 10:31 btmp  
-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   2288 Dec  9 11:01 cron
-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    950 Dec  9 10:27 maillog  
-rw-------. 1 root root   4609 Dec  2 17:00 maillog-20131202  
-rw-------  1 root root 123174 Dec  9 10:27 messages
-rw-------. 1 root root 458481 Dec  2 17:00 messages-20131202  
-rw-------  1 root root   2644 Dec  9 10:44 secure 
-rw-------. 1 root root  15984 Dec  2 17:00 secure-20131202  
-rw-------  1 root root      0 Dec  2 17:09 spooler  
-rw-------. 1 root root      0 Nov 15 16:02 spooler-20131202  
-rw-------. 1 root root      0 Nov 15 16:02 tallylog
-rw-rw-r--. 1 root utmp  89856 Dec  9 10:44 wtmp
-rw-------  1 root root   3778 Dec  6 16:48 yum.log  

Melihat Isi File Log

Di sini ada beberapa file log yang akan Anda temukan pada direktori /var/log:

  • wtmp
  • utmp
  • dmesg
  • messages
  • maillog or mail.log
  • spooler
  • auth.log or secure

File wtmp dan file utmp melacak masuk dan keluarnya para pengguna di dalam sistim tersebut. Anda tidak dapat secara langsung membaca isi dari file-file ini menggunakan cat– karena ada perintah-perintah khusus untuk melakukan hal itu.

Kita sekarang akan menggunakan beberapa saja dari perintah-perintah itu.

Untuk melihat siapa saat ini yang sedang masuk ke server Linux tersebut, gunakan perintah who. Perintah ini mendapatkan nilai keluarannya dari file /var/run/utmp yang tadi (untuk CentOS dan Debian) atau /run/utmp (untuk Ubuntu).

Contoh dari CentOS kurang lebih seperti berikut:

[root@TestLinux ~]# who

root     tty1         2020-12-09 10:44  
root     pts/0        2020-12-09 10:29 (10.0.2.2)  
sysadmin pts/1        2020-12-09 10:31 (10.0.2.2)  
joeblog  pts/2        2020-12-09 10:39 (10.0.2.2)  

Perintah terakhir memberitahukan kepada kita histori login dari para pengguna/user:

[root@TestLinux ~]# last | grep sysadmin

sysadmin pts/1        10.0.2.2         Mon Dec  9 10:31   still logged in
sysadmin pts/0        10.0.2.2         Fri Nov 29 15:42 - crash  (00:01)  
sysadmin pts/0        10.0.2.2         Thu Nov 28 17:06 - 17:13  (00:06)  
sysadmin pts/0        10.0.2.2         Thu Nov 28 16:17 - 17:05  (00:48)  
sysadmin pts/0        10.0.2.2         Thu Nov 28 09:29 - crash  (06:04)  
sysadmin pts/0        10.0.2.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)  

Di dalam contoh ini, saya mencoba menemukan histori login dari pengguna sysadmin. Seperti dapat Anda lihat, ada banyak instance di mana dia melakukan pengelolaan untuk membuat crash sistem.

Untuk menemukan kapan sistem terkahir kali di-reboot atau dimulai ulang, kita dapat menjalankan perintah berikut:

[root@TestLinux ~]# last reboot

Hasilnya kurang lebih sebagai berikut:

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 2020  

Untuk melihat kapan seseorang terakhir kali masuk ke dalam sistem, gunakan perintah lastlog:

[root@TestLinux ~]# lastlog

Keluarannya kurang lebih seperti ini:

Username        Port        From            Latest  
root            tty1                        Mon Dec  9 10:44:30 +1100 2020
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    10.0.2.2         Mon Dec  9 10:31:50 +1100 2020  
dbus                                       **Never logged in**  
joeblog          pts/2    10.0.2.2         Mon Dec  9 10:39:24 +1100 2020  

Untuk file log berbasis teks yang lain, Anda dapat menggunakan perintah cat, head atau tail untuk membaca isinya.

Di dalam contoh di bawah, saya mencoba melihat sepuluh baris akhir dari file /var/log/messages di dalam sistim operasi Debian:

debian@debian:~$ sudo tail /var/log/messages

Output/keluarannya adalah sebagai berikut:

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

The rsyslog Daemon

Inti dari mekanisme log adalah daemon rsyslog. Layanan ini bertanggung-jawab untuk mendengarkan pesan log dari bagian yang berbeda dari sistim Linux dan melakukan route pesan kepada suatu file log yang tepat di dalam direktori /var/log. Ia juga dapat meneruskan pesan log kepada server Linux lain.

File Konfigurasi rsyslog

Daemon rsyslog mendapatkan informasi konfigurasinya dari file rsyslog.conf. File tersebut berlokasi di bawah direktori /etc.

Secara mendasar, file rsyslog.conf mengatakan kepada daemon rsyslog di mana menyimpan pesan log-nya. Instruksi ini datang dari serangkaian dari dua bagian baris di dalam file tersebut.

File ini dapat ditemukan pada rsyslog.d/50-default.conf pada ubuntu.

Dua bagian instruksi dibuat dari suatu selektor dan suatu aksi. Dua bagian tersebut dipisahkan oleh white space.

Bagian selektor menyebutkan sumber apa dan pentingnya pesan log dan bagian aksi menyebutkan apa yang harus dilakukan dengan pesan itu.

Selektor itu sendiri lagi-lagi dibagi menjadi dua bagian yang dipisahkan oleh titik (.). Bagian pertama sebelum titik disebut facility (asal dari pesan tersebut) dan bagian kedua setelah titik disebut priority (tingkat kedaruratan suatu pesan).

Bersama, facility/priority dan pasangan aksi mengatakan kepada rsyslog apa yang perlu dilakukan ketika suatu pesan log cocok dengan kriteria yang dihasilkan.

Berikut adalah kutipan dari file rsyslog.conf pada CentOS:

# rsyslog v5 configuration file
...  
...    
# Include all config files in /etc/rsyslog.d/  
IncludeConfig /etc/rsyslog.d/*.conf  

#### RULES ####  
# Log all kernel messages to the console.  
# Logging much else clutters up the screen.  
#kern.*  /dev/console  

# Log anything (except mail) of level info or higher.  
# Don't log private authentication messages!  
*.info;mail.none;authpriv.none;cron.none                /var/log/messages  

# The authpriv file has restricted access.  
authpriv.*                                              /var/log/secure  

# Log all the mail messages in one place.  
mail.*                                                  -/var/log/maillog  


# Log cron stuff  
cron.*                                                  /var/log/cron  

# Everybody gets emergency messages  
*.emerg                                                 *  

# Save news errors of level crit and higher in a special file.  
uucp,news.crit                                          /var/log/spooler  

# Save boot messages also to boot.log  
local7.*                                                /var/log/boot.log  
...  
...  

Untuk memahami apa arti dari semua ini, mari pertimbangkan jenis yang berbeda dari facility yang dikenali oleh Linux. Berikut ini daftarnya:

    auth atau authpriv: Pesan yang datang dari otorisasi dan sekuriti terkait event
    kern: Pesan apa pun yang datang dari kernel Linux 
    mail: Pesan yang dihasilkan oleh subsistim mail
    cron: Pesan-pesan terkait daemon cron
    daemon: Pesan yang datang dari daemon
    news: Pesan yang datang dari subsistem network news
    lpr: Pesan log terkait Printing
    user: Pesan log yang datang dari program pengguna
    local0 to local7: Cadangan untuk penggunaan lokal

Dan berikut adalah daftar prioritas dalam urutan naik:

    debug: Informasi debug dari program
    info: Pesan informasi sederhana - tidak ada intervensi yang diperlukan
    notice: Kondisi yang menghendaki perhatian
    warn: Peringatan
    err: Error
    crit: Kondisi kritis
    alert: Kondisi yang memerlukan intervensi dengan segera
    emerg: Kondisi darurat

Pikirkanlah baris berikut dari file tersebut:

cron.*              /var/log/cron    

Ini sekedar memberitahukan kepada daemon rsyslog untuk menyimpan semua pesan yang datang dari daemon cron di dalam suatu file yang disebut /var/log/cron. Tanda asterix/bintang (*) setelah tanda titik (.) bermakna pesan dari semua prioritas akan dicatat lognya. Demikian pula, apabila facility tersebut disebutkan sebagai suatu asterix, ia akan bermakna semua sumber.

Facility dan priority dapat dihubungkan dalam sejumlah cara.

Dalam bentuk default-nya, ketika hanya ada satu priority yang disebutkan setelah titik, ia bermakna semua event sama atau lebih besar dari priority yang akan ditangkap lognya. Sehingga direktif berikut menyebabkan pesan apa pun datang dari subsistem mail dengan suatu prioritas dari peringatan atau yang lebih tinggi dari itu untuk dicatat lognya di dalam suatu file spesifik di bawah direktori /var/log:

mail.warn           /var/log/mail.warn

Ini akan mencatat log setiap pesan yang sama atau lebih besar dari prioritas warn, tetapi meninggalkan segala sesuatu yang ada di bawahnya. Sehingga pesan dengan prioritas err, crit, alert atau emerg (di atasnya), itulah yang akan dicatat dalam file ini.

Dengan menggunakan tanda sama dengan (=) setelah titik (.) akan menyebabkan prioritas yang disebutkan sama dengan yang dicatat log-nya. Sehingga apabila kita ingin mencatat pesan info yang datang dari subsitem mail, spesifikasinya akan menjadi seperti berikut:

mail.=info          /var/log/mail.info

Lagi, apabila kita ingin mencatat segala sesuatu dari subsistem mail kecuali pesan info, spesifikasinya akan menjadi seperti berikut

mail.!info          /var/log/mail.info

atau

mail.!=info         /var/log/mail.info

Dalam kasus pertama, file mail.info memuat segala sesuatu dengan prioritas lebih rendah dari info. Dalam kasus kedua, file tersebut akan memuat semua pesan dengan prioritas di atas info.

Facility ganda di dalam baris yang sama dapat dipisahkan oleh koma.

Sumber ganda (facility.priority) di dalam baris yang sama dipisahkan oleh semikolon.

Ketika suatu aksi ditandai dengan asterix (*), maka itu berarti semua pengguna. Entri ini di dalam file rsyslog.conf CentOS saya menyebutkan sebagai berikut:

# Everybody gets emergency messages    
*.emerg                                                 *    

Try to see what’s the rsyslog.conf is saying in your Linux system. Here is an excerpt from the Debian server I am running:

#  /etc/rsyslog.conf    Configuration file for rsyslog.  
#  
#           For more information see  
#           /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html  
...  
...  
auth,authpriv.*         /var/log/auth.log  
*.*;auth,authpriv.none  -/var/log/syslog  
#cron.*             /var/log/cron.log  
daemon.*            -/var/log/daemon.log  
kern.*              -/var/log/kern.log  
lpr.*               -/var/log/lpr.log  
mail.*              -/var/log/mail.log  
user.*              -/var/log/user.log  

#
# Logging for the mail system.  Split it up so that  
# it is easy to write scripts to parse these files.  
#  
mail.info           -/var/log/mail.info  
mail.warn           -/var/log/mail.warn  
mail.err            /var/log/mail.err  
#  
# Logging for INN news system.  
#  
news.crit           /var/log/news/news.crit  
news.err            /var/log/news/news.err  
news.notice         -/var/log/news/news.notice  

Debian menyimpan semua pesan tingkat sekuriti/otorisasi di dalam file /var/log/auth.log sementara CentOS menyimpannya di bawah /var/log/secure.

Konfigurasi untuk rsyslog dapat datang dari file kastem lain juga. File konfigurasi kastem ini biasanya berlokasi di direktori yang berbeda di bawah /etc/rsyslog.d. File rsyslog.conf menyertakan direktori-direktori ini menggunakan direktif $IncludeConfig.

Berikut adalah tampilannya di Ubuntu:

#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf  
....  
....    
$IncludeConfig /etc/rsyslog.d/*.conf  

Konten di bawah direktori /etc/rsyslog.d nampak seperti berikut:

-rw-r--r-- 1 root root  311 Mar 17  2020 20-ufw.conf  
-rw-r--r-- 1 root root  252 Apr 11  2020 21-cloudinit.conf  
-rw-r--r-- 1 root root 1655 Mar 30  2020 50-default.conf  

Sekarang tujuan untuk suatu pesan log tidak harus suatu file log; pesan dapat dikirim kepada konsol pengguna. Dalam kasus ini, bidang action memuat nama pengguna. Apabila ada lebih dari satu pengguna yang perlu menerima pesan tersebut, username mereka dipisahkan oleh tanda koma. Apabila pesan tersebut perlu disiarkan kepada setiap pengguna, maka digunakan tanda asterix (*) di dalam bidang action.

Karena menjadi bagian dari sistim operasi jaringan, daemon rsyslog hanya dapat menyimpan pesan log secara lokal, ia juga dapat meneruskan pesan itu kepada server Linux lain di dalam jaringan tersebut atau bertindak sebagai suatu repositori untuk sistim lain. Daemon tersebut mendengarkan pesan log di dalam port UDP 514. Contoh berikut meneruskan pesan kritis kernel kepada suatu server yang disebut “texas”.

kern.crit           @texas

Membuat dan Menguji Pesan Log Anda Sendiri

Sekarang waktunya membuat file log sendiri.

Untuk menguji ini, kita akan melakukan sebagai berikut

    Tambahkan suatu spesifikasi file log di dalam file /etc/rsyslog.conf

    Restart daemon rsyslog

    Ujilah konfigurasi tersebut menggunakan utilitas logger

Di dalam contoh berikut, saya menambahkan dua baris baru di dalam sistim Linux CentOS saya pada file rsyslog.conf. Seperti dapat Anda lihat, setiap satu dari mereka datang dari facility yang disebut local4 dan mereka memiliki priority yang berbeda.


[root@TestLinux ~]# vi /etc/rsyslog.conf  

....  
....  

# New lines added for testing log message generation  

local4.crit                                             /var/log/local4crit.log  
local4.=info                                            /var/log/local4info.log  

Berikutnya, ketika service di-restart data file konfigurasi juga dimuat ulang:

[root@TestLinux ~]# /etc/init.d/rsyslog restart  
Shutting down system logger:                               [  OK  ]  
Starting system logger:                                    [  OK  ]  
[root@TestLinux ~]#    

Sekarang untuk menghasilkan pesan log, aplikasi logger dipanggil:

[root@TestLinux ~]# logger -p local4.info " This is a info message from local 4"  

Dengan melihat di bawah direktori /var/log yang sekarang menunjukkan dua tipe file:

...  
...  
-rw-------  1 root root      0 Dec  9 11:21 local4crit.log  
-rw-------  1 root root     72 Dec  9 11:22 local4info.log  

Ukuran dari local4info.log adalah non-zero. Sehinga ketika dibuka, saya melihat pesan tersebut telah direkam:

[root@TestLinux ~]# cat /var/log/local4info.log  

Dec  9 11:22:32 TestLinux root:  This is a info message from local 4  

Merotasi File Log

Karena makin banyak informasi yang ditulis kepada file log, file tersebut menjadi semakin besar ukurannya. Ini berdampak pada masalah performa. Juga, pengelolaan dari file tersebut menjadi tidak praktis.

Linux menggunakan konsep “merotasi” file log ketimbang menyingkirkan atau menghapusnya. Ketika suatu log dirotasi, suatu file log baru dibuat dan file log lama dinamai-ulang dan secara opsional dipadatkan. Suatu file log dengan demikian dapat memiliki banyak versi lama yang tetap online. File-file ini akan kembali setelah satu periode waktu dan akan mewakili backlog. Pada saat jumlah tertentu dari backlog ditelah dihasilkan, suatu rotasi log baru akan menyebabkan file log yang paling lama dihapus.

Rotasi tersebut diinisiasi melalui utilitas logrotate.

File Konfigurasi logrotate

Seperti rsyslog, logrotate juga bergantung pada suatu file dan nama dari file ini adalah logrotate.conf. Ia berlokasi di bawah /etc.

Berikut adalah apa yang saya lihat di dalam file logrotate.conf dari server Debian:

debian@debian:~$ cat /etc/logrotate.conf

# see "man logrotate" for details  
# rotate log files weekly  
weekly  

# keep 4 weeks worth of backlogs  
rotate 4  

# create new (empty) log files after rotating old ones  
create  

# uncomment this if you want your log files compressed  
#compress  

# packages drop log rotation information into this directory  
include /etc/logrotate.d  

# no packages own wtmp, or btmp -- we'll rotate them here  
/var/log/wtmp {  
    missingok  
    monthly  
    create 0664 root utmp  
    rotate 1  
}  

/var/log/btmp {  
    missingok  
    monthly  
    create 0660 root utmp  
    rotate 1  
}  

# system-specific logs may be configured here  

Setiap barisnya memberi cukup kejelasan. Secara default, file log dirotasi setiap minggu dengan empat backlogs yang tetap online setiap satu kali. Ketika program tersebut berjalan, file log kosong yang baru akan dihasilkan dan secara opsional yang lama dipadatkan.

Satu-satunya perkecualian adalah untuk file wtmp dan file btmp. File wtmp melacak login ke sistem dan file btmp melacak upaya login yang buruk. Dua file log ini dirotasi setiap bulan dan tidak ada error yang dikembalikan file wtmp atau file btmp dapat ditemukan.

Konfigurasi rotasi log secara kastem dijaga di bawah direktori /etc/logrotate.d. Ini juga disertakan di dalam logrotate.conf dengan direktif yang disertakan tersebut. Instalasi Debian menunjukkan isi dari direktori ini:

debian@debian:~$ ls -l /etc/logrotate.d  

total 44  
-rw-r--r-- 1 root root 173 Apr 15  2020 apt  
-rw-r--r-- 1 root root  79 Aug 12  2020 aptitude  
-rw-r--r-- 1 root root 135 Feb 24  2020 consolekit  
-rw-r--r-- 1 root root 248 Nov 28  2020 cups  
-rw-r--r-- 1 root root 232 Sep 19  2020 dpkg  
-rw-r--r-- 1 root root 146 May 12  2020 exim4-base  
-rw-r--r-- 1 root root 126 May 12  2020 exim4-paniclog  
-rw-r--r-- 1 root root 157 Nov 16  2020 pm-utils  
-rw-r--r-- 1 root root  94 Aug  8  2020 ppp  
-rw-r--r-- 1 root root 515 Nov 30  2020 rsyslog  
-rw-r--r-- 1 root root 114 Nov 26  2020 unattended-upgrades  

Isi dari rsyslog menunjukkan bagaimana cara memutarkan sejumlah file log:

debian@debian:~$ cat /etc/logrotate.d/rsyslog

/var/log/syslog  
{  
    rotate 7  
    daily  
    missingok  
    notifempty  
    delaycompress  
    compress  
    postrotate  
    invoke-rc.d rsyslog reload > /dev/null  
    endscript  
}  

/var/log/mail.info  
/var/log/mail.warn  
/var/log/mail.err  
/var/log/mail.log  
/var/log/daemon.log  
/var/log/kern.log  
/var/log/auth.log  
/var/log/user.log  
/var/log/lpr.log  
/var/log/cron.log  
/var/log/debug  
/var/log/messages  
{  
    rotate 4  
    weekly  
    missingok  
    notifempty  
    compress  
    delaycompress  
    sharedscripts  
    postrotate  
    invoke-rc.d rsyslog reload > /dev/null  
    endscript  
}  

Seperti dapat Anda lihat, file syslog akan direinisialisasi setiap hari dengan tetap online selama tujuh hari. File log lain dirotasi setiap minggu.

Juga yang perlu dicatat adalah direktif pasca rotasi. Ini menyebutkan action yang terjadi setelah keseluruhan rotasi log telah lengkap.

Menguji Rotasi

Logrotate dapat secara manual dijalankan untuk memutar satu atau lebih file. Dan untuk melakukan itu, kita perlu menyebutkan file konfigurasi yang relevan sebagai suatu argumen kepada perintah tersebut.

Untuk melihat bagaimana ini bekerja, berikut adalah sebagian daftar dari file log di bawah direktori /var/log dalam server CentOS uji coba saya:

[root@TestLinux ~]# ls -l /var/log  

total 800    
...  
-rw-------  1 root root    359 Dec 17 18:25 maillog  
-rw-------. 1 root root   1830 Dec 16 16:35 maillog-20131216  
-rw-------  1 root root  30554 Dec 17 18:25 messages  
-rw-------. 1 root root 180429 Dec 16 16:35 messages-20131216  
-rw-------  1 root root    591 Dec 17 18:28 secure  
-rw-------. 1 root root   4187 Dec 16 16:41 secure-20131216  
...  
...  

Sebagian isi dari file logrotate.conf tampak seperti ini:

[root@TestLinux ~]# cat /etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs 
rotate 4  

# create new (empty) log files after rotating old ones
create  
...  
...  

Berikutnya kita menjalankan perintah:

[root@TestLinux ~]# logrotate -fv /etc/logrotate.conf

Pesan bergulir karena file baru dihasilkan, error-error didata. Ketika semuanya telah dibuat, kita mencoba memeriksa mail, file atau pesan:

[root@TestLinux ~]# ls -l /var/log/mail* 
-rw-------  1 root root    0 Dec 17 18:34 /var/log/maillog 
-rw-------. 1 root root 1830 Dec 16 16:35 /var/log/maillog-20131216  
-rw-------  1 root root  359 Dec 17 18:25 /var/log/maillog-20131217  


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


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

Seperti dapat kita lihat, semua dari tiga file log baru telah dibuat. File maillog dan file secure masih kosong, tetapi file messages yang baru telah memiliki pesan di dalamnya.

Akhir Kata

Harapannya tutorial ini memberi Anda beberapa ide mengenai pencatatan log di Linux. Anda dapat mencoba melihat ke dalam sistim percobaan Anda untuk lebih memahaminya. Pada saat Anda akrab dengan lokasi dari file log dan pengaturan konfigurasinya, gunakanlah pengetahuan tersebut untuk mendukung sistim produksi Anda. Dan mungkin kemudian Anda dapat membuat beberapa alias untuk menunjuk kepada file-file ini untuk menghemat waktu mengetik.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top