Cara Membuat Sistem Pencatatan Log FreeBSD atau Rotasi Log

· 2 min read

Dengan rotasi log pada sistem FreeBSD, beban kerja aplikasi yang diakses oleh banyak klien tidak terlalu berat, karena file log aplikasi tidak dapat t

Penggunaan file log pada sistem FreeBSD merupakan aspek penting dalam keamanan dan administrasi sistem. Pemantauan file log dari beberapa aplikasi yang sedang berjalan dapat menjadi sangat berat ketika aplikasi tersebut digunakan oleh banyak klien dalam satu jaringan.

Pemeriksaan dan pembacaan log sistem merupakan aspek penting bagi seorang administrator sistem. Informasi dalam log sistem dapat digunakan untuk mendeteksi masalah perangkat keras dan perangkat lunak serta kesalahan konfigurasi aplikasi dan sistem. Informasi ini juga berperan penting dalam audit keamanan dan respons insiden. Sebagian besar daemon dan aplikasi sistem akan menghasilkan entri log.

FreeBSD menyediakan logger sistem, syslogd, untuk mengelola pencatatan sistem. Secara default, syslogd dimulai saat sistem melakukan booting. Sistem pencatatan ini dikontrol oleh variabel syslogd_enable di /etc/rc.conf. Ada banyak argumen aplikasi yang dapat diatur menggunakan syslogd_flags di /etc/rc.conf.


Rotasi file log freebsd


Artikel ini akan menjelaskan cara membuat dan mengonfigurasi file log, selain itu artikel ini juga membahas cara merotasi file log di server FreeBSD. Materi dalam artikel ini dapat digunakan di hampir semua versi Freebsd.

Bagian ini menjelaskan cara mengonfigurasi logger sistem FreeBSD untuk pencatatan lokal dan jarak jauh serta cara melakukan rotasi log dan manajemen log untuk rotasi log otomatis.


1. File Log dengan syslogd

Sistem pencatatan (logging) FreeBSD sangat berguna untuk memantau aktivitas server. Setiap sistem operasi mirip Unix memungkinkan Anda untuk mencatat hampir semua hal penting tentang aktivitas server dengan sangat terperinci. Meskipun dalam praktiknya kita akan menemukan kait pencatatan sistem default untuk sumber daya sistem yang paling umum, kita dapat memilih konfigurasi pencatatan yang memenuhi kebutuhan server yang kita gunakan.

Pada sistem FreeBSD, hampir semua program terintegrasi dengan daemon pencatatan, syslogd. Protokol syslog bekerja melalui pesan. Program akan mengirimkan pesan individual, yang ditangkap dan diproses oleh daemon syslog syslogd. Syslogd akan menangani setiap pesan sesuai dengan fasilitas dan tingkat prioritasnya, yang keduanya ditetapkan oleh program yang digunakan klien untuk pesan tersebut. Anda harus memahami fasilitas dan tingkat untuk mengelola log sistem.

Pesan dari sistem akan dicatat ke berkas /var/log. Mekanisme yang melakukan ini disebut syslogd, daemon pencatat sistem. Perilaku tersebut diatur dalam /etc/syslog.conf, yang mendefinisikan berkas log yang berbeda untuk layanan yang berbeda. Setiap layanan atau "fasilitas" yang diketahuinya (bisa berupa auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, security, syslog, user, uucp, dan local0 hingga local7).

Sebelum kita mulai membuat file log, pertama-tama aktifkan syslogd di file /etc/rc.conf.

Edit rc.conf
root@router2:~ # ee /etc/rc.conf
syslogd_enable="YES"
syslogd_flags="-ss -vv"
Untuk melihat daemon logger mana yang digunakan pada sistem FreeBSD kita, gunakan perintah berikut.

Lihat daemon yang aktif di sistem Log
root@router2:~ # ls -d /etc/*syslog*
/etc/newsyslog.conf     /etc/syslog.conf
/etc/newsyslog.conf.d   /etc/syslog.d
Daemon syslogd menangkap pesan dari jaringan dan membandingkannya dengan entri dalam berkas /etc/syslog.conf. Berkas syslog.conf memiliki dua kolom, yang pertama menjelaskan pesan log, baik menurut fasilitas dan level, atau menurut nama program. Yang kedua memberi tahu syslogd apa yang harus dilakukan ketika pesan log cocok dengan deskripsi. Mari kita lihat berkas /etc/syslog.conf default.

Contoh isi file /etc/syslog.conf
mail.info					/var/log/maillog
Deskripsi file /etc/syslog.conf di atas, file mail.info akan memberi tahu syslogd bahwa ketika menerima pesan dari fasilitas email dengan level info atau lebih tinggi, pesan tersebut harus ditambahkan ke /var/log/maillog.

Untuk contoh lain, Anda dapat melihat skrip lengkap dari file /etc/syslog.conf. Sebagai pengetahuan Anda, berikut adalah contoh lengkap file /etc/syslog.conf.

Contoh isi file /etc/syslog.conf
# $FreeBSD$
#
#	Spaces ARE valid field separators in this file. However,
#	other *nix-like systems still insist on using tabs as field
#	separators. If you are sharing this file between systems, you
#	may want to use only tabs as field separators here.
#	Consult the syslog.conf(5) manpage.
*.err;kern.warning;auth.notice;mail.crit		/dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err	/var/log/messages
security.*					/var/log/security
auth.info;authpriv.info				/var/log/auth.log
mail.info					/var/log/maillog
cron.*						/var/log/cron
!-devd
*.=debug					/var/log/debug.log
*.emerg						*
daemon.info					/var/log/daemon.log
# uncomment this to log all writes to /dev/console to /var/log/console.log
# touch /var/log/console.log and chmod it to mode 600 before it will work
#console.info					/var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
#*.*						/var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.*						@loghost
# uncomment these if you're running inn
# news.crit					/var/log/news/news.crit
# news.err					/var/log/news/news.err
# news.notice					/var/log/news/news.notice
# Uncomment this if you wish to see messages produced by devd
# !devd
# *.>=notice					/var/log/devd.log
!*
include						/etc/syslog.d
include						/usr/local/etc/syslog.d
Selain format penulisan log file di atas, kita juga dapat menggunakan nama program sebagai istilah yang tepat untuk membuat log file. Entri untuk nama program memerlukan dua baris: baris pertama berisi nama program dengan tanda seru di depannya dan baris kedua mengatur logging. Untuk lebih jelasnya, kami akan memberikan contoh pembuatan file logging server NTP (Time Server). Dalam contoh ini kita akan membuat file /var/log/ntpd.log.

Dalam file syslog.conf, ketik perintah berikut untuk mengaktifkan file ntpd.log.

Mengaktifkan file log program ntpd di /etc/syslog.conf
!ntpdate
*.*                             /var/log/ntpd.log
Baris pertama menentukan nama program dan baris kedua menggunakan karakter pengganti untuk memberi tahu syslogd agar menambahkan semuanya ke file /var/log/ntpd.log.

2. Rotasi Log

Berkas log dapat tumbuh hingga ukuran yang besar, kita harus mengendalikan pertumbuhannya, seberapa besar berkas log dapat tumbuh sebelum kita memangkasnya. Cara standar untuk melakukan pembesaran berkas log adalah melalui rotasi log. Saat log diputar, log lama dihapus, berkas log saat ini ditutup dan diberi nama baru, dan berkas log baru dibuat untuk data baru.

Utilitas newsyslog adalah layanan yang mencegah pertumbuhan berkas log yang tidak terkendali. newsyslog akan memutar berkas log setelah jangka waktu tertentu dan menghapus berkas lama yang tidak diperlukan. Jika daemon syslog berjalan terus-menerus dan dimulai saat sistem dinyalakan, maka newsyslog berjalan dengan cron.

Saat newsyslog berjalan, ia membaca berkas /etc/newsyslog.conf dan memeriksa setiap berkas log yang tercantum di dalamnya. Jika kondisi untuk memutar log terpenuhi, log diputar dan tindakan lain diambil sebagaimana mestinya. /etc/newsyslog.conf menggunakan satu baris per berkas log; setiap baris memiliki tujuh bidang, seperti ini:


# logfilename          [owner:group]    mode count size  when   flags [/pid_file]  [sig_num]
/var/log/messages			600  7     1000  *      J
/var/log/kerberos.log			600  7	   1000	 *      J
/var/log/polipo        polipo:polipo    640  3     100   *      J     /var/run/polipo.pid 30

logfilename

Lokasi berkas log yang akan diproses.

[owner:group]

Nama pemilik dan grup berkas log, misalnya www:www, bind:bind, polipo:polipo dan lainnya.


root@router2:~ # chown -R polipo:polip /var/log/polipo

mode

Menyediakan mode izin dalam notasi tiga digit standar Unix. Biasanya menggunakan perintah "chmod".


root@router2:~ # chmod -R 640 /var/log/polipo

count

Kolom ini menentukan berkas log terlama yang harus disimpan oleh newsyslog. Nomor log yang diarsipkan newsyslog dari log terbaru ke log terlama, dimulai dengan yang terbaru sebagai log 0. Misalnya, dengan hitungan default 5 untuk /var/log/messages, Anda akan menemukan pesan log berikut:
messages
messages.0.bz
messages.1.bz
messages.2.bz
messages.3.bz
messages.4.bz
messages.5.bz

size

Ukuran adalah ukuran berkas dalam kilobyte. Ketika newsyslog dijalankan, ia akan membandingkan ukuran yang tercantum dalam berkas newsyslog dengan ukuran berkas. Jika berkas lebih besar dari ukuran yang diberikan, newsyslog akan memutar berkas tersebut. Jika Anda tidak ingin ukuran berkas terpengaruh ketika berkas diputar, beri tanda bintang "*" di kolom ukuran.

when

Kapan waktu rotasi, untuk mengubah berkas log. Kolom waktu memiliki empat jenis nilai valid yang berbeda: tanda bintang, angka, dan dua format tanggal yang berbeda. Jika Anda melakukan rotasi berdasarkan ukuran log, bukan usia, beri tanda bintang "*" di kolom ini. Jika Anda ingin log dirotasi setiap 24 jam tetapi tidak peduli dengan waktu pasti terjadinya, masukkan 24 di kolom ini.

flags

Kolom flags menentukan tindakan khusus apa pun yang akan diambil saat log diputar. Kolom ini paling sering memberi tahu newsyslog(8) cara mengompresi berkas log, tetapi Anda juga dapat memberi sinyal kepada proses saat log-nya diputar keluar dari bawahnya. Flag "J" memberi tahu newsyslog untuk mengompresi arsip dengan bzip, sementara flag Z menentukan kompresi gzip.

[/pid_file]

Bidang berikutnya adalah jalur pidfile, file pid mencatat ID proses program sehingga program lain dapat dengan mudah melihatnya. Jika Anda menyertakan jalur lengkap ke file pid, newsyslog mengirimkan kill -HUP ke program tersebut saat memutar log.

[sig_num]

Sebagian besar program merotasi berkas log pada SIGHUP, tetapi beberapa program memerlukan sinyal khusus saat log mereka dirotasi. Anda dapat mencantumkan sinyal yang diperlukan di kolom terakhir, setelah pidfile.

Untuk lebih memperjelas cara membuat berkas log rotasi, di bawah ini kami akan memberikan contoh pembuatan berkas log dalam program DNS Caching Unbound.

Buat berkas unbound.log, hak akses berkas, dan hak kepemilikan berkas.


root@router2:~ # touch /usr/local/etc/unbound/unbound.log
root@router2:~ # chmod -R 777 /usr/local/etc/unbound/unbound.log
root@router2:~ # chown -R unbound:unbound /usr/local/etc/unbound/unbound.log
Masukkan skrip di bawah ini dalam file /etc/newsyslog.conf.


/usr/local/etc/unbound/unbound.log  unbound:unbound     777  7     *    @T12  JBR   /usr/local/etc/unbound/log_reopen
Masukkan skrip di bawah ini ke dalam file /usr/local/etc/unbound/log_reopen.


#!/bin/sh

#This script restarts Unbound after log rotation by newsyslog(8)

/usr/local/sbin/unbound-control -q log_reopen

exit 0
Berikan hak akses dan kepemilikan pada file /usr/local/etc/unbound/log_reopen.


root@router2:~ # chmod -R 744  /usr/local/etc/unbound/log_reopen
root@router2:~ # chown -R unbound:unbound  /usr/local/etc/unbound/log_reopen
Dengan rotasi log pada sistem FreeBSD, beban kerja aplikasi yang diakses oleh banyak klien tidak terlalu berat, karena file log aplikasi tidak dapat tumbuh menjadi ukuran besar, ukuran filenya kecil, dan segera dipangkas oleh newsyslog.conf.
Subscribe on LinkedIn Cara Membuat Sistem Pencatatan Log FreeBSD atau Rotasi Log

Enclosures Link: Cara Membuat Sistem Pencatatan Log FreeBSD atau Rotasi Log

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar