Postavite centralizirani log poslužitelj s Rsyslogom u CentOS/RHEL 8


Kako bi administratori sustava mogli prepoznati ili analizirati probleme na poslužitelju CentOS 8 ili RHEL 8, važno je znati i vidjeti događaje koji su se dogodili na poslužitelju u određeni vremenski period iz datoteka dnevnika pronađenih u /var/log direktoriju u sustavu.

Sustav Syslog (System Logging Protocol) na poslužitelju može djelovati kao središnja točka za nadzor dnevnika preko mreže gdje su svi poslužitelji, mrežni uređaji, prekidači, usmjerivači i interne usluge koje kreirati zapisnike, bilo da su povezani s određenim internim problemom ili samo informativne poruke, mogu poslati svoje zapisnike.

Na CentOS/RHEL 8 poslužitelju, Rsyslog demon je najvažniji log server koji dolazi unaprijed instaliran prema zadanim postavkama, a slijedi ga Systemd Journal Daemon (< jak>časopis).

Rsyslog je uslužni program otvorenog koda, razvijen kao usluga arhitekture klijent/poslužitelj i može ostvariti obje uloge neovisno. Može raditi kao poslužitelj i skupljati sve zapisnike koje su drugi uređaji prenijeli preko mreže ili može raditi kao klijent slanjem svih internih događaja sustava zabilježenih na udaljeni Syslog poslužitelj.

Zahtjevi

  1. Instalacija “CentOS 8.0″ sa snimkama zaslona
  2. Instalacija RHEL 8 sa snimkama zaslona

Kako biste postavili centralizirani poslužitelj dnevnika na CentOS/RHEL 8 poslužitelju, trebate potvrditi da particija /var ima dovoljno prostora (najmanje nekoliko GB ) za pohranjivanje svih snimljenih datoteka dnevnika u sustavu koje šalju drugi uređaji na mreži. Preporučujem vam da imate zaseban pogon (LVM ili RAID) za montiranje direktorija /var/log/.

Kako konfigurirati Rsyslog poslužitelj u CentOS/RHEL 8

1. Kao što sam rekao, usluga Rsyslog instalirana je i automatski se pokreće na CentOS/RHEL 8 poslužitelju. Kako biste provjerili radi li demon u sustavu, pokrenite sljedeću naredbu.

systemctl status rsyslog.service

Ako usluga nije pokrenuta prema zadanim postavkama, pokrenite sljedeću naredbu za pokretanje rsyslog demona.

systemctl start rsyslog.service

2. Ako uslužni program Rsyslog nije instaliran prema zadanim postavkama na sustavu koji planirate koristiti kao centralizirani poslužitelj za bilježenje, pokrenite sljedeću naredbu dnf da instalirate paket rsyslog i pokrenite demona.


dnf install rsyslog
systemctl start rsyslog.service

3. Nakon instaliranja uslužnog programa Rsyslog, sada možete konfigurirati rsyslog kao centralizirani poslužitelj za bilježenje otvaranjem glavne konfiguracijske datoteke /etc/rsyslog.conf , kako biste primali poruke dnevnika za vanjske klijente.

vi /etc/rsyslog.conf

U konfiguracijskoj datoteci /etc/rsyslog.conf pronađite i odkomentirajte sljedeće retke kako biste odobrili prijem UDP prijenosa poslužitelju Rsyslog preko porta 514 . Rsyslog koristi standardni UDP protokol za prijenos dnevnika.

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

4. UDP protokol nema TCP opterećenje i čini prijenos podataka bržim od TCP protokola. S druge strane, UDP protokol ne jamči pouzdanost prenesenih podataka.

Međutim, ako želite koristiti TCP protokol za prijem dnevnika, morate pronaći i odkomentirati sljedeće retke u /etc/rsyslog.conf konfiguracijskoj datoteci kako biste konfigurirali Rsyslog demon za vezanje i slušanje TCP utičnice na portu 514.

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

5. Sada stvorite novi predložak za primanje udaljenih poruka, budući da će ovaj predložak voditi lokalni Rsyslog poslužitelj, gdje treba spremiti primljene poruke koje šalju Syslog mrežni klijenti.


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

Direktiva $template RemoteLogs vodi Rsyslog demona da skupi i zapiše sve poslane poruke dnevnika u različite datoteke, na temelju naziva klijenta i aplikacije udaljenog klijenta koja je stvorila poruke na temelju naznačenih svojstava dodanih u konfiguracija predloška: %HOSTNAME% i %PROGRAMNAME%.

Sve primljene datoteke dnevnika bit će zapisane u lokalni datotečni sustav u dodijeljenu datoteku nazvanu prema imenu hosta klijentskog stroja i čuvana u /var/log/ direktoriju.

Pravilo preusmjeravanja & ~ usmjerava lokalni Rsyslog poslužitelj da zaustavi daljnju obradu primljene poruke dnevnika i ukloni poruke (ne zapisuje ih u interne datoteke dnevnika).

RemoteLogs je proizvoljan naziv dat ovoj direktivi predloška. Možete koristiti bilo koje ime koje najbolje odgovara vašem predlošku.

Za konfiguraciju složenijih Rsyslog predložaka, pročitajte priručnik Rsyslog konfiguracijske datoteke pokretanjem naredbe man rsyslog.conf ili pogledajte Rsyslog online dokumentaciju.

man rsyslog.conf

6. Nakon što izvršite gore navedene promjene konfiguracije, možete ponovno pokrenuti Rsyslog daemon kako biste primijenili nedavne promjene pokretanjem sljedeće naredbe.

service rsyslog restart

7. Nakon što ponovno pokrenete Rsyslog poslužitelj, on bi sada trebao djelovati kao centralizirani log poslužitelj i bilježiti poruke Syslog klijenata. Za potvrdu Rsyslog mrežnih utičnica, pokrenite naredbu netstat i upotrijebite uslužni program grep za filtriranje niza rsyslog.

netstat -tulpn | grep rsyslog 

Ako se netstat naredba ne instalira na CentOS 8, možete je instalirati pomoću sljedeće naredbe.


dnf whatprovides netstat
dnf install net-tools

8. Ako imate SELinux aktivan u CentOS/RHEL 8, pokrenite sljedeću naredbu da omogućite rsyslog promet ovisno o vrsti mrežne utičnice.

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

Ako se naredba semanage ne instalira na CentOS 8, možete je instalirati pomoću sljedeće naredbe.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Ako imate vatrozid aktivan na sustavu, pokrenite sljedeću naredbu kako biste dodali potrebna pravila za dopuštanje rsyslog prometa na portovima u Firewalldu.


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

Također možete ograničiti dolazne veze na priključku 514 iz raspona IP adresa s popisa dopuštenih kao što je prikazano.


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

To je sve! Rsyslog sada je konfiguriran kao centralizirani poslužitelj zapisa i može prikupljati zapise od udaljenih klijenata. U sljedećem članku ćemo vidjeti kako konfigurirati Rsyslog klijent na CentOS/RHEL 8 poslužitelju.