Kebutuhan Server RSyslog Terpusat
Setiap sistem *NIX memiliki semacam fasilitas logging yang akan menghasilkan log teks yang dapat ditulis ke lokasi sembarang pada perangkat penyimpanan (biasanya, default ke partisi disk lokal). Sekarang, ini penting tetapi juga dapat menghasilkan masalah seperti:
- Anda harus memiliki ruang penyimpanan yang memadai di server lokal untuk menyimpan log.
- Anda perlu melakukan rotasi agar tidak tumbuh terlalu besar.
- Jika log berisi informasi sensitif seperti nomor kartu kredit, Anda ingin agar log tersebut disimpan di lokasi yang aman, sebaiknya bukan di server lokal.
- Anda dapat kehilangan log jika terjadi bencana di server dan data tidak dapat dipulihkan.
Untuk menghindari semua masalah seperti itu, kita dapat menggunakan server syslog terpusat. Server syslog terpusat menyediakan keamanan, penyimpanan yang memadai, fasilitas cadangan terpusat, dll.
Postingan tersebut menguraikan langkah-langkah untuk mengonfigurasi Rsyslog untuk mengirim file log ke server jauh menggunakan TCP serta UDP.
Mengonfigurasi Server RSyslog Terpusat
1. Edit /etc/rsyslog.conf dan batalkan komentar pada baris berikut:
Untuk TCP;
# vi /etc/rsyslog.conf $ModLoad imtcp $InputTCPServerRun 514
Untuk UDP;
# vi /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514Catatan :Anda dapat menggunakan mode TCP dan UDP untuk mentransfer log ke server rsyslog jarak jauh. Tetapi saya akan merekomendasikan menggunakan UDP karena sangat mudah di server klien dalam hal kinerja. Satu-satunya kelemahan menggunakan UDP adalah beberapa pesan log mungkin hilang jika server terlalu sibuk untuk menerima paket UDP. Gunakan TCP di mana log Anda sangat penting; jika tidak, tetap menggunakan UDP.
2. Simpan file dan mulai ulang layanan rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Mengonfigurasi Klien Rsyslog
1. Edit /etc/rsyslog.conf pada server klien dan tambahkan baris di bawah ini. Saat Anda menambahkan host jarak jauh dengan satu @ simbol, Anda menggunakan UDP. Untuk menggunakan TCP, gunakan @@ sebagai gantinya.
Untuk UDP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @remote-host:514 *.* @x.x.x.x:514
Untuk TCP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.* @@x.x.x.x:514
Di sini, ganti x.x.x.x dengan server rsyslog terpusat Anda. Jika Anda tidak ingin mengirim log dengan semua tingkat keparahan yang disertakan (*.*), Anda dapat mengedit baris terakhir dengan sesuatu seperti:
*.info @x.x.x.x:514
2. Simpan file dan mulai ulang layanan rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Memverifikasi Konfigurasi
Anda dapat menggunakan “logger ” untuk membuat pesan log secara manual dan melihat apakah server syslog jarak jauh menerimanya dengan benar.
Di server klien:
# logger "Test message from the system `hostname`"
Di server rsyslog Terpusat:
# tail /var/log/messages June 15 12:32:01 geeklab root: Test message from the system geeklab
Menjalankan Rsyslog pada port non-standar
Jika Anda ingin menjalankan rsyslog pada port selain port default 514, Anda harus melakukan perubahan selinux tambahan. Untuk melihat pengaturan port SELinux saat ini untuk rsyslog:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514
Untuk menambahkan port UDP 541 ke SELinux, gunakan perintah:
# semanage port -a -t syslogd_port_t -p udp 541
Verifikasi apakah port ditambahkan ke pengaturan SELinux:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 541, 514, 601, 20514