Cara membuat pelayan log berpusat dengan rsyslog di centos/rhel 7

Cara membuat pelayan log berpusat dengan rsyslog di centos/rhel 7

Agar pentadbir sistem untuk mengenal pasti atau menyelesaikan masalah masalah pada a Centos 7 atau RHEL 7 sistem pelayan, ia mesti tahu dan melihat peristiwa yang berlaku pada sistem dalam tempoh tertentu dari fail log yang disimpan dalam sistem di /var/log direktori.

Pelayan Syslog pada mesin Linux boleh bertindak sebagai titik pemantauan pusat melalui rangkaian di mana semua pelayan, peranti rangkaian, router, suis dan kebanyakan perkhidmatan dalaman mereka yang menjana log, sama ada berkaitan dengan isu dalaman tertentu atau hanya mesej bermaklumat dapat menghantar log mereka.

Di atas Centos/RHEL 7 sistem, Rsyslog Daemon adalah pelayan log utama yang dipasangkan, diikuti oleh Sistem Daemon Jurnal (jurnal).

Rsyslog pelayan dalam membina sebagai perkhidmatan seni bina klien/pelayan dan dapat mencapai kedua -dua peranan serentak. Ia boleh dijalankan sebagai pelayan dan mengumpul semua log yang dihantar oleh peranti lain dalam rangkaian atau ia boleh dijalankan sebagai pelanggan dengan menghantar semua peristiwa sistem dalaman yang dilog masuk ke pelayan syslog endpoint jauh.

Apabila rsyslog dikonfigurasikan sebagai pelanggan, log boleh disimpan secara tempatan dalam fail di sistem fail tempatan atau boleh dihantar dari jauh dan bukannya menulisnya dalam fail yang disimpan di mesin atau menulis fail log peristiwa secara tempatan dan menghantarnya ke pelayan syslog jauh di pada masa yang sama.

Server Syslog mengendalikan sebarang mesej log menggunakan skim berikut:

jenis (kemudahan).Destinasi Keutamaan (Keparahan) (di mana untuk menghantar log) 

A. The kemudahan atau jenis data diwakili oleh proses sistem dalaman yang menghasilkan mesej. Dalam proses dalaman Linux (kemudahan) yang menjana log diseragamkan seperti berikut:

  • auth = mesej yang dihasilkan oleh proses pengesahan (log masuk).
  • Cron= mesej yang dihasilkan oleh proses yang dijadualkan (crontab).
  • Daemon = mesej yang dihasilkan oleh daemon (perkhidmatan dalaman).
  • kernel = mesej yang dihasilkan oleh kernel linux itu sendiri.
  • mel = mesej yang dihasilkan oleh pelayan mel.
  • syslog = mesej yang dihasilkan oleh daemon rsyslog itu sendiri.
  • lpr = mesej yang dihasilkan oleh pencetak tempatan atau pelayan cetak.
  • Local0 - Local7 = Mesej tersuai yang ditakrifkan oleh pentadbir (Local7 biasanya ditugaskan untuk Cisco atau Windows).

B. The keutamaan (keterukan) Tahap juga diseragamkan. Setiap keutamaan diberikan dengan singkatan standard dan nombor seperti yang diterangkan di bawah. Keutamaan ke -7 adalah tahap yang lebih tinggi dari semua.

  • muncul = Kecemasan - 0
  • amaran = Makluman - 1
  • err = Kesilapan - 3
  • memberi amaran = Amaran - 4
  • notis = Pemberitahuan - 5
  • maklumat = Maklumat - 6
  • debug = Debugging - 7

Kata kunci rsyslog khas:

  • * = semua kemudahan atau keutamaan
  • Tiada = kemudahan tidak mempunyai keutamaan yang diberikan misalnya: mel.Tiada

C. Bahagian ketiga untuk skema syslog diwakili oleh destinasi arahan. Rsyslog daemon boleh menghantar mesej log untuk ditulis dalam fail di sistem fail tempatan (kebanyakannya dalam fail di /var/log/ direktori) atau disalurkan ke proses tempatan yang lain atau dihantar ke konsol pengguna tempatan (ke stdout), atau hantar mesej ke pelayan syslog jauh melalui protokol TCP/UDP, atau bahkan membuang mesej ke /dev/null.

Untuk mengkonfigurasi Centos/RHEL 7 Sebagai pelayan log pusat, pertama kita perlu menyemak dan memastikan bahawa /var partition di mana semua fail log direkodkan cukup besar (minimum gb minimum) untuk dapat menyimpan semua fail log yang akan dihantar oleh peranti lain. Ini adalah keputusan yang baik untuk menggunakan pemacu berasingan (LVM, RAID) untuk melancarkan /var/log/ direktori.

Keperluan

  1. Centos 7.3 prosedur pemasangan
  2. RHEL 7.3 prosedur pemasangan

Cara Mengkonfigurasi RSYSLOG di CentOS/RHEL 7 Server

1. Secara lalai, Rsyslog perkhidmatan dipasang secara automatik dan harus dijalankan Centos/RHEL 7. Untuk memeriksa sama ada daemon dimulakan dalam sistem, mengeluarkan arahan berikut dengan keistimewaan root.

# status sistem rsyslog.perkhidmatan 
Semak perkhidmatan rsyslog

Sekiranya perkhidmatan tidak berjalan secara lalai, laksanakan arahan di bawah untuk memulakan daemon rsyslog.

# Systemctl Mula Rsyslog.perkhidmatan 

2. Jika pakej rsyslog tidak dipasang pada sistem yang anda ingin gunakan sebagai pelayan pembalakan berpusat, tolong perintah berikut untuk memasang pakej rsyslog.

# yum pasang rsyslog 

3. Langkah pertama yang perlu kita lakukan pada sistem untuk mengkonfigurasi daemon rsyslog sebagai pelayan log terpusat, jadi ia dapat menerima mesej log untuk pelanggan luaran, adalah membuka dan mengedit, menggunakan editor teks kegemaran anda, fail konfigurasi utama dari /etc/rsyslog.Conf, Seperti yang ditunjukkan dalam petikan di bawah.

# vi /etc /rsyslog.Conf 

Dalam fail konfigurasi utama rsyslog, cari dan uncomment baris berikut (keluarkan hashtag # menandatangani pada baris bermula) untuk menyediakan penerimaan pengangkutan UDP ke pelayan rsyslog melalui 514 pelabuhan. UDP adalah protokol standard yang digunakan untuk penghantaran log oleh rsyslog.

$ Modload IMUDP $ udpserverrun 514 
Konfigurasikan pelayan rsyslog

4. Protokol UDP tidak mempunyai overhead TCP, yang menjadikannya lebih cepat untuk menghantar data daripada protokol TCP. Sebaliknya, protokol UDP tidak menjamin kebolehpercayaan data yang dihantar.

Walau bagaimanapun, jika anda perlu menggunakan protokol TCP untuk penerimaan log, anda mesti mencari dan tidak mengisahkan baris berikut dari /etc/rsyslog.Conf fail untuk mengkonfigurasi daemon rsyslog untuk mengikat dan mendengar soket TCP pada port 514. Soket mendengar TCP dan UDP untuk penerimaan boleh dikonfigurasikan pada pelayan rsyslog secara serentak.

$ Modload IMTCP $ InputtcpserverRun 514 

5. Pada langkah seterusnya, jangan tutup fail lagi, buat templat baru yang akan digunakan untuk menerima mesej jauh. Templat ini akan mengarahkan pelayan rsyslog tempatan di mana untuk menyimpan mesej yang diterima oleh pelanggan rangkaian syslog. Templat mesti ditambah sebelum permulaan Arahan global blok seperti yang digambarkan dalam petikan di bawah.

$ template template, "/var/log/%hostname%/%name%."  . ?REMOTELOGS & ~ 
Buat templat rsyslog

Di atas $ template template Arahan mengarahkan daemon rsyslog untuk mengumpul dan menulis semua mesej log yang diterima kepada fail yang berbeza, berdasarkan nama mesin klien dan kemudahan klien jauh (aplikasi) yang menghasilkan mesej berdasarkan sifat yang ditetapkan dalam konfigurasi templat: %Hostname% dan %ProgramName%.

Semua fail log ini akan ditulis ke sistem fail tempatan ke fail berdedikasi yang dinamakan selepas nama hos mesin klien dan disimpan dalam/var/log/direktori.

The & ~ Peraturan Redirect mengarahkan pelayan rsyslog tempatan untuk berhenti memproses mesej log yang diterima lebih lanjut dan buang mesej (tidak menuliskannya ke fail log dalaman).

The REMOTELOGS Nama adalah nama sewenang -wenang yang diberikan kepada arahan templat ini. Anda boleh menggunakan nama apa sahaja yang boleh anda dapati paling sesuai untuk templat anda.

Untuk menulis semua mesej yang diterima daripada pelanggan dalam satu fail log yang dinamakan selepas alamat IP klien jauh, tanpa menapis kemudahan yang menjana mesej, gunakan petikan di bawah.

$ template darip, "/var/log/%fromhost-ip%."  . ?Fromip & ~ 

Satu lagi contoh templat di mana semua mesej dengan bendera kemudahan auth akan dilog masuk ke templat bernama "TmplAuth".

$ template tmplauth, "/var/log/%hostname%/%name%.log "AuthPriv.* ?TmplAuth 

Berikut adalah bentuk petikan definisi templat dari pelayan RSYSLOG 7:

templat (name = "tmplmsg" type = "string" string = "/var/log/remote/msg/%hostname%/%name ::: SecPath-Replace%.log ") 

Petikan templat di atas juga boleh ditulis sebagai:

templat (name = "tmplmsg" type = "list") constant (value = "/var/log/remote/msg/") property (name = "hostName") constant (value = "/") property (name = = name = name = name "Nama Program" SecurePath = "Ganti") tetap (nilai = ".log ") 

Untuk menulis templat rsyslog kompleks, baca manual fail konfigurasi rsyslog dengan mengeluarkan Man Rsyslog.Conf perintah atau rujuk dokumentasi dalam talian rsyslog.

6. Selepas anda menyunting fail konfigurasi RSYSLOG dengan tetapan anda sendiri seperti yang dijelaskan di atas, mulakan semula daemon rsyslog untuk menggunakan perubahan dengan mengeluarkan arahan berikut:

# perkhidmatan rsyslog mulakan semula 

7. Sekarang, pelayan rsyslog harus dikonfigurasikan untuk bertindak sebagai pelayan log terpusat dan merakam mesej dari klien syslog. Untuk mengesahkan soket rangkaian rsyslog, jalankan perintah netstat dengan keistimewaan root dan gunakan grep untuk menapis rentetan rsyslog.

# netstat -tulpn | Grep rsyslog 
Sahkan soket rangkaian rsyslog

8. Sekiranya anda mempunyai selinux diaktifkan Centos/RHEL 7, Mengeluarkan arahan berikut untuk mengkonfigurasi selinux untuk membolehkan trafik rsyslog bergantung pada jenis soket rangkaian.

# semenage -a -t syslogd_port_t -p udp 514 # semenage -a -t syslogd_port_t -p tcp 514 

9. Sekiranya firewall diaktifkan dan aktif, jalankan arahan di bawah untuk menambah peraturan yang diperlukan untuk membuka port rsyslog di firewalld.

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

Itu sahaja! Rsyslog kini dikonfigurasi dalam mod pelayan dan dapat memusatkan log dari pelanggan jauh. Dalam artikel seterusnya, kita akan melihat cara mengkonfigurasi klien rsyslog pada pelayan centos/rhel 7.

Menggunakan pelayan rsyslog sebagai titik pemantauan pusat untuk mesej log jauh, anda boleh memeriksa fail log dan memerhatikan status kesihatan pelanggan atau masalah pelanggan debug lebih mudah apabila sistem kemalangan atau berada di bawah beberapa jenis serangan.