Kuinka luoda keskitetty Lokipalvelin Rsyslogilla CentOS/RHEL-järjestelmässä 7

jotta järjestelmän ylläpitäjä voi tunnistaa CentOS 7-tai RHEL 7-palvelinjärjestelmän ongelman tai vianmäärityksen, sen on tunnettava ja katsottava järjestelmässä tiettynä ajanjaksona tapahtuneet tapahtumat järjestelmään /var/log-hakemistoon tallennetuista lokitiedostoista.

Linux-koneen syslog-palvelin voi toimia verkon keskusseurantapisteenä, jossa kaikki palvelimet, verkkolaitteet, reitittimet, kytkimet ja Useimmat niiden sisäiset palvelut, jotka tuottavat lokeja, liittyvät ne sitten tiettyyn sisäiseen ongelmaan tai vain informatiivisiin viesteihin, voivat lähettää lokinsa.

CentOS/RHEL 7-järjestelmässä Rsyslog daemon on pääasennettuna lokipalvelimena, jota seuraa Systemd Journal Daemon (journald).

Rsyslog-palvelin rakenteilla asiakas/palvelin-arkkitehtuuripalveluna ja voi saavuttaa molemmat roolit samanaikaisesti. Se voi toimia palvelimena ja kerätä kaikki verkon muiden laitteiden lähettämät lokit tai se voi toimia asiakkaana lähettämällä kaikki sisäiset järjestelmätapahtumat, jotka on kirjattu etäpisteen syslog-palvelimelle.

kun rsyslog on määritetty asiakkaaksi, lokit voidaan tallentaa paikallisesti paikallisen tiedostojärjestelmän tiedostoihin tai ne voidaan lähettää etänä sen sijaan, että ne kirjoitettaisiin koneelle tallennettuihin tiedostoihin tai kirjoittaa tapahtumalokitiedostoja paikallisesti ja lähettää ne samanaikaisesti etälokipalvelimelle.

Syslog server operoi mitä tahansa lokiviestiä seuraavan järjestelmän avulla:

type (facility).priority (severity) destination(where to send the log)

v. Laitos-tai tyyppitietoja edustavat sisäiset järjestelmäprosessit, jotka tuottavat viestit. Linuxissa lokeja tuottavat sisäiset prosessit (tilat) on standardoitu seuraavasti:

  • auth = todennusprosessien tuottamat viestit (kirjautuminen).
  • cron= ajoitettujen prosessien tuottamat viestit (crontab).
  • daemon = daemonien tuottamat viestit (sisäiset palvelut).
  • kernel = itse Linux-ytimen tuottamat viestit.
  • mail = postipalvelimen tuottamat viestit.
  • syslog = rsyslog-taustaprosessin itsensä tuottamat viestit.
  • lpr = paikallisten tulostimien tai tulostuspalvelimen tuottamat viestit.
  • local0-local7 = ylläpitäjän määrittelemät kustomoidut viestit (local7 annetaan yleensä Ciscolle tai Windowsille).

B. myös prioriteettitasot (vaikeusaste) on standardoitu. Jokaiselle prioriteetille annetaan vakiolyhenne ja numero jäljempänä kuvatulla tavalla. 7. prioriteetti on kaikkien korkeampi taso.

  • emerg = Emergency – 0
  • alert = Alerts – 1
  • err = Err – 3
  • warn = Warnings – 4
  • notice = Notification – 5
  • info = Information-6
  • debug = vianetsintä– 7

erityiset Rsyslog avainsanat:

  • * = kaikki tilat tai prioriteetit
  • ei mitään = tilat eivät ole määriteltyjä prioriteetteja esim. posti.ei mitään

C. syslog-skeeman kolmatta osaa edustaa kohdedirektiivi. Rsyslog daemon voi lähettää lokiviestejä kirjoitettavaksi tiedostoon paikallisessa tiedostojärjestelmässä (useimmiten tiedostossa /var/log/ hakemistossa) tai johdettavaksi toiseen paikalliseen prosessiin tai lähetettäväksi paikalliseen konsoliin (stdout), tai lähettää viestin etälokipalvelimelle TCP/UDP-protokollan kautta, tai jopa hylätä viestin osoitteeseen /dev/null.

jotta CentOS / RHEL 7 voidaan määrittää keskitetyksi Lokipalvelimeksi, on ensin tarkistettava ja varmistettava, että / var-osio, johon kaikki lokitiedostot tallennetaan, on riittävän suuri (vähintään muutama GB), jotta voidaan tallentaa kaikki muiden laitteiden lähettämät lokitiedostot. On hyvä päätös käyttää erillistä asemaa (LVM, RAID) /var/log/ – hakemiston asentamiseen.

Requirements

  1. CentOS 7.3 Installation Procedure
  2. RHEL 7.3 Installation Procedure

How to Configure Rsyslog in CentOS / RHEL 7 Server

1. Oletuksena Rsyslog-palvelu asennetaan automaattisesti ja sen pitäisi olla käynnissä CentOS/RHEL 7-järjestelmässä. Jos haluat tarkistaa, onko taustaprosessi käynnistetty järjestelmässä, anna seuraava komento pääkäyttäjän oikeuksilla.

# systemctl status rsyslog.service
Tarkista Rsyslog Service
Tarkista Rsyslog Service

jos palvelu ei ole oletusarvoisesti käynnissä, suorita alla oleva komento käynnistääksesi rsyslog Daemonin.

# systemctl start rsyslog.service

2. Jos rsyslog-pakettia ei ole asennettu järjestelmään, jota aiot käyttää keskitettynä lokipalvelimena, anna seuraava komento rsyslog-paketin asentamiseksi.

# yum install rsyslog

3. Ensimmäinen askel, että meidän täytyy tehdä järjestelmän määrittää rsyslog daemon keskitetty lokipalvelin, jotta se voi vastaanottaa lokiviestejä ulkoisille asiakkaille, on avata ja muokata, käyttäen suosikki tekstieditorilla, pääasetustiedosto /etc/rsyslog.conf, sellaisena kuin se on esitetty alla olevassa otteessa.

# vi /etc/rsyslog.conf

Etsi ja poista rsyslogin pääasetustiedostosta seuraavat rivit (poista hashtag # – merkki rivin alusta), jotta UDP-kuljetus voidaan vastaanottaa Rsyslog-palvelimelle 514-portin kautta. UDP on Rsyslogin log-tiedonsiirtoon käyttämä standardiprotokolla.

$ModLoad imudp $UDPServerRun 514
Rsyslog Server
Rsyslog Server Configure

4. UDP-protokollassa ei ole TCP-protokollaa, minkä vuoksi se lähettää dataa nopeammin kuin TCP-protokolla. Toisaalta UDP-protokolla ei takaa lähetettyjen tietojen luotettavuutta.

Jos kuitenkin tarvitset TCP-protokollaa lokin vastaanottoon, sinun on haettava ja poistettava seuraavat rivit osoitteesta / etc / rsyslog.conf-tiedosto, jotta Rsyslog daemon voidaan määrittää sitomaan ja kuuntelemaan TCP-liitäntää 514-porttiin. TCP-ja UDP-kuuntelupistokkeet vastaanottoa varten voidaan määrittää Rsyslog-palvelimelle samanaikaisesti.

$ModLoad imtcp $InputTCPServerRun 514 

5. Seuraavassa vaiheessa, älä sulje tiedostoa vielä, Luo uusi malli, jota käytetään etäviestien vastaanottamiseen. Tämä malli neuvoo paikallista Rsyslog-palvelinta, mihin syslog – verkkoasiakkaiden lähettämät vastaanotetut viestit tallennetaan. Malli on lisättävä ennen GLOBAL DIRECTIVES-lohkon alkua, kuten alla olevasta otteesta käy ilmi.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" . ?RemoteLogs & ~
luo Rsyslog-malli
luo Rsyslog-malli

edellä mainittu $ – malli RemoteLogs-direktiivi ohjeistaa Rsyslog-taustaprosessia keräämään ja kirjoittamaan kaikki vastaanotetut lokiviestit erillisiin tiedostoihin asiakkaan koneen nimen ja Etäasiakkaan toiminnon (sovelluksen) perusteella, joka loi viestit määritettyjen ominaisuuksien perusteella, esitetään mallipohjan kokoonpanossa: %HOSTNAME% ja %PROGRAMNAME%.

kaikki nämä lokitiedostot kirjoitetaan paikalliseen tiedostojärjestelmään asiakaskoneen isäntänimen mukaan nimettyyn dedikoituun tiedostoon ja tallennetaan/var/ log / – hakemistoon.

& ~ uudelleenohjaussääntö ohjeistaa paikallista Rsyslog-palvelinta lopettamaan vastaanotetun lokiviestin käsittelyn ja hylkäämään viestit (ei kirjoittamaan niitä sisäisiin lokitiedostoihin).

RemoteLogs-nimi on tämän mallidirektiivin mielivaltainen nimi. Voit käyttää mitä nimeä löydät parhaiten malli.

kirjoittaaksesi kaikki asiakkailta vastaanotetut viestit yhteen lokitiedostoon, joka on nimetty Etäasiakkaan IP-osoitteen mukaan suodattamatta viestin tuottanutta laitosta, käytä alla olevaa ote.

$template FromIp,"/var/log/%FROMHOST-IP%.log" . ?FromIp & ~ 

toinen esimerkki mallista, jossa kaikki auth facility-lipulla varustetut viestit kirjataan ”TmplAuth” – nimiseen malliin.

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

alla on ote Mallimäärityksestä Rsyslog 7-palvelimelta:

template(name="TmplMsg" type="string" string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" )

yllä oleva malli ote voidaan kirjoittaa myös:

template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") }

jos haluat kirjoittaa monimutkaisia Rsyslog-malleja, Lue Rsyslog-asetustiedoston käsikirja man rsyslogin julkaisemana.conf komento tai consult Rsyslog online-dokumentaatio.

6. Kun olet muokannut Rsyslog-asetustiedostoa omilla asetuksillasi, kuten edellä on selitetty, Käynnistä Rsyslog-taustaprosessi uudelleen, jotta voit tehdä muutoksia antamalla seuraavan komennon:

# service rsyslog restart

7. Tähän mennessä, Rsyslog server pitäisi konfiguroida toimimaan keskitetty lokipalvelin ja tallentaa viestejä syslog asiakkaita. Jos haluat tarkistaa Rsyslog – verkkopistokkeet, suorita netstat-komento pääkäyttäjän oikeuksilla ja suodata rsyslog-merkkijono grep: n avulla.

# netstat -tulpn | grep rsyslog 
Verified Rsyslog Network Socket
Verified Rsyslog Network Socket

8. Jos SELinux on käytössä CentOS/RHEL 7: ssä, anna seuraava komento määrittääksesi SELinuxin sallimaan rsyslog-liikenteen verkkopistorasiatyypistä riippuen.

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

9. Jos palomuuri on käytössä ja aktiivinen, suorita alla oleva komento lisätäksesi tarvittavat säännöt rsyslog-porttien avaamiseksi Firewalldissa.

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

siinä kaikki! Rsyslog on nyt määritetty palvelintilassa ja voi keskittää lokit etäasiakkailta. Seuraavassa artikkelissa, näemme, miten määrittää Rsyslog client CentOS / RHEL 7 palvelin.

käyttämällä Rsyslog-palvelinta etälokiviestien keskusvalvontapisteenä voit tarkastaa lokitiedostoja ja tarkkailla asiakkaiden terveydentilaa tai debug-asiakkaan ongelmia helpommin, kun järjestelmät kaatuvat tai ovat jonkinlaisen hyökkäyksen kohteena.

Vastaa

Sähköpostiosoitettasi ei julkaista.