Sådan oprettes en centraliseret Logserver med Rsyslog i CentOS / RHEL 7

for at systemadministratoren kan identificere eller fejlfinde et problem på et CentOS 7-eller RHEL 7-serversystem, skal den kende og se de hændelser, der skete på systemet i en bestemt periode fra logfiler, der er gemt i systemet i /var/log-mappen.

syslog-serveren kan fungere som et centralt overvågningspunkt over et netværk, hvor alle servere, netværksenheder, routere, afbrydere og de fleste af deres interne tjenester, der genererer logfiler, hvad enten de er relateret til specifikt internt problem eller bare informative meddelelser, kan sende deres logfiler.

på et CentOS/RHEL 7-system er Rsyslog-dæmonen hovedlogserveren forudinstalleret efterfulgt af Systemd Journal Daemon (journald).

Rsyslog server I build som en klient/server arkitektur service og kan opnå begge roller samtidigt. Det kan køre som en server og indsamle alle logfiler transmitteret af andre enheder i netværket, eller det kan køre som en klient ved at sende alle interne systemhændelser logget til en ekstern endpoint syslog server.

når rsyslog er konfigureret som en klient, kan logfilerne gemmes lokalt i filer på det lokale filsystem eller kan sendes eksternt i stedet for at skrive dem i filer gemt på maskinen eller skrive hændelseslogfiler lokalt og sende dem til en ekstern syslog-server på samme tid.

Syslog server driver enhver logmeddelelse ved hjælp af følgende skema:

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

A. Facilitets-eller typedataene er repræsenteret af de interne systemprocesser, der genererer meddelelserne. Interne processer (faciliteter), der genererer logfiler, er standardiseret som følger:

  • auth = meddelelser genereret af godkendelsesprocesser (login).
  • cron= meddelelser genereret af planlagte processer (crontab).
  • daemon = meddelelser genereret af dæmoner (interne tjenester).
  • kerne = meddelelser genereret af selve kernen.
  • mail = meddelelser genereret af en mailserver.
  • syslog = meddelelser genereret af selve rsyslog-dæmonen.
  • lpr = meddelelser genereret af lokale printere eller en printerserver.
  • local0 – local7 = brugerdefinerede meddelelser defineret af en administrator (local7 er normalt tildelt til Cisco eller vinduer).

B. prioritetsniveauerne (sværhedsgrad) er også standardiseret. Hver prioritet tildeles en standardforkortelse og et nummer som beskrevet nedenfor. Den 7. prioritet er det højere niveau af alle.

  • emerg = Emergency – 0
  • alert = Alerts – 1
  • err = fejl – 3
  • advar = advarsler – 4
  • notice = Notification – 5
  • info = Information – 6
  • debug = debugging– 7

særlige rsyslog nøgleord:

  • * = alle faciliteter eller prioriteter
  • ingen = faciliteterne har ingen givne prioriteter f.eks: mail.ingen

C. Den tredje del af syslog-Skemaet er repræsenteret ved destinationsdirektivet. Rsyslog daemon kan sende logmeddelelser, der skal skrives i en fil på det lokale filsystem (for det meste i en fil i /var/log/ directory) eller sendes til en anden lokal proces eller sendes til en lokal brugerkonsol (til stdout) eller sende beskeden til en ekstern syslog-server via TCP/UDP-protokol eller endda kassere beskeden til /dev/null.

for at konfigurere CentOS/RHEL 7 som en central Logserver skal vi først kontrollere og sikre, at /var-partitionen, hvor al logfil er optaget, er stor nok (et par GB minimum) for at kunne gemme alle de logfiler, der sendes af andre enheder. Det er en god beslutning at bruge et separat drev (LVM, RAID) til at montere /var/log/ directory.

krav

  1. CentOS 7.3 installationsprocedure
  2. RHEL 7.3 installationsprocedure

Sådan konfigureres Rsyslog i CentOS/RHEL 7 Server

1. Som standard installeres rsyslog service automatisk og skal køre i CentOS/RHEL 7. For at kontrollere, om dæmonen er startet i systemet, skal du udstede følgende kommando med rodrettigheder.

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

hvis tjenesten ikke kører som standard, skal du udføre nedenstående kommando for at starte rsyslog-dæmonen.

# systemctl start rsyslog.service

2. Hvis rsyslog-pakken ikke er installeret på det system, du har til hensigt at bruge som en centraliseret logningsserver, skal du udstede følgende kommando for at installere rsyslog-pakken.

# yum install rsyslog

3. Det første skridt, vi skal gøre på systemet for at konfigurere rsyslog-dæmonen som en centraliseret logserver, så den kan modtage logbeskeder til eksterne klienter, er at åbne og redigere ved hjælp af din foretrukne teksteditor den vigtigste konfigurationsfil fra /etc/rsyslog.conf, som præsenteret i nedenstående uddrag.

# vi /etc/rsyslog.conf

i rsyslog-hovedkonfigurationsfilen skal du søge og fjerne de følgende linjer (Fjern hashtagget # – tegnet ved linjens begyndelse) for at give UDP-transportmodtagelse til Rsyslog-serveren via 514-porten. UDP er standardprotokollen, der bruges til logoverførsel af Rsyslog.

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

4. UDP-protokollen har ikke TCP-overhead, hvilket gør det hurtigere til transmission af data end TCP-protokollen. På den anden side sikrer UDP-protokollen ikke pålideligheden af overførte data.

men hvis du skal bruge TCP-protokollen til logmodtagelse, skal du søge og fjerne de følgende linjer fra /etc/rsyslog.conf-fil for at konfigurere Rsyslog-dæmonen til at binde og lytte til en TCP-stik på 514-porten. TCP og UDP lytter stikkontakter til modtagelse kan konfigureres på en Rsyslog server samtidigt.

$ModLoad imtcp $InputTCPServerRun 514 

5. På det næste trin skal du ikke lukke filen endnu, oprette en ny skabelon, der vil blive brugt til modtagelse af fjernmeddelelser. Denne skabelon vil instruere den lokale rsyslog-server, hvor de modtagne meddelelser skal gemmes af syslog-netværksklienter. Skabelonen skal tilføjes inden begyndelsen af GLOBAL DIRECTIVES-blokken som illustreret i nedenstående uddrag.

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

ovenstående $template RemoteLogs direktiv instruerer Rsyslog daemon til at indsamle og skrive alle de modtagne logmeddelelser til forskellige filer, baseret på klientmaskinens navn og remote client facility (applikation), der genererede meddelelserne baseret på de definerede egenskaber præsenterer i skabelonkonfigurationen: %HOSTNAME% og %PROGRAMNAME%.

alle disse logfiler vil blive skrevet til lokalt filsystem til en dedikeret fil opkaldt efter klientmaskinens værtsnavn og gemt i /var/log/ directory.

& ~ omdirigeringsreglen instruerer den lokale rsyslog-server til at stoppe behandlingen af den modtagne logmeddelelse yderligere og kassere meddelelserne (ikke skrive dem til interne logfiler).

navnet RemoteLogs er et vilkårligt navn givet til dette skabelondirektiv. Du kan bruge det navn, du kan finde bedst egnet til din skabelon.

for at skrive alle modtagne meddelelser fra klienter i en enkelt logfil opkaldt efter den eksterne klients IP-adresse uden at filtrere den facilitet, der genererede meddelelsen, skal du bruge nedenstående uddrag.

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

et andet eksempel på en skabelon, hvor alle meddelelser med auth-facilitetsflag logges til en skabelon med navnet “TmplAuth”.

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

nedenfor er et uddrag formular en skabelon definition fra rsyslog 7 server:

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

ovenstående skabelon uddrag 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 at skrive komplekse rsyslog-skabeloner skal du læse rsyslog-konfigurationsfilhåndbogen ved at udstede man rsyslog.conf kommando eller konsultere Rsyslog online dokumentation.

6. Når du har redigeret rsyslog-konfigurationsfilen med dine egne indstillinger som forklaret ovenfor, skal du genstarte Rsyslog-dæmonen for at anvende ændringer ved at udstede følgende kommando:

# service rsyslog restart

7. På nuværende tidspunkt skal Rsyslog server konfigureres til at handle en centraliseret logserver og optage meddelelser fra syslog-klienter. For at bekræfte rsyslog-netværksstik skal du køre netstat-kommandoen med rodrettigheder og bruge grep til at filtrere rsyslog-streng.

# netstat -tulpn | grep rsyslog 
Bekræft Rsyslog Netværksstik
Bekræft Rsyslog Netværksstik

8. Hvis du har aktiveret rsyslog i CentOS/RHEL 7, skal du udstede følgende kommando for at konfigurere rsyslog-trafik afhængigt af netværksstiktype.

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

9. Hvis brandmuren er aktiveret og aktiv, skal du køre nedenstående kommando for at tilføje de nødvendige regler for åbning af rsyslog-porte i brandmur.

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

det er alt! Rsyslog er nu konfigureret i servertilstand og kan centralisere logfiler fra eksterne klienter. I næste artikel vil vi se, hvordan du konfigurerer Rsyslog-klient på CentOS/RHEL 7-serveren.

brug af Rsyslog server som et centralt overvågningspunkt for fjernlogmeddelelser du kan inspicere logfiler og observere klienternes sundhedsstatus eller debug klientens problemer lettere, når systemer går ned eller er under en slags angreb.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.