Nustatykite centralizuotą žurnalo serverį naudodami „Rsyslog“ „CentOS/RHEL 8“.


Kad sistemos administratoriai galėtų atpažinti arba analizuoti problemas CentOS 8 arba RHEL 8 serveryje, svarbu žinoti ir peržiūrėti įvykius, kurie įvyko serveryje. tam tikrą laikotarpį iš žurnalo failų, rastų sistemos kataloge /var/log.

Sistema Syslog (System Logging Protocol) serveryje gali veikti kaip centrinis žurnalo stebėjimo taškas tinkle, kuriame veikia visi serveriai, tinklo įrenginiai, jungikliai, maršruto parinktuvai ir vidinės paslaugos. kurti žurnalus, susijusius su konkrečia vidine problema, ar tiesiog informaciniais pranešimais gali siųsti savo žurnalus.

CentOS/RHEL 8 serveryje Rsyslog demonas yra svarbiausias žurnalo serveris, kuris yra iš anksto įdiegtas pagal numatytuosius nustatymus, po kurio seka Systemd Journal Daemon (žurnalas).

Rsyslog yra atvirojo kodo programa, sukurta kaip kliento/serverio architektūros paslauga ir gali atlikti abu vaidmenis atskirai. Jis gali veikti kaip serveris ir rinkti visus žurnalus, kuriuos per tinklą perduoda kiti įrenginiai, arba gali veikti kaip klientas, siųsdamas visus vidinius sistemos įvykius, užregistruotus į nuotolinį Syslog serverį.

Reikalavimai

  1. „CentOS 8.0“ diegimas su ekrano kopijomis
  2. RHEL 8 diegimas su ekrano kopijomis

Norėdami nustatyti centralizuotą žurnalo serverį CentOS/RHEL 8 serveryje, turite patikrinti, ar /var skaidinyje yra pakankamai vietos (mažiausiai keli GB ), kad išsaugotumėte visus sistemoje įrašytus žurnalo failus, kuriuos siunčia kiti tinklo įrenginiai. Rekomenduoju turėti atskirą diską (LVM arba RAID), kad galėtumėte prijungti /var/log/ katalogą.

Kaip sukonfigūruoti „Rsyslog“ serverį „CentOS/RHEL 8“.

1. Kaip jau sakiau, Rsyslog paslauga įdiegta ir veikia automatiškai CentOS/RHEL 8 serveryje. Norėdami patikrinti, ar demonas veikia sistemoje, paleiskite šią komandą.

systemctl status rsyslog.service

Jei paslauga neveikia pagal numatytuosius nustatymus, paleiskite šią komandą, kad paleistumėte rsyslog demoną.

systemctl start rsyslog.service

2. Jei Rsyslog paslaugų programa nėra įdiegta pagal numatytuosius nustatymus sistemoje, kurią planuojate naudoti kaip centralizuotą registravimo serverį, paleiskite šią dnf komandą, kad įdiegtumėte rsyslog paketą ir paleisti demoną.


dnf install rsyslog
systemctl start rsyslog.service

3. Įdiegę Rsyslog paslaugų programą, dabar galite sukonfigūruoti rsyslog kaip centralizuotą registravimo serverį atidarę pagrindinį konfigūracijos failą /etc/rsyslog.conf , norėdami gauti žurnalo pranešimus išoriniams klientams.

vi /etc/rsyslog.conf

Konfigūracijos faile /etc/rsyslog.conf raskite šias eilutes ir atšaukite komentarus, kad suteiktumėte UDP perdavimo priėmimą Rsyslog serveriui per 514 prievadą . Rsyslog žurnalų perdavimui naudoja standartinį UDP protokolą.

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

4. UDP protokolas neturi TCP, todėl duomenys perduodami greičiau nei naudojant TCP protokolą. Kita vertus, UDP protokolas negarantuoja perduodamų duomenų patikimumo.

Tačiau, jei norite naudoti TCP protokolą žurnalų gavimui, turite rasti ir panaikinti šias eilutes /etc/rsyslog.conf konfigūracijos faile, kad sukonfigūruotumėte Rsyslog demonas, skirtas susieti ir klausytis TCP lizdo 514 prievade.

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

5. Dabar sukurkite naują šabloną nuotoliniams pranešimams gauti, nes šis šablonas nukreips vietinį Rsyslog serverį, kur bus išsaugoti gauti pranešimai, kuriuos siunčia Syslog tinklo klientai.


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

$template RemoteLogs direktyva vadovauja Rsyslog demonui rinkti ir įrašyti visus perduotus žurnalo pranešimus į skirtingus failus, remiantis kliento pavadinimu ir nuotolinio kliento programa, kuri sukūrė pranešimus pagal apibūdintas savybes, pridėtas šablono konfigūracija: %HOSTNAME% ir %PROGRAMNAME%.

Visi gauti žurnalo failai bus įrašyti į vietinę failų sistemą į priskirtą failą, pavadintą pagal kliento kompiuterio pagrindinio kompiuterio pavadinimą ir saugomi /var/log/ kataloge.

Peradresavimo taisyklė & ~ nurodo vietiniam Rsyslog serveriui sustabdyti gauto žurnalo pranešimo apdorojimą ir pašalinti pranešimus (neįrašyti jų į vidinius žurnalo failus).

RemoteLogs yra savavališkas pavadinimas, suteiktas šiai šablono direktyvai. Galite naudoti bet kokį pavadinimą, kuris geriausiai tinka jūsų šablonui.

Norėdami sukonfigūruoti sudėtingesnius Rsyslog šablonus, perskaitykite Rsyslog konfigūracijos failo vadovą paleisdami komandą man rsyslog.conf arba peržiūrėkite Rsyslog internetinę dokumentaciją.

man rsyslog.conf

6. Atlikę aukščiau nurodytus konfigūracijos pakeitimus, galite iš naujo paleisti Rsyslog demoną, kad pritaikytumėte naujausius pakeitimus, vykdydami šią komandą.

service rsyslog restart

7. Iš naujo paleidus Rsyslog serverį, jis dabar turėtų veikti kaip centralizuotas žurnalo serveris ir įrašyti pranešimus iš Syslog klientų. Norėdami patvirtinti Rsyslog tinklo lizdus, paleiskite komandą netstat ir naudokite grep įrankį rsyslog eilutei filtruoti.

netstat -tulpn | grep rsyslog 

Jei netstat komanda neįdiegta CentOS 8, galite ją įdiegti naudodami šią komandą.


dnf whatprovides netstat
dnf install net-tools

8. Jei CentOS/RHEL 8 suaktyvinote SELinux, paleiskite šią komandą, kad leistumėte rsyslog srautą, atsižvelgiant į tinklo lizdo tipą.

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

Jei komanda semanage neįdiegta CentOS 8, galite ją įdiegti naudodami šią komandą.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Jei sistemoje yra aktyvi ugniasienė, paleiskite šią komandą, kad pridėtumėte reikiamas taisykles, leidžiančias rsyslog srautą ugniasienės prievaduose.


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

Taip pat galite apriboti įeinančius ryšius per prievadą 514 iš į baltąjį sąrašą įtrauktų IP diapazonų, kaip parodyta.


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

Tai viskas! Rsyslog dabar sukonfigūruotas kaip centralizuotas žurnalų serveris ir gali rinkti žurnalus iš nuotolinių klientų. Kitame straipsnyje pamatysime, kaip sukonfigūruoti Rsyslog klientą CentOS/RHEL 8 serveryje.