Cara Menyiapkan Pelayan Pembalakan Pusat dengan RSYSLOG di Linux

Cara Menyiapkan Pelayan Pembalakan Pusat dengan RSYSLOG di Linux

Log adalah komponen kritikal bagi mana -mana perisian atau sistem operasi. Log biasanya merakam tindakan pengguna, peristiwa sistem, aktiviti rangkaian dan banyak lagi, bergantung pada apa yang dimaksudkan. Salah satu sistem pembalakan yang paling banyak digunakan pada sistem linux adalah rsyslog.

Rsyslog adalah sistem pemprosesan log yang kuat, selamat dan berprestasi tinggi yang menerima data dari pelbagai jenis sumber (sistem/aplikasi) dan mengeluarkannya ke dalam pelbagai format.

Ia telah berkembang dari biasa syslog Daemon ke sistem pembalakan peringkat perusahaan yang lengkap. Ia direka dalam model klien/pelayan, oleh itu ia boleh dikonfigurasikan sebagai pelanggan dan/atau sebagai pelayan pembalakan pusat untuk pelayan, peranti rangkaian, dan aplikasi jauh lain.

Persekitaran ujian

Untuk tujuan panduan ini, kami akan menggunakan tuan rumah berikut:

  • Pelayan: 192.168.241.140
  • Pelanggan: 172.31.21.58

Cara memasang dan mengkonfigurasi pelayan rsyslog

Sebilangan besar pengagihan linux disertakan dengan rsyslog Pakej dipasangkan. Sekiranya ia tidak dipasang, anda boleh memasangnya menggunakan alat Pengurus Pakej Linux anda seperti yang ditunjukkan.

$ sudo yum update && yum Pasang rsyslog #centos 7 $ sudo apt update && apt pastang rsyslog #ubuntu 16.04, 18.04 

Sekali rsyslog Dipasang, anda perlu memulakan perkhidmatan untuk sekarang, membolehkannya untuk memulakan automatik di boot dan periksa status dengan arahan SystemCtl.

$ sudo systemctl start rsyslog $ sudo systemctl enable rsyslog $ sudo systemctl status rsyslog 

Fail konfigurasi rsyslog utama terletak di /etc/rsyslog.Conf, Modul yang memuatkan, mentakrifkan arahan global, mengandungi peraturan untuk memproses mesej log dan ia juga merangkumi semua fail konfigurasi dalam /etc/rsyslog.d/ untuk pelbagai aplikasi/perkhidmatan.

$ sudo vim /etc /rsyslog.Conf 

Secara lalai, rsyslog menggunakan Imjournal dan Imusock modul untuk mengimport mesej log berstruktur dari Jurnal Systemd Dan untuk menerima mesej syslog dari aplikasi yang berjalan di sistem tempatan melalui soket Unix.

Modul rsyslog untuk pembalakan

Untuk mengkonfigurasi rsyslog sebagai pelayan pembalakan rangkaian/pusat, anda perlu menetapkan protokol (sama ada UDP atau TCP atau kedua -duanya) ia akan digunakan untuk penerimaan syslog jauh serta pelabuhan yang ia dengar.

Sekiranya anda mahu menggunakan a UDP sambungan, yang lebih cepat tetapi tidak boleh dipercayai, carian dan uncomment garis di bawah (ganti 514 Dengan port yang anda mahu ia dengar, ini sepadan dengan alamat port yang pelanggan menghantar mesej kepada, kami akan melihat ini lebih lanjut apabila mengkonfigurasi klien rsyslog).

$ Modload IMUDP $ udpserverrun 514 

Untuk menggunakan TCP Sambungan (yang lebih perlahan tetapi lebih dipercayai), carian dan uncomment garis di bawah.

$ Modload IMTCP $ InputtcpserverRun 514 

Dalam kes ini, kami mahu menggunakan sambungan UDP dan TCP pada masa yang sama.

Konfigurasikan pelayan pembalakan rsyslog

Seterusnya, anda perlu menentukan peraturan untuk memproses log jauh dalam format berikut.

kemudahan.Destinasi Severity_level (tempat menyimpan log) 

Di mana:

  • kemudahan: Adakah jenis mesej proses/aplikasi, mereka termasuk auth, cron, daemon, kernel, local0 ... local7. Menggunakan * bermaksud semua kemudahan.
  • Severity_level: Adakah jenis mesej log: Emerg-0, Alert-1, Crit-2, ERR-3, WARN-4, NOTIS-5, INFO-6, DEBUG-7. Menggunakan * bermaksud semua tahap keterukan dan tidak ada yang tidak menunjukkan tahap keterukan.
  • destinasi: sama ada fail tempatan atau pelayan rsyslog jauh (ditakrifkan dalam borang IP: port).

Kami akan menggunakan perkara berikut peraturan untuk mengumpul balak dari tuan rumah jauh, menggunakan REMOTELOGS templat. Perhatikan bahawa peraturan ini mesti berlaku sebelum peraturan untuk memproses mesej tempatan, seperti yang ditunjukkan dalam tangkapan skrin.

$ template template, "/var/log/%hostname%/%name%.log " *.* ?REMOTELOGS & ~ 
Tentukan Ruleset untuk pengarang rsyslog

Melihat perkara di atas peraturan, Peraturan pertama adalah "$ Template template,"/var/log/%hostname%/%name%.log ”".

Arahan itu $ template memberitahu daemon rsyslog untuk mengumpulkan dan menulis semua mesej terpencil yang diterima ke log yang berbeza di bawah /var/log, berdasarkan pada Nama Host (Nama Mesin Pelanggan) dan Kemudahan Pelanggan Jauh (Program/Aplikasi) yang menghasilkan mesej seperti yang ditakrifkan oleh tetapan yang terdapat dalam templat REMOTELOGS.

Baris kedua "*.* ?Remotelogs ” bermaksud mesej rekod dari semua kemudahan di semua tahap keterukan menggunakan REMOTELOGS Konfigurasi templat.

Baris akhir "& ~" mengarahkan rsyslog untuk berhenti memproses mesej setelah ditulis ke fail. Sekiranya anda tidak memasukkan "& ~", Mesej sebaliknya akan ditulis ke fail tempatan.

Terdapat banyak templat lain yang boleh anda gunakan, untuk maklumat lanjut, lihat halaman lelaki konfigurasi rsyslog (Man Rsyslog.Conf) atau rujuk dokumentasi dalam talian rsyslog.

Itu sahaja dengan mengkonfigurasi pelayan rsyslog. Simpan dan tutup fail konfigurasi. Untuk menggunakan perubahan baru -baru ini, mulakan semula daemon rsyslog dengan arahan berikut.

$ sudo systemctl mulakan semula rsyslog 

Sekarang sahkan soket rangkaian rsyslog. Menggunakan perintah ss (atau netstat dengan bendera yang sama) arahan dan paip output ke grep untuk menyaring sambungan rsyslogd.

$ sudo ss -tulnp | Grep "rsyslog" 
Periksa status rangkaian rsyslog

Seterusnya, pada Centos 7, jika anda mempunyai Selinux diaktifkan, jalankan arahan berikut untuk membolehkan trafik rsyslog berdasarkan jenis soket rangkaian.

$ sudo semanage -a -t syslogd_port_t -p udp 514 $ sudo semanage -a -t syslogd_port_t -p tcp 514 

Sekiranya sistem mempunyai firewall diaktifkan, anda perlu membuka pelabuhan 514 untuk membenarkan kedua -duanya UDP/TCP sambungan ke pelayan rsyslog, dengan menjalankan.

------------- Pada Centos ------------- $ sudo firewall-cmd --permanent --add-port = 514/udp $ sudo firewall-cmd --permanent --add-port = 514/tcp $ sudo firewall-cmd--reload ------------- Di Ubuntu ------------- $ sudo ufw membenarkan 514/udp $ sudo ufw membenarkan 514/tcp $ sudo ufw semula 

Cara Mengkonfigurasi RSYSLOG Client untuk menghantar log ke RSYSLOG Server

Sekarang di sistem klien, periksa sama ada perkhidmatan rsyslog berjalan atau tidak dengan arahan berikut.

$ sudo Systemctl Status Rsyslog 

Sekiranya ia tidak dipasang, pasangkannya dan mulakan perkhidmatan seperti yang ditunjukkan sebelumnya.

$ sudo yum update && yum Pasang rsyslog #centos 7 $ sudo apt update && apt pastang rsyslog #ubuntu 16.04, 18.04 $ sudo Systemctl Mula Rsyslog $ Sudo Systemctl Dayakan Rsyslog $ Sudo Systemctl Status Rsyslog 

Setelah perkhidmatan rsyslog berjalan dan berjalan, buka fail konfigurasi utama di mana anda akan melakukan perubahan pada konfigurasi lalai.

$ sudo vim /etc /rsyslog.Conf 

Untuk memaksa daemon rsyslog bertindak sebagai pelanggan log dan hantar semua mesej log yang dihasilkan secara tempatan ke pelayan RSYSLOG jauh, tambahkan peraturan pemajuan ini, pada akhir fail seperti yang ditunjukkan dalam tangkapan skrin berikut.

*. * @@ 192.168.100.10: 514 
Konfigurasikan klien rsyslog

Peraturan di atas akan menghantar mesej dari semua kemudahan dan di semua tahap keparahan. Untuk menghantar mesej dari kemudahan tertentu sebagai contoh auth, Gunakan peraturan berikut.

auth. * @@ 192.168.100.10: 514 

Simpan perubahan dan tutup fail konfigurasi. Untuk menggunakan tetapan di atas, mulakan semula daemon rsyslog.

$ sudo systemctl mulakan semula rsyslog 

Cara Memantau Pembalakan Jauh di Pelayan RSYSLOG

Langkah terakhir adalah untuk mengesahkan sama ada rsyslog sebenarnya menerima dan melayari mesej dari pelanggan, di bawah /var/log, dalam bentuk HostName/ProgramName.log.

Jalankan arahan LS ke penyenaraian panjang direktori Log Ibu bapa dan periksa jika terdapat direktori yang dipanggil IP-172.31.21.58 (atau apa sahaja nama hos mesin pelanggan anda).

 $ ls -l/var/log/ 
Periksa pembalakan klien rsyslog

Sekiranya direktori wujud, periksa fail log di dalamnya, dengan berjalan.

$ sudo ls -l/var/log/ip-172-31-21-58/ 
Semak log klien rsyslog
Ringkasan

Rsyslog adalah sistem pemprosesan log berprestasi tinggi, yang direka dalam seni bina klien/pelayan. Kami harap anda dapat memasang dan mengkonfigurasi Rsyslog Sebagai pelayan pembalakan pusat/rangkaian dan sebagai pelanggan seperti yang ditunjukkan dalam panduan ini.

Anda juga mungkin ingin merujuk kepada halaman manual rsyslog yang berkaitan untuk mendapatkan bantuan lebih lanjut. Jangan ragu untuk memberi maklum balas kepada kami atau bertanya.