Konfigurasi Rsyslog Server dan Clinet di Ubuntu | UNIX LINUX EXPLORE
Edit

Konfigurasi Rsyslog Server dan Clinet di Ubuntu

Log pada sistem Linux apa pun sangat penting untuk menganalisis dan memecahkan masalah apa pun yang terkait dengan sistem dan aplikasi. Dengan bantuan alat seperti Rsyslog, Anda dapat dengan mudah mengirim log ini ke platform terpusat untuk visualisasi yang mudah. ​

Pada Linux, secara default, semua berkas log berada di folder /var/log. Ada beberapa jenis berkas log yang menyimpan berbagai pesan, yang dapat berupa cron, kernel, keamanan, peristiwa, pengguna, dll. Sebagian besar berkas log ini dikontrol oleh layanan rsyslog.

Pada sistem terkini dengan systemd, beberapa log dikelola oleh daemon journald dan ditulis dalam format biner. Log ini bersifat volatil karena ditulis ke RAM dan tidak tahan terhadap boot ulang sistem. Log ini sering ditemukan di ./run/log/journal/ Namun perlu dicatat bahwa journald juga dapat dikonfigurasi untuk menyimpan pesan log secara permanen dengan menulis ke file.




Rsyslog di Ubuntu adalah daemon pencatatan sistem yang kuat dan fleksibel yang digunakan untuk mengumpulkan, memfilter, menyimpan, dan meneruskan pesan log yang dihasilkan oleh sistem operasi dan aplikasi. Ini adalah versi yang disempurnakan dari layanan syslog tradisional, yang menyediakan fitur tambahan seperti pencatatan berkinerja tinggi, kemampuan penyaringan tingkat lanjut, dan dukungan untuk beberapa protokol pencatatan, termasuk TCP, UDP, dan RELP (Reliable Event Logging Protocol).

Rsyslog dapat menangani pesan log dari berbagai sumber dan mengarahkannya ke berbagai tujuan seperti file, basis data, atau server jarak jauh. Ini banyak digunakan dalam sistem pencatatan terpusat untuk tujuan pemantauan, pemecahan masalah, dan audit. Dengan memungkinkan konfigurasi terperinci, Rsyslog memungkinkan administrator Ubuntu untuk mengelola log sistem secara efisien dan memastikan informasi penting ditangkap dan disimpan dengan aman.

Tutorial ini menjelaskan cara mengonfigurasi layanan pencatatan terpusat di Ubuntu dengan Rsyslog. Konfigurasi terpusat seperti itu bermanfaat saat mengelola log dari beberapa server, karena anda tidak perlu masuk ke setiap server untuk meninjau log-nya, terutama jika ada banyak server.

Dengan solusi pencatatan terpusat, server host akan menerima entri log dari semua server klien sehingga dapat dipantau, dianalisis, dan diarsipkan di satu tempat. Biasanya solusi manajemen log yang dihosting cloud lebih disukai karena pengaturannya yang mudah, rangkaian fitur yang kaya, dan biaya yang transparan, tetapi solusi yang dihosting sendiri dapat menjadi opsi yang lebih tepat dalam beberapa penggunaan.

Rsyslog adalah pilihan yang baik dan populer untuk menyiapkan pencatatan terpusat karena menawarkan kinerja yang menakjubkan (hingga satu juta entri log per detik), pengiriman pesan melalui TCP, SSL, dan TLS, multi-threading, dan format pemfilteran dan keluaran yang sangat dapat dikonfigurasi. Ia juga dapat meneruskan entri log yang masuk ke tujuan lain setelah transformasi tertentu diterapkan padanya.


1. Menginstal dan mengaktifkan layanan Rsyslog

Pada bagian ini kita  akan mengkonfigurasi server rsyslog sebagai sistem manajemen Log pusat. Ini mengikuti model klien-server di mana layanan rsyslog akan mendengarkan pada port udp/tcp. Port default yang digunakan oleh rsyslog adalah 514. Pada sistem klien, rsyslog akan mengumpulkan dan mengirimkan log ke server rsyslog pusat melalui jaringan melalui port UDP atau TCP.

Saat bekerja dengan pesan syslog, ada tingkat prioritas/keparahan yang menjadi ciri khas file log. Yaitu:
  • emerg, panic (Darurat): Level 0: Ini adalah level log terendah. sistem tidak dapat digunakan.
  • alert (Peringatan): Level 1: tindakan harus segera diambil.
  • err (Kesalahan): Level 3: kondisi kritis.
  • warn (Peringatan): Level 4: kondisi peringatan.
  • notice (Pemberitahuan): Level 5: kondisi normal tetapi signifikan.
  • info (Informasi): Level 6: pesan informasional.
  • debug (Pencarian kesalahan): Level 7: Ini adalah level tertinggi dari pesan level debug
Rsyslog terinstal secara default pada sistem Ubuntu yang baru diinstal. Jika karena alasan apa pun paket tersebut tidak terinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut.

Install Rsyslog
[root@ns1 ~]# sudo apt-get update
[root@ns1 ~]# sudo apt-get install rsyslog -y
Setelah menginstal Rsyslog, Anda dapat memeriksa versi Rsyslog dengan perintah berikut.

periksa versi Rsyslog
[root@ns1 ~]# rsyslogd -v
Anda juga dapat memeriksa status Rsyslog dengan perintah berikut.

periksa status Rsyslog
[root@ns1 ~]# systemctl status rsyslog

2. Konfigurasi Server Rsyslog

Rsyslog kini telah terinstal dan berjalan. Selanjutnya, Anda harus mengonfigurasinya agar berjalan dalam mode server. Anda dapat mengedit berkas /etc/rsyslog.conf.

edit Rsyslog
[root@ns1 ~]# sudo nano /etc/rsyslog.conf
Pertama, Anda perlu menentukan protokol UDP atau TCP atau keduanya. Untuk menggunakan koneksi UDP dan TCP secara bersamaan, cari dan hapus komentar tanda (#) pada contoh script di bawah ini.


$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
Selanjutnya, tentukan subnet, IP, atau domain spesifik 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 harus membuat templat untuk memberi tahu server Rsyslog cara menyimpan pesan syslog yang masuk. Tambahkan baris berikut tepat sebelum bagian GLOBAL DIRECTIVES.


$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
Simpan dan tutup berkas setelah selesai. Kemudian, periksa konfigurasi Rsyslog untuk mengetahui kesalahan sintaksis dengan perintah berikut.

Periksa file rsyslog.con
[root@ns1 ~]# sudo rsyslogd -f /etc/rsyslog.conf -N1
Langkah terakhir pada konfigurasi Rsyslog server ini adalah restart Rsyslog.

Restart Rsyslog
[root@ns1 ~]# systemctl restart rsyslog
Sekarang lakukan verifikasi apakah Rsyslog mendengarkan TCP/UDP dengan perintah berikut.

periksa port 514, apakah telah terbuka atau belum
[root@ns1 ~]# netstat -4altunp | grep 514

3. Konfigurasi client Rsyslog

Setelah Server Rsyslog telah selesai diinstal dan dikonfigurasi untuk menerima log dari host jarak jauh. Sekarang anda lanjutkan dengan mengkonfigurasi pada bagian client Rsyslog untuk mengirim pesan syslog ke server Rsyslog jarak jauh. Masuk ke mesin client dan buka file konfigurasi Rsyslog seperti yang ditunjukkan di bawah ini.

Edit file rsyslog.con
[root@ns1 ~]# sudo nano /etc/rsyslog.conf
Tambahkan baris berikut di akhir berkas:


##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 berkas. Kemudian, mulai ulang server Rsyslog untuk menerapkan perubahan konfigurasi:

Restart Rsyslog
[root@ns1 ~]# systemtcl restart rsyslog

a. Melihat file log client

Pada titik ini, klien Rsyslog dikonfigurasi untuk mengirim log mereka ke server Rsyslog. Masuk ke server Rsyslog dan periksa direktori /var/log. Anda akan melihat entri dengan nama host mesin klien Anda, termasuk beberapa file log:

Lihat log client
[root@ns1 ~]# ls /var/log/rsyslog-client/

Dalam tutorial ini, Anda telah berhasil membuat layanan pencatatan terpusat dengan Rsyslog. Kita mulai dengan membahas nilai yang diberikan oleh layanan pencatatan terpusat, lalu menyiapkan server host Rsyslog yang akan menyimpan semua entri log dari masing-masing client. Setelah itu, kita mengkonfigurasi server client untuk meneruskan log-nya ke server pusat dan menguji konfigurasi untuk memastikan bahwa server tersebut berfungsi dengan benar.

Sekarang anda telah siap untuk meneruskan log ke server terpusat dari sebanyak mungkin client yang anda inginkan. Untuk menjamin bahwa entri log dari setiap client disimpan dalam direktori masing-masing, pastikan bahwa nama host setiap client bersifat unik. Jangan lupa juga untuk menggunakan Rotasi log pada server host untuk mencegah file log tumbuh terlalu besar dan untuk secara otomatis menghapus log yang lebih lama dari jumlah hari atau minggu tertentu.