Configureu un servidor de registre centralitzat amb Rsyslog a CentOS/RHEL 8


Per tal que els administradors del sistema reconeguin o analitzin problemes en un servidor CentOS 8 o RHEL 8, és important conèixer i veure els esdeveniments que es van produir al servidor en un període de temps determinat a partir dels fitxers de registre que es troben a /var. /log el directori del sistema.

El sistema Syslog (Protocol de registre del sistema) al servidor pot actuar com a punt central de monitorització de registres a través d'una xarxa on tots els servidors, dispositius de xarxa, commutadors, encaminadors i serveis interns que creen registres, ja siguin vinculats a un problema intern particular o només missatges informatius. poden enviar els seus registres.

En un servidor CentOS/RHEL 8, el dimoni Rsyslog és el servidor de registre més important que ve preinstal·lat per defecte, seguit del dimoni de diari de Systemd (journald).

Rsyslog és una utilitat de codi obert, desenvolupada com a servei d'arquitectura client/servidor i pot assolir ambdues funcions de manera independent. Pot executar-se com a servidor i recopilar tots els registres transmesos per altres dispositius a la xarxa o es pot executar com a client enviant tots els esdeveniments interns del sistema registrats a un servidor Syslog remot.

  1. Instal·lació de \CentOS 8.0 amb captures de pantalla
  2. Instal·lació de RHEL 8 amb captures de pantalla

Per configurar un servidor de registre centralitzat en un servidor CentOS/RHEL 8, heu de comprovar una confirmació que la partició /var té prou espai (uns quants GB com a mínim) per emmagatzemar tots els fitxers de registre gravats. al sistema que envien per altres dispositius de la xarxa. Us recomano que tingueu una unitat separada (LVM o RAID) per muntar el directori /var/log/.

Com configurar el servidor Rsyslog a CentOS/RHEL 8

1. Com he dit, el servei Rsyslog s'instal·la i s'executa automàticament al servidor CentOS/RHEL 8. Per verificar que el dimoni s'està executant al sistema, executeu l'ordre següent.

# systemctl status rsyslog.service

Si el servei no s'executa de manera predeterminada, executeu l'ordre següent per iniciar el dimoni rsyslog.

# systemctl start rsyslog.service

2. Si la utilitat Rsyslog no està instal·lada de manera predeterminada al sistema que voleu utilitzar com a servidor de registre centralitzat, executeu l'ordre dnf següent per instal·lar el paquet rsyslog i iniciar el dimoni.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Un cop instal·lada la utilitat Rsyslog, ara podeu configurar rsyslog com a servidor de registre centralitzat obrint el fitxer de configuració principal /etc/rsyslog.conf, per tal de rebre missatges de registre per a clients externs.

# vi /etc/rsyslog.conf

Al fitxer de configuració /etc/rsyslog.conf, cerqueu i descomenteu les línies següents per concedir la recepció de transport UDP al servidor Rsyslog mitjançant el port 514. Rsyslog utilitza el protocol UDP estàndard per a la transmissió de registres.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. El protocol UDP no té la sobrecàrrega TCP i fa que la transmissió de dades sigui més ràpida que el protocol TCP. D'altra banda, el protocol UDP no garanteix la fiabilitat de les dades transmeses.

No obstant això, si voleu utilitzar el protocol TCP per a la recepció de registres, heu de trobar i eliminar els comentaris de les línies següents al fitxer de configuració /etc/rsyslog.conf per tal de configurar el dimoni Rsyslog per lligar i escoltar un sòcol TCP al port 514.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Ara creeu una plantilla nova per rebre missatges remots, ja que aquesta plantilla guiarà el servidor Rsyslog local, on desar els missatges rebuts enviats pels clients de la xarxa Syslog.

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

La directiva $template RemoteLogs guia el dimoni Rsyslog per recopilar i escriure tots els missatges de registre transmesos a fitxers diferents, basats en el nom del client i l'aplicació de client remota que va crear els missatges en funció de les propietats esbossades afegides a la configuració de la plantilla: %HOSTNAME% i %PROGRAMNAME%.

Tots els fitxers de registre rebuts s'escriuran al sistema de fitxers local en un fitxer assignat amb el nom del nom d'amfitrió de la màquina client i es conservarà al directori /var/log/.

La regla de redirecció & ~ indica al servidor Rsyslog local que deixi de processar encara més el missatge de registre rebut i elimini els missatges (no els escrigui als fitxers de registre interns).

El RemoteLogs és un nom arbitrari donat a aquesta directiva de plantilla. Podeu utilitzar el nom que vulgueu que millor s'adapti a la vostra plantilla.

Per configurar plantilles Rsyslog més complexes, llegiu el manual del fitxer de configuració Rsyslog executant l'ordre man rsyslog.conf o consulteu la documentació en línia de Rsyslog.

# man rsyslog.conf

6. Després de fer els canvis de configuració anteriors, podeu reiniciar el dimoni Rsyslog per aplicar els canvis recents executant l'ordre següent.

# service rsyslog restart

7. Un cop hàgiu reiniciat el servidor Rsyslog, ara hauria d'actuar com a servidor de registre centralitzat i registrar missatges dels clients Syslog. Per confirmar els endolls de xarxa Rsyslog, executeu la utilitat grep per filtrar la cadena rsyslog.

# netstat -tulpn | grep rsyslog 

Si l'ordre netstat no està instal·lat a CentOS 8, podeu instal·lar-lo mitjançant l'ordre següent.

# dnf whatprovides netstat
# dnf install net-tools

8. Si teniu SELinux actiu a CentOS/RHEL 8, executeu l'ordre següent per permetre el trànsit rsyslog en funció del tipus de sòcol de xarxa.

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

Si l'ordre semanage no s'instal·la a CentOS 8, podeu instal·lar-lo mitjançant l'ordre següent.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Si teniu un tallafoc actiu al sistema, executeu l'ordre següent per afegir les regles necessàries per permetre el trànsit rsyslog als ports de Firewalld.

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

També podeu limitar les connexions entrants al port 514 dels intervals d'IP de la llista blanca, tal com es mostra.

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
# firewall-cmd --reload

Això és tot! Rsyslog ara està configurat com a servidor de registres centralitzat i pot recopilar registres de clients remots. Al següent article, veurem com configurar el client Rsyslog al servidor CentOS/RHEL 8.