Siapkan Server Log Terpusat dengan Rsyslog di CentOS/RHEL 8


Agar administrator sistem dapat mengenali atau menganalisis masalah pada server CentOS 8 atau RHEL 8, penting untuk mengetahui dan melihat peristiwa yang terjadi pada server dalam keadaan jangka waktu tertentu dari file log yang ditemukan di direktori /var/log dalam sistem.

Sistem Syslog (System Logging Protocol) di server dapat bertindak sebagai titik pemantauan log pusat melalui jaringan tempat semua server, perangkat jaringan, switch, router, dan layanan internal yang membuat log, baik terkait dengan masalah internal tertentu atau hanya pesan informatif yang dapat mengirimkan lognya.

Pada server CentOS/RHEL 8, daemon Rsyslog adalah server log terpenting yang telah diinstal sebelumnya secara default, diikuti oleh Systemd Journal Daemon (< kuat>jurnal).

Rsyslog adalah utilitas sumber terbuka, yang dikembangkan sebagai layanan arsitektur klien/server dan dapat mencapai kedua peran secara independen. Ini dapat dijalankan sebagai server dan mengumpulkan semua log yang dikirimkan oleh perangkat lain melalui jaringan atau dapat dijalankan sebagai klien dengan mengirimkan semua peristiwa sistem internal yang dicatat ke server Syslog jarak jauh.

Persyaratan

  1. Instalasi “CentOS 8.0″ dengan Screenshot
  2. Pemasangan RHEL 8 dengan Screenshot

Untuk menyiapkan server log terpusat pada server CentOS/RHEL 8, Anda perlu memeriksa konfirmasi bahwa partisi /var memiliki cukup ruang (minimal beberapa GB ) untuk menyimpan semua file log yang direkam pada sistem yang dikirim oleh perangkat lain di jaringan. Saya menyarankan Anda untuk memiliki drive terpisah (LVM atau RAID) untuk memasang direktori /var/log/.

Cara Mengonfigurasi Server Rsyslog di CentOS/RHEL 8

1. Seperti yang saya katakan, layanan Rsyslog diinstal dan berjalan secara otomatis di server CentOS/RHEL 8. Untuk memverifikasi bahwa daemon berjalan di sistem, jalankan perintah berikut.

systemctl status rsyslog.service

Jika layanan tidak berjalan secara default, jalankan perintah berikut untuk memulai daemon rsyslog.

systemctl start rsyslog.service

2. Jika utilitas Rsyslog tidak diinstal secara default pada sistem yang Anda rencanakan untuk digunakan sebagai server logging terpusat, jalankan perintah dnf berikut untuk menginstal paket rsyslog dan memulai daemon.


dnf install rsyslog
systemctl start rsyslog.service

3. Setelah utilitas Rsyslog diinstal, Anda kini dapat mengonfigurasi rsyslog sebagai server logging terpusat dengan membuka file konfigurasi utama /etc/rsyslog.conf , untuk menerima pesan log untuk klien eksternal.

vi /etc/rsyslog.conf

Dalam file konfigurasi /etc/rsyslog.conf, temukan dan hapus komentar pada baris berikut untuk memberikan penerimaan transport UDP ke server Rsyslog melalui port 514 . Rsyslog menggunakan protokol UDP standar untuk transmisi log.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. Protokol UDP tidak memiliki overhead TCP, dan membuat transmisi data lebih cepat dibandingkan protokol TCP. Di sisi lain, protokol UDP tidak menjamin keandalan data yang dikirimkan.

Namun, jika Anda ingin menggunakan protokol TCP untuk penerimaan log, Anda harus menemukan dan menghapus komentar pada baris berikut di /etc/rsyslog.conf file konfigurasi untuk mengkonfigurasi Rsyslog daemon untuk mengikat dan mendengarkan soket TCP pada port 514.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Sekarang buat templat baru untuk menerima pesan jarak jauh, karena templat ini akan memandu server Rsyslog lokal, tempat menyimpan pesan yang diterima yang dikirim oleh klien jaringan Syslog.


$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

Arahan $template RemoteLogs memandu daemon Rsyslog untuk mengumpulkan dan menulis semua pesan log yang dikirimkan ke file berbeda, berdasarkan nama klien dan aplikasi klien jarak jauh yang membuat pesan berdasarkan properti garis besar yang ditambahkan di konfigurasi templat: %HOSTNAME% dan %PROGRAMNAME%.

Semua file log yang diterima akan ditulis ke sistem file lokal ke file yang dialokasikan dengan nama host mesin klien dan disimpan di direktori /var/log/.

Aturan pengalihan & ~ mengarahkan server Rsyslog lokal untuk berhenti memproses pesan log yang diterima lebih lanjut dan menghapus pesan tersebut (bukan menuliskannya ke file log internal).

RemoteLogs adalah nama arbitrer yang diberikan pada arahan templat ini. Anda dapat menggunakan nama apa pun yang Anda inginkan yang paling sesuai untuk template Anda.

Untuk mengonfigurasi templat Rsyslog yang lebih kompleks, baca manual file konfigurasi Rsyslog dengan menjalankan perintah man rsyslog.conf atau lihat dokumentasi online Rsyslog.

man rsyslog.conf

6. Setelah melakukan perubahan konfigurasi di atas, Anda dapat memulai ulang daemon Rsyslog untuk menerapkan perubahan terkini dengan menjalankan perintah berikut.

service rsyslog restart

7. Setelah Anda memulai ulang server Rsyslog, server tersebut sekarang akan bertindak sebagai server log terpusat dan mencatat pesan dari klien Syslog. Untuk mengonfirmasi soket jaringan Rsyslog, jalankan perintah netstat dan gunakan utilitas grep untuk memfilter string rsyslog.

netstat -tulpn | grep rsyslog 

Jika perintah netstat tidak diinstal pada CentOS 8, Anda dapat menginstalnya menggunakan perintah berikut.


dnf whatprovides netstat
dnf install net-tools

8. Jika Anda memiliki SELinux yang aktif di CentOS/RHEL 8, jalankan perintah berikut untuk mengizinkan lalu lintas rsyslog bergantung pada jenis soket jaringan.

semanage port -a -t syslogd_port_t -p udp 514
semanage port -a -t syslogd_port_t -p tcp 514

Jika perintah semanage tidak diinstal pada CentOS 8, Anda dapat menginstalnya menggunakan perintah berikut.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Jika Anda memiliki firewall yang aktif di sistem, jalankan perintah berikut untuk menambahkan aturan yang diperlukan untuk mengizinkan lalu lintas rsyslog pada port di Firewalld.


firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload

Anda juga dapat membatasi koneksi masuk pada port 514 dari rentang IP yang masuk daftar putih seperti yang ditunjukkan.


firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
firewall-cmd --reload

Itu saja! Rsyslog kini dikonfigurasi sebagai server log terpusat dan dapat mengumpulkan log dari klien jarak jauh. Pada artikel berikutnya, kita akan melihat cara mengkonfigurasi klien Rsyslog di server CentOS/RHEL 8.