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 Documentation
Main 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.