Setiap distribusi Linux memiliki semacam mekanisme logging yang mencatat semua aktivitas sistem. Beberapa waktu yang lalu kami menyediakan daftar 20 file log yang disimpan di bawah /var/log yang mungkin dapat membantu Anda selama pemecahan masalah. Log ini sangat penting bagi sysadmin untuk tujuan pemecahan masalah.
Berikut ini adalah tiga metode umum untuk mencatat pesan:
- Logging di server yang sama:Pesan ditulis ke dalam hard drive lokal/basis data lokal
- Logging di server jauh:Banyak sistem meneruskan log mereka melalui jaringan ke server log pusat. Di server log pusat, pesan dari berbagai sistem ditulis ke hard drive/database lokal.
- Relay logging:Cabang 'A' dan Cabang 'B' mencatat pesan pada 2 server yang berbeda. Server ini secara bergantian mencatat pesan ke 'Kantor Pusat'.
Rsyslog adalah program logging default pada beberapa distribusi Linux termasuk sistem berbasis Debian dan Red Hat. Selain mengimplementasikan protokol syslog, rsyslog menambahkan fitur tambahan seperti pemfilteran berbasis konten. Ini juga menggunakan TCP untuk transportasi, dan menyediakan banyak opsi konfigurasi.
Artikel ini menjelaskan cara menerapkan metode 2 yang disebutkan di atas. yaitu Ini menjelaskan cara menyiapkan server logging pusat, dan mengirim log dari masing-masing server ke server logging pusat.
Penyiapan ini akan membantu Anda menganalisis file log semua server di infrastruktur Anda dari server log pusat.
Pemasangan
Rsyslog hadir sebagai program logging default di Distribusi Debian dan sistem berbasis Red Hat. Jika sistem Anda tidak memiliki rsyslog, instal seperti yang ditunjukkan di bawah ini tergantung pada distro Anda.
apt-get install rsyslog rsyslog-doc (or) yum install rsyslog rsyslog-doc
Konfigurasi rsyslog disimpan di file /etc/ryslog.conf dan file di bawah direktori /etc/rsyslog.d/.
Struktur Konfigurasi
Sebelum memahami cara mengatur server logging pusat, ada baiknya untuk memahami struktur konfigurasi rsyslog.
File konfigurasi Rsyslog disusun dengan cara berikut
- Modul
- Petunjuk Konfigurasi
- Baris aturan
Modul
Rsyslog memiliki arsitektur modular. Ini memungkinkan fungsionalitas ditambahkan secara dinamis melalui modul-modul ini. Modul dikategorikan sebagai:
- Modul Masukan – Digunakan untuk mengumpulkan pesan dari berbagai sumber
- Modul Output – Digunakan untuk menulis pesan ke berbagai tempat (file, socket dll.)
- Modul Parser – Digunakan untuk mengurai isi pesan
Harap dicatat bahwa ada juga kategori modul lain yang tersedia. Ini untuk memberikan gambaran tentang apa yang dapat dilakukan modul.
Petunjuk Konfigurasi
Semua arahan konfigurasi harus ditentukan satu per baris dan harus dimulai dengan tanda dolar ($). Ini memengaruhi aturan.
Baris aturan
Setiap baris aturan terdiri dari dua bidang, 'bidang pemilih' dan 'bidang tindakan'. Bidang pemilih dibagi menjadi dua, 'fasilitas &prioritas'. Tindakan menentukan tindakan apa yang harus diambil untuk aturan yang cocok.
Contoh Konfigurasi
###################### MODULES ###################### $ModLoad imuxsock $ModLoad imklog ###################### Directives ###################### # Set the default permissions for all log files. $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 ###################### RULES ###################### mail.info /var/log/mail.info mail.warn /var/log/mail.warn mail.err /var/log/mail.err daemon.* /var/log/daemon.log
Catatan:10 Contoh untuk Melihat File Log Besar di Linux mungkin berguna saat Anda memanipulasi file log.
Templat
Template adalah fitur yang sangat penting yang disediakan oleh rsyslog. Ini memungkinkan pengguna untuk mencatat pesan dalam format yang diinginkan. Ini juga dapat digunakan untuk membuat nama file dinamis untuk mencatat pesan. Dalam kasus logging database, template digunakan untuk mengonversi pesan menjadi pernyataan SQL yang tepat.
Contoh template akan terlihat seperti:
$template mytemplate “Text-Before %msg% Text-After\n”
Template di atas akan mencatat pesan “Ini halo dari rsyslog” sebagai:
Text-Before This is hello from rsyslog Text-After
Kita akan melihat bagaimana menggunakan template untuk menghasilkan file log secara dinamis.
Server Logging Pusat
Bagian di atas seharusnya memberikan gambaran umum tentang rsyslog dan cara mengkonfigurasinya. Sekarang kita akan beralih ke penyiapan sistem pencatatan terpusat.
Untuk diskusi kita, kita akan memiliki IP server sebagai “192.168.1.1” untuk server log pusat, di mana semua pesan log dari klien harus diteruskan.
Tambahkan baris berikut ke rsyslog.conf dari server server log pusat (Dalam contoh ini, baris berikut telah ditambahkan pada server log dengan alamat ip 192.168.1.1):
# provides support for local system logging $ModLoad imuxsock # provides kernel logging support (previously done by rklogd) $ModLoad imklog # provides UDP syslog reception. For TCP, load imtcp. $ModLoad imudp # For TCP, InputServerRun 514 $UDPServerRun 514 # This one is the template to generate the log filename dynamically, depending on the client's IP address. $template FILENAME,"/var/log/%fromhost-ip%/syslog.log" # Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), will be under a separate directory which is formed by the template FILENAME. *.* ?FILENAME
Setelah menambahkan baris di atas ke rsyslog.conf, mulai ulang proses rsyslog. Sekarang server rsyslog akan siap menerima pesan.
# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
Tambahkan baris berikut ke rsyslog.conf pada mesin klien individu yang harus mengirim pesan log mereka ke server pusat.
$ModLoad imuxsock $ModLoad imklog # Provides UDP forwarding. The IP is the server's IP address *.* @192.168.1.1:514 # Provides TCP forwarding. But the current server runs on UDP # *.* @@192.168.1.1:514
Mulai ulang proses rsyslog pada klien. Sekarang server pusat rsyslog (Dalam contoh ini, 192.168.1.1) akan menerima semua pesan log dari klien yang dikonfigurasi dan setiap log klien akan ditempatkan di bawah direktori terpisah.