Hvordan Lage En Sentralisert Loggserver med Rsyslog I CentOS / RHEL 7

for at systemansvarlig skal kunne identifisere eller feilsøke et problem på Et CentOS 7-eller RHEL 7-serversystem, må det kjenne og se hendelsene som skjedde på systemet i en bestemt tidsperiode fra loggfiler lagret i systemet i/var / log-katalogen.

syslog-serveren på En Linux-maskin kan fungere som et sentralt overvåkingspunkt over et nettverk der alle servere, nettverksenheter, rutere, svitsjer og de fleste av deres interne tjenester som genererer logger, enten de er relatert til bestemte interne problemer eller bare informative meldinger, kan sende loggene sine.

På Et CentOS/RHEL 7-system er Rsyslog daemon hovedloggserveren forhåndsinstallert, etterfulgt Av Systemd Journal Daemon (journald).

Rsyslog server i bygge som en klient / server arkitektur tjeneste og kan oppnå begge roller samtidig. Den kan kjøre som en server og samle alle logger som overføres av andre enheter i nettverket, eller den kan kjøre som en klient ved å sende alle interne systemhendelser logget til en ekstern endepunkt syslog-server.

når rsyslog er konfigurert som klient, kan loggene lagres lokalt i filer på det lokale filsystemet eller kan sendes eksternt i stedet for å skrive dem i filer lagret på maskinen eller skrive hendelsesloggfiler lokalt og sende dem til en ekstern syslog-server samtidig.

Syslog server driver en loggmelding ved hjelp av følgende skjema:

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

A. Innretningsdataene eller typedataene representeres av de interne systemprosessene som genererer meldingene. I Linux interne prosesser (fasiliteter) som genererer logger er standardisert som følger:

  • auth = meldinger generert av autentiseringsprosesser (innlogging).
  • cron = meldinger generert av planlagte prosesser (crontab).
  • daemon = meldinger generert av demoner (interne tjenester).
  • kernel = meldinger generert av Linux-Kjernen selv.
  • mail = meldinger generert av en e-postserver.
  • syslog = meldinger generert av rsyslog-demonen selv.
  • lpr = meldinger generert av lokale skrivere eller en utskriftsserver.
  • local0-local7 = egendefinerte meldinger definert av en administrator(local7 tildeles vanligvis For Cisco eller Windows).

B. prioritetsnivåene (alvorlighetsgrad) er også standardisert. Hver prioritet er tildelt en standard forkortelse og et tall som beskrevet nedenfor. 7.prioritet er det høyeste nivået av alle.

  • emerg = Nødsituasjon – 0
  • varsel = Varsler – 1
  • err = Feil – 3
  • advarsel = Advarsler – 4
  • varsel = Varsel – 5
  • info = Informasjon – 6
  • feilsøking = feilsøking– 7

Spesielle Rsyslog nøkkelord:

  • * = alle anlegg eller prioriteringer
  • ingen = anleggene har ikke gitt prioriteringer F. eks: post.ingen

C. den tredje delen for syslog-skjemaet er representert av destinasjonsdirektivet. Rsyslog daemon kan sende loggmeldinger som skal skrives i en fil på det lokale filsystemet (for det meste i en fil i/var/ log/katalog) eller å bli sendt til en annen lokal prosess eller å bli sendt til en lokal bruker konsoll (til stdout), eller sende meldingen til en ekstern syslog server via TCP/UDP-protokollen, eller til og med forkaste meldingen til /dev/null.

For Å Konfigurere CentOS/RHEL 7 som en sentral Loggserver, må vi først sjekke og sikre at /var-partisjonen der all loggfil er registrert, er stor nok (noen FÅ GB minimum) for å kunne lagre alle loggfilene som vil bli sendt av andre enheter. Det er en god beslutning å bruke en egen stasjon (LVM, RAID) for å montere/ var / log / katalogen.

Krav

  1. CentOS 7.3 Installasjonsprosedyre
  2. RHEL 7.3 Installasjonsprosedyre

Slik Konfigurerer Du Rsyslog I CentOS/RHEL 7 Server

1. Som standard Er Rsyslog-tjenesten automatisk installert og skal kjøre I CentOS / RHEL 7. For å sjekke om demonen er startet i systemet, utsted følgende kommando med rotrettigheter.

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

hvis tjenesten ikke kjører som standard, utfør kommandoen nedenfor for å starte rsyslog daemon.

# systemctl start rsyslog.service

2. Hvis rsyslog-pakken ikke er installert på systemet du har tenkt å bruke som en sentralisert logging-server, utsteder du følgende kommando for å installere rsyslog-pakken.

# yum install rsyslog

3. Det første trinnet som vi trenger å gjøre på systemet for å konfigurere rsyslog daemon som en sentralisert logg server, slik at den kan motta loggmeldinger for eksterne klienter, er å åpne og redigere, ved hjelp av din favoritt tekst editor, den viktigste konfigurasjonsfilen fra / etc / rsyslog.conf, som presentert i utdraget nedenfor.

# vi /etc/rsyslog.conf

i rsyslog hovedkonfigurasjonsfilen, søk og uncomment følgende linjer (fjern hashtag # tegn på linjen begynnelsen) for å gi UDP transportmottak Til Rsyslog server via 514 port. UDP ER standardprotokollen som Brukes For log overføring Av Rsyslog.

$ModLoad imudp $UDPServerRun 514
Konfigurer Rsyslog Server
Konfigurer Rsyslog Server

4. UDP-protokollen har ikke tcp-overhead, noe som gjør det raskere for overføring av data enn TCP-protokollen. PÅ DEN annen side sikrer UDP-protokollen ikke påliteligheten av overførte data.

men hvis DU trenger Å bruke TCP-protokoll for loggmottak, må du søke og uncomment følgende linjer fra /etc/rsyslog.conf fil for å konfigurere Rsyslog daemon å binde og lytte EN TCP socket på 514 port. TCP og UDP lytte stikkontakter for mottak kan konfigureres på En Rsyslog server samtidig.

$ModLoad imtcp $InputTCPServerRun 514 

5. På neste trinn, ikke lukk filen ennå, opprett en ny mal som skal brukes til å motta eksterne meldinger. Denne malen vil instruere Den lokale Rsyslog-serveren hvor du skal lagre mottatte meldinger sendt av syslog – nettverksklienter. Malen må legges til før BEGYNNELSEN av DEN GLOBALE DIREKTIVBLOKKEN som illustrert i utdraget nedenfor.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" . ?RemoteLogs & ~
Create Rsyslog Template
Create Rsyslog Template

direktivet over $template RemoteLogs instruerer Rsyslog daemon til å samle inn og skrive alle mottatte loggmeldinger til forskjellige filer, basert på klientmaskinnavn og ekstern klientfasilitet (applikasjon)som genererte meldingene basert på de definerte egenskapene som presenteres i malkonfigurasjonen: %HOSTNAME% og %PROGRAMNAME%.

alle disse loggfilene vil bli skrevet til lokalt filsystem til en dedikert fil oppkalt etter klientmaskinens vertsnavn og lagret i/ var / log / katalog.

& ~ redirect-regelen instruerer Den lokale Rsyslog-serveren om å slutte å behandle den mottatte loggmeldingen ytterligere og forkaste meldingene (ikke skriv dem til interne loggfiler).

RemoteLogs-navnet er et vilkårlig navn gitt til dette maldirektivet. Du kan bruke det navnet du finner best egnet for din mal.

for å skrive alle mottatte meldinger fra klienter i en enkelt loggfil oppkalt ETTER ip-Adressen til den eksterne klienten, uten å filtrere anlegget som genererte meldingen, bruk utdraget nedenfor.

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

Et annet eksempel på en mal der alle meldinger med auth facility-flagg logges til en mal som heter «TmplAuth».

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

Nedenfor er et utdrag danne en mal definisjon Fra Rsyslog 7 server:

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

ovennevnte mal utdrag kan også skrives som:

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

for å skrive komplekse Rsyslog-maler, les Rsyslog konfigurasjonsfilhåndboken ved å utstede man rsyslog.conf kommando eller konsultere Rsyslog online dokumentasjon.

6. Etter at Du har redigert Rsyslog-konfigurasjonsfilen med dine egne innstillinger som forklart ovenfor, start Rsyslog-demonen på nytt for å bruke endringer ved å utstede følgende kommando:

# service rsyslog restart

7. Nå, Rsyslog server bør konfigureres til å opptre en sentralisert logg server og ta opp meldinger fra syslog klienter. For å verifisere Rsyslog network sockets, kjør netstat kommando med root privilegier og bruk grep for å filtrere rsyslog streng.

# netstat -tulpn | grep rsyslog 
Bekreft Rsyslog Nettverkskontakt
Bekreft Rsyslog Nettverkskontakt

8. Hvis Du Har SELinux aktivert I CentOS / RHEL 7, utsted følgende kommando for å konfigurere SELinux for å tillate rsyslog-trafikk avhengig av nettverkskontakttype.

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

9. Hvis brannmuren er aktivert og aktiv, kjør kommandoen nedenfor for å legge til de nødvendige reglene for å åpne rsyslog-porter i Firewalld.

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

Det er alt! Rsyslog er nå konfigurert i servermodus og kan sentralisere logger fra eksterne klienter. I neste artikkel vil vi se hvordan du konfigurerer Rsyslog client på CentOS / RHEL 7 server.

Ved hjelp Av Rsyslog server som et sentralt overvåkingspunkt for eksterne loggmeldinger kan du inspisere loggfiler og observere klientens helsestatus eller feilsøke klientens problemer lettere når systemer krasjer eller er under noen form for angrep.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.