Pentru ca administratorii unui sistem să recunoască sau să analizeze problemele de pe un CentOS 8 sau RHEL 8 server, este important să cunoașteți și să vizualizați evenimentele care au avut loc pe server într-o anumită perioadă de timp din fișierele jurnal găsite în /var/log
directorul din sistem.
Syslog (Protocol de înregistrare a sistemului) sistemul de pe server poate acționa ca un punct central de monitorizare a jurnalului într-o rețea în care toate serverele, dispozitivele de rețea, comutatoarele, routerele și serviciile interne care creează jurnale, indiferent dacă sunt legate de problema internă anume sau doar mesajele informative pot să le trimită busteni.
Pe o CentOS / RHEL 8 Server, Rsyslog daemon este cel mai important server de jurnal care este preinstalat în mod implicit, urmat de Systemd Journal Daemon (journald).
Rsyslog este un utilitar open-source, dezvoltat ca serviciu de arhitectură client / server și poate atinge ambele roluri independent. Poate rula ca un server și poate aduna toate jurnalele transmise de alte dispozitive prin rețea sau poate rula ca un client prin trimiterea tuturor evenimentelor de sistem interne înregistrate la o telecomandă
Syslog Server.Pentru a configura un server de jurnal centralizat pe un CentOS / RHEL 8 server, trebuie să verificați o confirmare a faptului că /var
partiția are suficient spațiu (câțiva GB minimum) pentru a stoca toate fișierele jurnal înregistrate pe sistem care sunt trimise de alte dispozitive din rețea. Vă recomand să aveți o unitate separată (LVM sau RAID) pentru a monta /var/log/
director.
1. Așa cum am spus, Rsyslog serviciul este instalat și rulează automat în CentOS / RHEL 8 Server. Pentru a verifica dacă demonul rulează în sistem, rulați următoarea comandă.
# systemctl status rsyslog.service.
Dacă serviciul nu rulează implicit, executați următoarea comandă pentru a porni rsyslog daemon.
# systemctl pornește rsyslog.service.
2. Dacă Rsyslog utilitarul nu este instalat în mod implicit pe sistemul pe care intenționați să îl utilizați ca server de înregistrare centralizată, executați următoarele comanda dnf pentru a instala pachetul rsyslog și a porni demonul.
# dnf instalează rsyslog. # systemctl pornește rsyslog.service.
3. O singura data Rsyslog utilitar instalat, puteți configura acum rsyslog ca un server de înregistrare centralizat deschizând fișierul principal de configurare /etc/rsyslog.conf, pentru a primi mesaje jurnal pentru clienți externi.
# vi /etc/rsyslog.conf.
În /etc/rsyslog.conf fișier de configurare, găsiți și decomentați următoarele linii pentru a acorda recepție de transport UDP către Rsyslog server prin 514 port. Rsyslog folosește standardul UDP protocol pentru transmiterea jurnalului.
module (load = "imudp") # trebuie făcut o singură dată. intrare (tip = "imudp" port = "514")
4. Protocolul UDP nu are TCP suprasarcină și face transmisia de date mai rapidă decât TCP protocol. Pe de altă parte, UDP protocolul nu garantează fiabilitatea datelor transmise.
Cu toate acestea, dacă doriți să utilizați TCP protocol pentru recepția jurnalului trebuie să găsiți și să descomentați următoarele linii în /etc/rsyslog.conf fișierul de configurare pentru a configura daemonul Rsyslog pentru a lega și asculta un socket TCP 514 port.
module (load = "imtcp") # trebuie făcut o singură dată. intrare (tip = "imtcp" port = "514")
5. Acum creați un nou șablon pentru primirea mesajelor la distanță, deoarece acest șablon va ghida serverul local Rsyslog, unde să salvați mesajele primite trimise de clienții de rețea Syslog.
$ template RemoteLogs, "/ var / log /% HOSTNAME% /% PROGRAMNAME% .log" *. *? RemoteLogs.
$ template RemoteLogs
directiva ghidează demonul Rsyslog să adune și să scrie toate mesajele jurnal transmise în fișiere distincte, pe baza clientului numele și aplicația client la distanță care a creat mesajele pe baza proprietăților subliniate adăugate în șablon configurare: % HOSTNAME% și% PROGRAMNAME%
.
Toate fișierele jurnal primite vor fi scrise în sistemul de fișiere local într-un fișier alocat numit după numele gazdei mașinii client și păstrate în /var/log/ director.
& ~
regula de redirecționare direcționează serverul local Rsyslog să oprească procesarea în continuare a mesajului jurnal primit și să elimine mesajele (nu să le scrie în fișierele jurnal interne).
RemoteLogs
este un nume arbitrar dat acestei directive șablon. Puteți utiliza orice nume doriți, cel mai potrivit pentru șablonul dvs.
Pentru a configura șabloane Rsyslog mai complexe, citiți manualul fișierului de configurare Rsyslog executând om rsyslog.conf comanda sau consulta Documentație online Rsyslog.
# man rsyslog.conf.
6. După efectuarea modificărilor de configurare de mai sus, puteți reporni demonul Rsyslog pentru a aplica modificările recente executând următoarea comandă.
# service rsyslog restart.
7. Odată ce ați repornit Rsyslog server, ar trebui să acționeze acum ca un server de jurnal centralizat și să înregistreze mesajele de la clienții Syslog. Pentru a confirma soclurile de rețea Rsyslog, rulați comanda netstat si foloseste utilitate grep pentru a filtra șirul rsyslog.
# netstat -tulpn | grep rsyslog
Dacă comanda netstat nu intall on CentOS 8, îl puteți instala folosind următoarea comandă.
# dnf ce oferă netstat. # dnf instalați net-tools.
8. Daca ai SELinux activ în CentOS / RHEL 8, executați următoarea comandă pentru a permite traficul rsyslog în funcție de tipul de soclu de rețea.
# semanage port -a -t syslogd_port_t -p udp 514. # semanage port -a -t syslogd_port_t -p tcp 514.
Dacă comanda semanage nu instalați pe CentOS 8, îl puteți instala folosind următoarea comandă.
# dnf ce oferă semanage. # dnf instalează policycoreutils-python-utils.
9. Dacă aveți un firewall activ pe sistem, rulați următoarea comandă pentru a adăuga regulile necesare pentru a permite traficul rsyslog pe porturile din Firewalld.
# firewall-cmd --permanent --add-port = 514 / tcp. # firewall-cmd --permanent --add-port = 514 / udp. # firewall-cmd --reload.
De asemenea, puteți limita conexiunile de intrare pe port 514 din intervalele IP din lista albă, așa cum se arată.
# firewall-cmd --permanent --add-rich-rule 'rule family = "ipv4" source source = "123.123.123.0/21"port port =" 514 "protocol =" tcp "accept ' # firewall-cmd --permanent --add-rich-rule 'rule family = "ipv4" source source = "123.123.123.0/21"port port =" 514 "protocol =" udp "accept ' # firewall-cmd --reload.
Asta e tot! Rsyslog este acum configurat ca un server centralizat de jurnale și poate colecta jurnale de la clienți la distanță. În articolul următor, vom vedea cum să configurați clientul Rsyslog CentOS / RHEL 8 Server.