Asenna keskitetty lokipalvelin Rsyslogilla CentOS/RHEL 8:ssa


Jotta järjestelmänvalvojat voivat tunnistaa tai analysoida ongelmia CentOS 8- tai RHEL 8 -palvelimella, on tärkeää tietää ja tarkastella palvelimella tapahtuneita tapahtumia tietyn ajanjakson lokitiedostoista, jotka löytyvät järjestelmän hakemistosta /var/log.

Palvelimen Syslog (System Logging Protocol) -järjestelmä voi toimia keskuslokin valvontapisteenä verkossa, jossa kaikki palvelimet, verkkolaitteet, kytkimet, reitittimet ja sisäiset palvelut luoda lokeja, jotka liittyvät tiettyyn sisäiseen ongelmaan tai vain informatiivisia viestejä voivat lähettää lokinsa.

CentOS/RHEL 8 -palvelimella Rsyslog-daemon on tärkein oletusarvoisesti esiasennettu lokipalvelin, jota seuraa Systemd Journal Daemon (journald).

Rsyslog on avoimen lähdekoodin apuohjelma, joka on kehitetty asiakas/palvelin-arkkitehtuuripalveluna ja voi suorittaa molemmat roolit itsenäisesti. Se voi toimia palvelimena ja kerätä kaikki muiden laitteiden verkon kautta lähettämät lokit tai se voi toimia asiakkaana lähettämällä kaikki lokiin kirjatut sisäiset järjestelmätapahtumat Syslog-etäpalvelimelle.

Vaatimukset

  1. "CentOS 8.0":n asennus kuvakaappauksilla
  2. RHEL 8:n asennus kuvakaappauksilla

Jotta voit määrittää keskitetyn lokipalvelimen CentOS/RHEL 8 -palvelimelle, sinun on tarkistettava, että /var-osiossa on tarpeeksi tilaa (vähintään muutama Gt ) tallentaaksesi kaikki järjestelmään tallennetut lokitiedostot, jotka verkon muut laitteet lähettävät. Suosittelen, että sinulla on erillinen asema (LVM tai RAID) /var/log/-hakemiston liittämistä varten.

Rsyslog-palvelimen määrittäminen CentOS/RHEL 8:ssa

1. Kuten sanoin, Rsyslog-palvelu asennetaan ja toimii automaattisesti CentOS/RHEL 8 -palvelimessa. Varmistaaksesi, että demoni toimii järjestelmässä, suorita seuraava komento.

systemctl status rsyslog.service

Jos palvelu ei ole oletuksena käynnissä, käynnistä rsyslog-daemon suorittamalla seuraava komento.

systemctl start rsyslog.service

2. Jos Rsyslog-apuohjelmaa ei ole asennettu oletusarvoisesti järjestelmään, jota aiot käyttää keskitettynä lokipalvelimena, suorita seuraava dnf-komento asentaaksesi rsyslog-paketin ja käynnistä demoni.


dnf install rsyslog
systemctl start rsyslog.service

3. Kun Rsyslog-apuohjelma on asennettu, voit nyt määrittää rsyslogin keskitetyksi lokipalvelimeksi avaamalla päämääritystiedoston /etc/rsyslog.conf. , jotta voit vastaanottaa lokiviestejä ulkoisille asiakkaille.

vi /etc/rsyslog.conf

Etsi /etc/rsyslog.conf-määritystiedostosta seuraavat rivit ja poista kommentit antaaksesi UDP-siirtovastaanoton Rsyslog-palvelimelle 514-portin kautta. . Rsyslog käyttää tavallista UDP-protokollaa lokien lähettämiseen.

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

4. UDP-protokollalla ei ole TCP-ylimäärää, ja se tekee tiedonsiirrosta nopeamman kuin TCP-protokolla. Toisaalta UDP-protokolla ei takaa lähetettyjen tietojen luotettavuutta.

Jos kuitenkin haluat käyttää TCP-protokollaa lokien vastaanottamiseen, sinun on löydettävä seuraavat rivit ja poistettava kommentit määritystiedostosta /etc/rsyslog.conf, jotta voit määrittää Rsyslogin daemon sitoa ja kuunnella TCP-vastaketta 514-portissa.

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

5. Luo nyt uusi malli etäviestien vastaanottamista varten, sillä tämä malli ohjaa paikallista Rsyslog-palvelinta, jonne tallennetaan Syslog-verkkoasiakkaiden lähettämät vastaanotetut viestit.


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

$template RemoteLogs -käsky ohjaa Rsyslog-daemonia keräämään ja kirjoittamaan kaikki lähetetyt lokiviestit erillisiin tiedostoihin perustuen asiakkaan nimeen ja etäasiakassovellukseen, joka loi viestit tiedostoon lisättyjen ominaisuuksien perusteella. mallin määritykset: %HOSTNAME% ja %PROGRAMNAME%.

Kaikki vastaanotetut lokitiedostot kirjoitetaan paikalliseen tiedostojärjestelmään varattuun tiedostoon, joka on nimetty asiakaskoneen isäntänimen mukaan ja säilytetään /var/log/-hakemistossa.

& ~-uudelleenohjaussääntö ohjaa paikallisen Rsyslog-palvelimen lopettamaan vastaanotetun lokiviestin käsittelyn ja poistamaan viestit (ei kirjoittamaan niitä sisäisiin lokitiedostoihin).

RemoteLogs on mielivaltainen nimi, joka on annettu tälle mallikäskylle. Voit käyttää mitä tahansa nimeä, joka sopii parhaiten mallillesi.

Jos haluat määrittää monimutkaisempia Rsyslog-malleja, lue Rsyslog-määritystiedoston käyttöopas suorittamalla komento man rsyslog.conf tai tutustu Rsyslogin online-dokumentaatioon.

man rsyslog.conf

6. Kun olet tehnyt yllä olevat kokoonpanomuutokset, voit käynnistää Rsyslog-daemonin uudelleen ottaaksesi käyttöön viimeisimmät muutokset suorittamalla seuraavan komennon.

service rsyslog restart

7. Kun olet käynnistänyt Rsyslog-palvelimen uudelleen, sen pitäisi nyt toimia keskitettynä lokipalvelimena ja tallentaa viestejä Syslog-asiakkailta. Vahvista Rsyslog-verkkopistokkeet suorittamalla netstat-komento ja käyttämällä grep-apuohjelmaa rsyslog-merkkijonon suodattamiseen.

netstat -tulpn | grep rsyslog 

Jos netstat-komento ei ole asennettuna CentOS 8:ssa, voit asentaa sen käyttämällä seuraavaa komentoa.


dnf whatprovides netstat
dnf install net-tools

8. Jos SELinux on aktiivinen CentOS/RHEL 8:ssa, suorita seuraava komento salliaksesi rsyslog-liikenteen verkkopistorasian tyypistä riippuen.

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

Jos semanage-komento ei asennu CentOS 8:aan, voit asentaa sen seuraavalla komennolla.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Jos järjestelmässäsi on aktiivinen palomuuri, suorita seuraava komento lisätäksesi tarvittavat säännöt rsyslog-liikenteen sallimiseen Firewalldin porteissa.


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

Voit myös rajoittaa saapuvia yhteyksiä portissa 514 sallittujen luettelossa olevilta IP-alueilta kuvan mukaisesti.


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

Siinä kaikki! Rsyslog on nyt määritetty keskitetyksi lokipalvelimeksi, ja se voi kerätä lokeja etäasiakkailta. Seuraavassa artikkelissa näemme, kuinka Rsyslog-asiakas määritetään CentOS/RHEL 8 -palvelimella.