File log sangat berguna untuk menganalisis dan mengatasi masalah apa pun yang terkait dengan sistem dan aplikasi di Linux. Secara default, semua file log berada di dalam direktori /var/log
di sistem operasi berbasis Linux. Ada beberapa jenis file log termasuk, cron, kernel, users, security dan sebagian besar file-file ini dikendalikan oleh layanan Rsyslog.
Rsyslog adalah sistem yang powerful dan aman untuk pemrosesan log. Server Rsyslog menerima log melalui jaringan dari beberapa server fisik atau virtual dan memantau kesehatan berbagai layanan. Dengan Rsyslog server, Anda dapat memonitor log untuk server lain, perangkat jaringan, dan aplikasi jarak jauh dari lokasi terpusat.
Dalam tutorial ini, kita akan belajar cara mengkonfigurasi Rsyslog server di server Ubuntu 18.04.
Prasyarat
- Dua server menjalankan Ubuntu 18.04.
- Alamat IP statis 192.168.0.101 dikonfigurasi pada mesin Rsyslog server dan 192.168.0.102 dikonfigurasi pada mesin Rsyslog client.
- Masuk sebagai root atau user dengan hak sudo.
Instal Rsyslog
Secara default, Rsyslog terinstall di server Ubuntu 18.04. Jika tidak diinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install rsyslog -y
Setelah menginstal Rsyslog, Anda dapat memeriksa versi Rsyslog dengan perintah berikut:
rsyslogd -v
Anda akan mendapatkan output berikut:
rsyslogd 8.32.0, compiled with: PLATFORM: x86_64-pc-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes systemd support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.
Setelah install Rsyslog, Anda dapat memeriksa versi Rsyslog dengan perintah berikut:
systemctl status rsyslog
Anda akan mendapatkan output berikut:
? rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 04:28:55 UTC; 1min 31s ago Docs: man:rsyslogd(8)RSyslog DocumentationMain PID: 724 (rsyslogd) Tasks: 4 (limit: 1114) CGroup: /system.slice/rsyslog.service ??724 /usr/sbin/rsyslogd -n Oct 22 04:28:53 ubuntu1804 systemd[1]: Starting System Logging Service... Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.32.0] Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's groupid changed to 106 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: rsyslogd's userid changed to 102 Oct 22 04:28:54 ubuntu1804 rsyslogd[724]: [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start Oct 22 04:28:55 ubuntu1804 systemd[1]: Started System Logging Service.
Konfigurasi Rsyslog Server
Rsyslog sekarang diinstal dan dijalankan. Selanjutnya, Anda harus mengkonfigurasinya untuk berjalan dalam mode server. Anda dapat melakukannya dengan mengedit file /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Pertama, Anda perlu mendefinisikan protokol baik UDP atau TCP atau keduanya.
Untuk menggunakan koneksi UDP dan TCP sekaligus, cari dan hapus komentar pada baris di bawah ini:
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
Selanjutnya, tentukan subnet, IP, atau domain tertentu untuk membatasi akses seperti yang ditunjukkan di bawah ini:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com $AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
Selanjutnya, Anda perlu membuat template untuk memberi tahu Rsyslog server cara menyimpan pesan syslog yang masuk. Tambahkan baris-baris berikut sebelum bagian ARAH GLOBAL:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs & ~
Simpan dan tutup file setelah Anda selesai. Kemudian, periksa konfigurasi Rsyslog untuk setiap kesalahan sintaks dengan perintah berikut:
rsyslogd -f /etc/rsyslog.conf -N1
Anda akan melihat output berikut:
rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Terakhir, restart layanan Rsyslog dengan perintah berikut:
systemctl restart rsyslog
Sekarang, verifikasi bahwa Rsyslog listening pada TCP/UDP dengan perintah netstat dan grep berikut:
netstat -4altunp | grep 514
Anda akan mendapatkan output berikut:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Konfigurasikan Rsyslog Client
Rsyslog Server telah diinstal dan dikonfigurasi untuk menerima log dari remote host. Sekarang, Anda perlu mengkonfigurasi Rsyslog client untuk mengirim pesan syslog ke remote Rsyslog server.
Masuk ke mesin Client dan buka file konfigurasi Rsyslog seperti yang ditunjukkan di bawah ini:
nano /etc/rsyslog.conf
Tambahkan baris berikut di akhir file:
##Enable sending of logs over UDP add the following line: *.* @192.168.0.101:514 ##Enable sending of logs over TCP add the following line: *.* @@192.168.0.101:514 ##Set disk queue when rsyslog server will be down: $ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
Simpan dan tutup file. Kemudian, restart server Rsyslog untuk menerapkan perubahan konfigurasi:
systemtcl restart rsyslog
Lihat Client Log
Pada titik ini, Rsyslog client dikonfigurasi untuk mengirim log mereka ke Rsyslog server.
Sekarang, masuk ke Rsyslog server dan periksa direktori /var/log
. Anda akan melihat entri dengan hostname mesin klien Anda termasuk beberapa file log:
ls /var/log/rsyslog-client/
Output:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
Kesimpulan
Pada artikel di atas, kita belajar cara menginstal dan mengkonfigurasi Rsyslog server di server Ubuntu 18.04. Kita juga belajar cara mengkonfigurasi klien Rsyslog untuk mengirim log ke Rsyslog server.