How to Create a Centralized Log Server with Rsyslog in CentOS/RHEL 7

Configurare noua (How To)

Situatie

Este necesar ca serverul sa logheze.

Backup

Nu este necesara.

Solutie

Pasi de urmat

Creare Rsyslog

Pentru ca administratorul de sistem să identifice sau să depaneze o problemă la un sistem de server CentOS 7 sau RHEL 7, trebuie să cunoască și să vizualizeze evenimentele care au avut loc în sistem într-o anumită perioadă de timp din fișierele jurnal stocate în sistem în / var / directorul jurnal.

Serverul syslog de pe o mașină Linux poate acționa un punct central de monitorizare pe o rețea în care toate serverele, dispozitivele de rețea, routerele, comutatoarele și majoritatea serviciilor interne care generează jurnale, fie legate de o problemă internă specifică, fie doar mesaje informative pot trimite jurnalele .

Pe un sistem CentOS / RHEL 7, daemonul Rsyslog este preinstalat serverul principal de jurnal, urmat de Systemd Journal Daemon (journald).

Serverul Rsyslog se construiește ca un serviciu de arhitectură client / server și poate realiza simultan ambele roluri. Acesta poate rula ca un server și poate colecta toate jurnalele transmise de alte dispozitive din rețea sau poate funcționa ca un client prin trimiterea tuturor evenimentelor sistemului intern înregistrate la un server syslog de la distanță.

Când rsyslog este configurat ca si client, jurnalele pot fi stocate local în fișierele din sistemul de fișiere local sau pot fi trimise de la distanță în loc să le scrie în fișierele stocate pe aparat sau să scrie fișiere log locale pe evenimente și să le trimită la un server syslog la distanță acelasi timp.

Serverul Syslog operează orice mesaj log utilizând următoarea schemă:

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

Cum se configurează Rsyslog în serverul CentOS / RHEL 7

1. În mod implicit, serviciul Rsyslog este instalat automat și ar trebui să ruleze în CentOS / RHEL 7. Pentru a verifica dacă daemonul este pornit în sistem, emiteți următoarea comandă cu privilegii root:

systemctl status rsyslog.service

2. Dacă pachetul rsyslog nu este instalat pe sistemul pe care intenționați să îl utilizați ca server centralizat de înregistrare, lansați următoarea comandă pentru a instala pachetul rsyslog:

 yum install rsyslog

3. Primul pas pe care trebuie să-l facem în sistem pentru a configura daemonul rsyslog ca server de jurnal centralizat, astfel încât să poată primi mesaje de jurnal pentru clienții externi, este să deschideți și să editați, utilizând editorul de text preferat, configurația principală fișier de la /etc/rsyslog.conf, așa cum este prezentat în fragmentul de mai jos.

vi /etc/rsyslog.conf

In the rsyslog main configuration file, search and uncomment the following lines (remove the hashtag # sign at the line beginning) in order to provide UDP transport reception to Rsyslog server via 514 port. UDP is the standard protocol used for log transmission by Rsyslog.

$ModLoad imudp

$UDPServerRun 514

4. Protocolul UDP nu are overhead TCP, ceea ce îl face mai rapid pentru transmiterea datelor decât protocolul TCP. Pe de altă parte, protocolul UDP nu asigură fiabilitatea datelor transmise. Cu toate acestea, dacă trebuie să utilizați protocolul TCP pentru recepția jurnalului, trebuie să căutați și să deconectați următoarele linii din fișierul /etc/rsyslog.conf pentru a configura daemonul Rsyslog pentru a lega și a asculta un soclu TCP pe portul 514. Prizele de ascultare TCP și UDP pentru recepție pot fi configurate simultan pe un server Rsyslog.

$ModLoad imtcp
$InputTCPServerRun 514

5. În etapa următoare, nu închideți încă fișierul, creați un nou șablon care va fi utilizat pentru primirea mesajelor la distanță. Acest șablon va instrui serverul local Rsyslog unde să salveze mesajele primite trimise de clienții rețelei syslog. Șablonul trebuie adăugat înainte de începutul blocului GLOBAL DIRECTIVES, așa cum este ilustrat în fragmentul de mai jos.

$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log”
. ?RemoteLogs & ~

Ghidul RemoteLogs pentru șablonul de mai sus instruiește daemonul Rsyslog să colecteze și să scrie toate mesajele jurnal primite către fișierele distincte, pe baza numelui mașinii client și a facilității clientului (aplicație) la distanță care a generat mesajele bazate pe proprietățile definite prezentate în configurația șablonului:% HOSTNAME% și% PROGRAMNAME%. Toate aceste fișiere de jurnal vor fi scrise în sistemul de fișiere local într-un fișier dedicat numit după numele gazdei clientului și stocat în directorul / var / log /.

Norma de redirecționare instruiește serverul local Rsyslog să nu mai proceseze mai departe mesajul jurnal primit și să elimine mesajele (nu le scrie în fișierele jurnal interne). Numele RemoteLogs este un nume arbitrar acordat acestei directive de șablon. Puteți utiliza orice nume puteți găsi cel mai potrivit pentru șablonul dvs.

Pentru a scrie toate mesajele primite de la clienți într-un singur fișier jurnal denumit după adresa IP a clientului la distanță, fără filtrarea facilității care a generat mesajul, utilizați fragmentul de mai jos:
$template FromIp,”/var/log/%FROMHOST-IP%.log”
. ?FromIp & ~

6. După ce ați editat fișierul de configurare Rsyslog cu propriile setări așa cum a fost explicat mai sus, reporniți daemonul Rsyslog pentru a aplica modificările prin emiterea următoarei comenzi:
service rsyslog restart

7. Până acum, serverul Rsyslog ar trebui să fie configurat să acționeze un server centralizat de jurnal și să înregistreze mesaje de la clienți syslog. Pentru a verifica prizele de rețea Rsyslog, executați comanda netstat cu privilegii root și utilizați grep pentru a filtra rsyslog string.
netstat -tulpn | grep rsyslog

8. Dacă aveți SELinux activat în CentOS / RHEL 7, lansați următoarea comandă pentru a configura SELinux pentru a permite traficul rsyslog în funcție de tipul socket-ului de rețea.
# semanage -a -t syslogd_port_t -p udp 514
# semanage -a -t syslogd_port_t -p tcp 514

9. Dacă paravanul de protecție este activat și activ, executați comanda de mai jos pentru a adăuga regulile necesare pentru deschiderea porturilor rsyslog în Firewalld:
# firewall-cmd –permanent –add-port=514/tcp
# firewall-cmd –permanent –add-port=514/udp
# firewall-cmd –reload

Tip solutie

Permanent

Voteaza

(10 din 26 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?