![Cum se curăță automat Windows-ul fișierelor neutilizate](/f/5155ab1294c67fa1552e5d2cb91d7248.jpg?width=100&height=100)
Pentru ca administratorul de sistem să identifice sau să depaneze o problemă pe un CentOS 7 sau RHEL 7 server, trebuie să cunoască și să vizualizeze evenimentele care au avut loc pe sistem într-o anumită perioadă de timp din fișierele jurnal stocate în sistem în /var/log director.
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 lor interne care generează jurnale, indiferent dacă sunt legate de probleme interne specifice sau doar mesaje informative, pot să le trimită busteni.
Pe o CentOS / RHEL 7 sistem, Rsyslog daemon este principalul server de jurnal preinstalat, urmat de Systemd Journal Daemon (journald).
Rsyslog server în construcție ca serviciu de arhitectură client / server și poate realiza ambele roluri simultan. Poate rula ca un server și poate colecta toate jurnalele transmise de alte dispozitive din rețea sau poate rula ca un client prin trimiterea tuturor evenimentelor de sistem interne înregistrate la un server syslog la distanță.
Când rsyslog este configurat ca client, jurnalele pot fi stocate local în fișiere pe sistemul de fișiere local sau pot fi trimise mai degrabă de la distanță decât să le scrieți în fișiere stocate pe mașină sau să scrieți fișiere jurnal de evenimente la nivel local și să le trimiteți la un server syslog la distanță în același timp timp.
Serverul Syslog operează orice mesaj jurnal utilizând următoarea schemă:
tipul (facilitatea). prioritatea (severitatea) destinație (unde se trimite jurnalul)
A. facilitate sau datele de tip sunt reprezentate de procesele interne ale sistemului care generează mesajele. În Linux procesele interne (facilitățile) care generează jurnale sunt standardizate după cum urmează:
B. prioritate (severitate) nivelurile sunt, de asemenea, standardizate. Fiecare prioritate este atribuită cu o abreviere standard și un număr așa cum este descris mai jos. A șaptea prioritate este nivelul superior al tuturor.
Cuvinte cheie speciale Rsyslog:
C. A treia parte pentru schema syslog este reprezentată de destinaţie directivă. Daemonul Rsyslog poate trimite mesaje jurnal pentru a fi scrise într-un fișier din sistemul de fișiere local (mai ales într-un fișier din /var/log/ director) sau pentru a fi canalizat către un alt proces local sau pentru a fi trimis către o consolă de utilizator locală (către stdout), sau trimiteți mesajul către un server syslog la distanță prin protocolul TCP / UDP, sau chiar aruncați mesaj către /dev/null.
Pentru a configura CentOS / RHEL 7 ca server central de jurnal, mai întâi trebuie să verificăm și să ne asigurăm că /var partiția în care sunt înregistrate toate fișierele jurnal este suficient de mare (câțiva GB minimum) pentru a putea stoca toate fișierele jurnal care vor fi trimise de alte dispozitive. Este o decizie bună să folosiți o unitate separată (LVM, RAID) pentru a monta /var/log/ director.
1. În mod implicit, Rsyslog serviciul este instalat automat și ar trebui să ruleze în CentOS / RHEL 7. Pentru a verifica dacă demonul este pornit în sistem, lansați următoarea comandă cu privilegii de root.
# systemctl status rsyslog.service.
Dacă serviciul nu rulează în mod implicit, executați comanda de mai jos pentru a porni demonul rsyslog.
# systemctl pornește rsyslog.service.
2. Dacă pachetul rsyslog nu este instalat pe sistemul pe care intenționați să îl utilizați ca server de înregistrare centralizată, lansați următoarea comandă pentru a instala pachetul rsyslog.
# yum instalează rsyslog.
3. Primul pas pe care trebuie să-l facem pe sistem pentru a configura demonul rsyslog ca un server de jurnal centralizat, astfel încât să poată primi mesaje jurnal pentru clienți externi, este de a deschide și edita, folosind editorul de text preferat, fișierul principal de configurare din /etc/rsyslog.conf, așa cum este prezentat în extrasul de mai jos.
# vi /etc/rsyslog.conf.
În fișierul principal de configurare rsyslog, căutați și decomentați următoarele linii (eliminați hashtag-ul #
semn la începutul liniei) pentru a furniza recepția de transport UDP către serverul Rsyslog prin 514 port. UDP este protocolul standard utilizat pentru transmiterea jurnalului de către 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ă decomentați următoarele linii din /etc/rsyslog.conf fișier pentru a configura daemonul Rsyslog pentru a lega și asculta un socket TCP pe portul 514. Soclurile de ascultare TCP și UDP pentru recepție pot fi configurate simultan pe un server Rsyslog.
$ ModLoad imtcp $ InputTCPServerRun 514
5. La pasul următor, nu închideți încă fișierul, creați un șablon nou 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 de rețea syslog. Șablonul trebuie adăugat înainte de începerea fișierului DIRECTIVE GLOBALE bloc așa cum este ilustrat în extrasul de mai jos.
$ template RemoteLogs, "/ var / log /% HOSTNAME% /% PROGRAMNAME% .log".? RemoteLogs & ~
Cele de mai sus $ template RemoteLogs directiva instruiește demonul Rsyslog să colecteze și să scrie toate mesajele jurnal primite în fișiere distincte, pe baza computerului client numele și facilitatea clientului la distanță (aplicație) care a generat mesajele pe baza proprietăților definite prezente în șablon configurare: % HOSTNAME% și %NUMELE PROGRAMULUI%.
Toate aceste fișiere jurnal vor fi scrise în sistemul de fișiere local într-un fișier dedicat numit după numele gazdei mașinii client și stocate în directorul / var / log /.
& ~ regula de redirecționare instruiește serverul local Rsyslog să oprească procesarea în continuare a mesajului jurnal primit și să renunțe la mesaje (nu să le scrie în fișierele jurnal interne).
RemoteLogs nume este un nume arbitrar dat acestei directive ș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 numit după adresa IP a clientului la distanță, fără a filtra facilitatea care a generat mesajul, utilizați cele de mai jos extras.
$ template FromIp, "/ var / log /% FROMHOST-IP% .log".? FromIp & ~
Un alt exemplu de șablon în care toate mesajele cu semnalizatorul de facilități de autentificare vor fi înregistrate într-un șablon numit „TmplAuth“.
$ template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv. *? TmplAuth.
Mai jos este un extras dintr-o definiție șablon de pe serverul Rsyslog 7:
template (name = "TmplMsg" type = "string" string = "/ var / log / remote / msg /% HOSTNAME% /% PROGRAMNAMEsecpath-replace% .log")
Extrasul șablonului de mai sus poate fi scris și ca:
template (name = "TmplMsg" type = "list") {constant (value = "/ var / log / remote / msg /") property (nume = "nume gazdă") constantă (valoare = "/") proprietate (nume = "nume program" SecurePath = "înlocuire") constantă (valoare = ". jurnal")}
Pentru a scrie șabloane complexe Rsyslog, citiți manualul fișierului de configurare Rsyslog emițând om rsyslog.conf comanda sau consulta Documentație online Rsyslog.
6. După ce ați editat fișierul de configurare Rsyslog cu propriile setări, așa cum s-a explicat mai sus, reporniți daemonul Rsyslog pentru a aplica modificări prin emiterea următoarei comenzi:
# service rsyslog restart.
7. Până acum, serverul Rsyslog ar trebui să fie configurat pentru a acționa un server de jurnal centralizat și pentru a înregistra mesajele de la clienții syslog. Pentru a verifica soclurile de rețea Rsyslog, rulați comanda netstat cu privilegii de root și folosiți grep pentru a filtra șirul rsyslog.
# 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 de soclu de rețea.
# semanage -a -t syslogd_port_t -p udp 514. # semanage -a -t syslogd_port_t -p tcp 514
9. Dacă firewall-ul este activat și activ, rulaț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.
Asta e tot! Rsyslog este acum configurat în modul server și poate centraliza jurnalele de la clienții la distanță. În articolul următor, vom vedea cum să configurați clientul Rsyslog pe serverul CentOS / RHEL 7.
Folosind serverul Rsyslog ca punct central de monitorizare pentru mesajele jurnal de la distanță, puteți inspecta fișierele jurnal și observa starea de sănătate a clienților sau depanarea problemelor clientului mai ușor atunci când sistemele se blochează sau se află într-un fel atac.