Nastavite centraliziran dnevniški strežnik z Rsyslogom v CentOS/RHEL 8


Da lahko sistemski skrbniki prepoznajo ali analizirajo težave na strežniku CentOS 8 ali RHEL 8, je pomembno, da iz dnevniških datotek, najdenih v /var, poznajo in si ogledajo dogodke, ki so se zgodili na strežniku v določenem časovnem obdobju./log imenik v sistemu.

Sistem Syslog (System Logging Protocol) na strežniku lahko deluje kot osrednja nadzorna točka dnevnika v omrežju, kjer so vsi strežniki, omrežne naprave, stikala, usmerjevalniki in notranje storitve, ki ustvarjajo dnevnike, ne glede na to, ali so povezani z določeno notranjo težavo ali zgolj informativna sporočila. lahko pošljejo svoje dnevnike.

Na strežniku CentOS/RHEL 8 je demon Rsyslog najpomembnejši dnevniški strežnik, ki je privzeto vnaprej nameščen, sledi Systemd Journal Daemon (journald).

Rsyslog je odprtokodni pripomoček, razvit kot storitev arhitekture odjemalca/strežnika in lahko obe vlogi doseže neodvisno. Lahko deluje kot strežnik in po omrežju zbira vse dnevnike, ki jih pošiljajo druge naprave, ali kot odjemalec, tako da pošlje vse notranje sistemske dogodke, zabeležene na oddaljeni strežnik Syslog.

  1. Namestitev\"CentOS 8.0 ″ s posnetki zaslona
  2. Namestitev RHEL 8 s posnetki zaslona

Če želite nastaviti strežnik centraliziranega dnevnika na strežniku CentOS/RHEL 8, morate preveriti, ali ima particija /var dovolj prostora (najmanj nekaj GB) za shranjevanje vseh posnetih dnevniških datotek. v sistemu, ki jih pošiljajo druge naprave v omrežju. Priporočam, da imate ločen pogon (LVM ali RAID) za namestitev imenika /var/log/.

Kako nastaviti strežnik Rsyslog v CentOS/RHEL 8

1. Kot sem že dejal, se storitev Rsyslog namesti in samodejno zažene na strežniku CentOS/RHEL 8. Če želite preveriti, ali se demon izvaja v sistemu, zaženite naslednji ukaz.

# systemctl status rsyslog.service

Če se storitev privzeto ne izvaja, zaženite naslednji ukaz, da zaženete demon rsyslog.

# systemctl start rsyslog.service

2. Če pripomoček Rsyslog privzeto ni nameščen v sistemu, ki ga nameravate uporabiti kot strežnik za centralizirano beleženje, zaženite naslednji ukaz dnf, da namestite paket rsyslog in zaženete demon.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Ko je nameščen pripomoček Rsyslog, lahko zdaj rsyslog konfigurirate kot centraliziran dnevniški strežnik tako, da odprete glavno konfiguracijsko datoteko /etc/rsyslog.conf, da lahko prejemate dnevniška sporočila za zunanje odjemalce.

# vi /etc/rsyslog.conf

V konfiguracijski datoteki /etc/rsyslog.conf poiščite in razkomentirajte naslednje vrstice, da odobrite sprejem UDP prenosa strežniku Rsyslog prek vrat 514. Rsyslog za prenos dnevnika uporablja standardni protokol UDP.

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

4. UDP protokol nima režijske TCP in pospešuje prenos podatkov kot protokol TCP. Po drugi strani protokol UDP ne zagotavlja zanesljivosti poslanih podatkov.

Če pa želite za sprejem dnevnika uporabiti protokol TCP, morate v konfiguracijski datoteki /etc/rsyslog.conf najti in razkomentirati naslednje vrstice, da lahko konfigurirate demon Rsyslog, da veže in posluša vtičnico TCP na vratih 514.

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

5. Zdaj ustvarite novo predlogo za prejemanje oddaljenih sporočil, saj bo ta predloga vodila lokalni strežnik Rsyslog, kamor želite shraniti prejeta sporočila, ki jih pošljejo omrežni odjemalci Syslog.

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

Direktiva $template RemoteLogs vodi demona Rsyslog, da zbira in zapisuje vsa poslana dnevniška sporočila v ločene datoteke na podlagi imena odjemalca in oddaljene odjemalske aplikacije, ki je ustvarila sporočila na podlagi začrtanih lastnosti, dodanih v konfiguracija predloge: % HOSTNAME% in% PROGRAMNAME% .

Vse prejete dnevniške datoteke bodo zapisane v lokalni datotečni sistem v dodeljeno datoteko, imenovano po imenu gostitelja odjemalskega računalnika, in shranjene v imeniku/var/log /.

Pravilo preusmeritve & ~ usmerja lokalni strežnik Rsyslog, da nadalje ustavi obdelavo prejetega dnevnika in jih odstrani (ne pa jih zapisujte v notranje dnevniške datoteke).

RemoteLogs je poljubno ime, dano tej direktivi predloge. Uporabite lahko poljubno ime, ki je najprimernejše za vašo predlogo.

Če želite konfigurirati bolj zapletene predloge Rsyslog, preberite priročnik za konfiguracijsko datoteko Rsyslog z zagonom ukaza man rsyslog.conf ali si oglejte spletno dokumentacijo Rsyslog.

# man rsyslog.conf

6. Po izvedbi zgornjih sprememb konfiguracije lahko znova zaženete demon Rsyslog, da uporabite nedavne spremembe, tako da zaženete naslednji ukaz.

# service rsyslog restart

7. Ko ste znova zagnali strežnik Rsyslog, mora zdaj delovati kot centraliziran dnevniški strežnik in snemati sporočila odjemalcev Syslog. Če želite potrditi omrežne vtičnice Rsyslog, zaženite pripomoček grep za filtriranje niza rsyslog.

# netstat -tulpn | grep rsyslog 

Če ukaz netstat ni nameščen na CentOS 8, ga lahko namestite z naslednjim ukazom.

# dnf whatprovides netstat
# dnf install net-tools

8. Če je SELinux aktiven v CentOS/RHEL 8, zaženite naslednji ukaz, da omogočite rsyslog promet, odvisno od vrste omrežne vtičnice.

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

Če ukaz semanage ni nameščen na CentOS 8, ga lahko namestite z naslednjim ukazom.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Če je v sistemu aktiven požarni zid, zaženite naslednji ukaz, da dodate potrebna pravila za omogočanje prometa rsyslog na vratih v požarnem zidu.

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

Dohodne povezave na vratih 514 lahko omejite tudi iz obsega IP, ki je na seznamu dovoljenih, kot 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 vse! Rsyslog je zdaj konfiguriran kot strežnik za centralizirane dnevnike in lahko zbira dnevnike oddaljenih odjemalcev. V naslednjem članku bomo videli, kako konfigurirati odjemalca Rsyslog na strežniku CentOS/RHEL 8.