Dalam posting ini, Anda akan belajar cara Mengekspor Log Server Anda dengan Rsyslog di Centos 8
Pada artikel ini, kita akan membahas pengaturan daemon CentOS/RHEL 8 RSyslog untuk mengirimkan pesan log ke server RSyslog jarak jauh. Konfigurasi ini memastikan bahwa ruang disk pada mesin Anda tersedia untuk tujuan lain.
Di CentOS 8, daemon Rsyslog sudah terinstal dan beroperasi secara default. Berikan perintah berikut untuk melihat apakah layanan rsyslog aktif pada sistem.
# grep rsyslog | rpm –q
# rsyslogd –v
Jika paket Rsyslog tidak diinstal pada sistem CentOS Anda, jalankan perintah di bawah ini untuk menginstalnya.
# yum install rsyslog
Ekspor Log Server Anda dengan RSyslog
Ubah file konfigurasi rsyslog sebagai berikut untuk memaksa daemon Rsyslog yang diinstal pada sistem CentOS 8 berfungsi sebagai klien log dan mengirim semua pesan log yang dibuat secara lokal ke server RSyslog yang jauh:
Untuk mulai mengubah, buka file konfigurasi utama:
# vim /etc/rsyslog.conf
Kemudian, seperti yang ditunjukkan dalam kutipan di bawah ini, tambahkan baris berikut di akhir file.
# *. * @192.168.1.59:514
Pastikan alamat IP dan FQDN server rsyslog jarak jauh diganti dengan benar di baris di atas. Baris sebelumnya memberi tahu daemon Rsyslog untuk mengirim semua pesan log ke IP 192.168.1.59 melalui port 514/UDP, terlepas dari fasilitas atau tingkat keparahannya.
Tambahkan karakter @ lain di depan host jarak jauh jika server log jarak jauh dikonfigurasi untuk hanya menerima koneksi TCP atau jika Anda ingin menggunakan protokol jaringan transport yang dapat diandalkan seperti TCP, seperti yang diilustrasikan dalam contoh di bawah ini:
# *. * @@logs.domain.lan:514
Karakter khusus, seperti =atau!, dapat diawali dengan tingkat prioritas di rsyslog Linux untuk menandakan “hanya prioritas ini” untuk tanda sama dengan dan “bukan prioritas ini atau lebih tinggi dari ini” untuk!
Berikut adalah beberapa contoh qualifier tingkat prioritas Rsyslog:
kern.info =Log kernel dengan prioritas informasi atau lebih tinggi.
kern.=info =Hanya pesan kernel dengan prioritas informasi yang diperbolehkan.
kern.info;kern.!err =Hanya pesan kernel dengan info prioritas, pemberitahuan, dan peringatan yang diperbolehkan.
kern.debug;kern.!=warning =Kecuali untuk peringatan, semua prioritas kernel adalah sama.
kern.* =Semua pesan dengan prioritas di kernel
kern.none =Terlepas dari prioritas, jangan mencatat pesan fasilitas kernel yang terkait.
Misalnya, jika Anda hanya ingin mengirim subset pesan fasilitas ke server log jarak jauh, seperti semua pesan email terkait, apa pun prioritasnya, tambahkan baris berikut ke file konfigurasi rsyslog:
# mail.* @192.168.1.59:514
Terakhir, agar pengaturan yang diperbarui berlaku, layanan Rsyslog harus dimulai ulang dengan perintah berikut:
# systemctl restart rsyslog.service
Jika daemon Rsyslog tidak diaktifkan selama waktu boot karena alasan tertentu, jalankan perintah berikut untuk mengaktifkan seluruh sistem layanan:
# systemctl enable rsyslog.service
Kirim Log Server Web ke Server Log Jarak Jauh
Dengan menambahkan baris berikut ke file konfigurasi utama Apache, seperti yang ditunjukkan di bawah ini, server HTTP dapat dikonfigurasi untuk mengirimkan pesan log ke server syslog jarak jauh.
# vim /etc/httpd/conf/httpd.conf
Pada file conf utama Apache tambahkan baris di bawah ini.
CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined
Baris tersebut memberi tahu daemon HTTP untuk menulis pesan log ke file log sistem file, tetapi juga memerintahkannya untuk mengirimnya ke server syslog yang jauh dengan menetapkannya sebagai berasal dari fasilitas local1.
Jika Anda juga ingin mengirim pesan log kesalahan Apache ke server syslog jarak jauh, buat aturan baru yang serupa dengan yang diberikan di atas, tetapi ubah nama file log httpd dan tingkat keparahan file log agar sesuai dengan prioritas kesalahan , seperti yang ditunjukkan pada contoh berikut:
ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"
Setelah Anda mengubah baris di atas, Anda harus memulai ulang daemon Apache untuk melihat perubahan diterapkan:
# systemctl restart httpd.service
Dengan menambahkan baris kode berikut ke file konfigurasi nginx, server web Nginx memiliki kemampuan bawaan untuk secara langsung mencatat pesannya ke server syslog jarak jauh pada versi 1.7.1.
error_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.1.59:514,facility=local7,tag=nginx,severity=info main;/code>
Untuk menerima log yang dikirim oleh server web Apache, buat perubahan berikut pada file konfigurasi rsyslog di server RSyslog jarak jauh.
local1.* @Apache_IP_address:514
Itu menyimpulkan diskusi kami. Anda telah berhasil menyiapkan daemon Rsyslog untuk dijalankan dalam mode klien, serta mengarahkan Apache atau Nginx untuk merutekan pesan log ke server syslog jarak jauh.
Jika sistem Anda rusak, Anda seharusnya dapat mengetahui apa yang salah dengan melihat konten file log yang disimpan di server syslog jarak jauh.
Sekarang Anda tahu cara mengekspor Log Server Anda menggunakan Rsyslog.
Lihat beranda kami untuk panduan lebih lanjut