Configurer un serveur de journaux centralisé avec RSYSLOG dans CentOS / RHEL 8

Configurer un serveur de journaux centralisé avec RSYSLOG dans CentOS / RHEL 8

Pour qu'un administrateur système reconnaisse ou analyse les problèmes sur un Centos 8 ou Rhel 8 serveur, il est important de connaître et d'afficher les événements qui se sont produits sur le serveur dans une période particulière à partir des fichiers journaux trouvés dans / var / log Le répertoire du système.

Le Syslog (Protocole de journalisation du système) Le système sur le serveur peut agir comme un point de surveillance des journaux centraux sur un réseau où tous les serveurs, périphériques réseau, commutateurs, routeurs et services internes qui créent des journaux, liés au problème interne particulier ou simplement des messages informatifs peuvent envoyer leurs journaux.

Sur un Centos / Rhel 8 serveur, Rsyslog Daemon est le serveur de journal le plus important qui vient préinstallé par défaut, suivi de Systemd Journal Daemon (journal).

Rsyslog est un utilitaire open source, développé en tant que service d'architecture client / serveur et peut remplir les deux rôles indépendamment. Il peut s'exécuter en tant que serveur et rassembler tous les journaux transmis par d'autres appareils sur le réseau ou s'exécuter en tant que client en envoyant tous les événements système internes connectés à une télécommande Syslog serveur.

Exigences

  1. Installation de «Centos 8.0 "avec des captures d'écran
  2. Installation de RHEL 8 avec des captures d'écran

Afin de configurer un serveur de journaux centralisé sur un Centos / Rhel 8 serveur, vous devez vérifier une confirmation que le / var La partition a suffisamment d'espace (quelques Go au minimum) pour stocker tous les fichiers de journal enregistrés sur le système qui envoient par d'autres appareils sur le réseau. Je vous recommande d'avoir un lecteur séparé (LVM ou RAID) pour monter le / var / log / annuaire.

Comment configurer le serveur RSYSLOG dans CENTOS / RHEL 8

1. Comme j'ai dit, Rsyslog Le service est installé et s'exécute automatiquement Centos / Rhel 8 serveur. Afin de vérifier que le démon fonctionne dans le système, exécutez la commande suivante.

# Statut SystemCTL RSYSLOG.service 
Vérifiez le statut de rsyslog dans Centos 8

Si le service n'est pas en cours d'exécution par défaut, exécutez la commande suivante pour démarrer rsyslog démon.

# systemctl start rsyslog.service 

2. Si la Rsyslog L'utilitaire n'est pas installé par défaut sur le système que vous prévoyez d'utiliser comme serveur de journalisation centralisé, exécutez la commande DNF suivante pour installer le package RSYSLOG et démarrer le démon.

# dnf installer rsyslog # systemctl start rsyslog.service 

3. Une fois Rsyslog Utilitaire installé, vous pouvez désormais configurer RSYSLOG en tant que serveur de journalisation centralisé en ouvrant le fichier de configuration principale / etc / rsyslog.confli, Afin de recevoir des messages journaux pour les clients externes.

# vi / etc / rsyslog.confli 

Dans le / etc / rsyslog.confli Fichier de configuration, trouver et décommenter les lignes suivantes pour accorder une réception de transport UDP vers le Rsyslog serveur via 514 port. Rsyslog utilise la norme UDP Protocole de transmission logarithmique.

module (losh = "iMudp") # doit être fait une seule fois une entrée (type = "iMUDP" port = "514") 
Configurer le serveur RSYSLOG dans CentOS 8

4. Le protocole UDP n'a pas le TCP au-dessus, et il facilite la transmission des données que le TCP protocole. D'un autre côté, le UDP Le protocole ne garantit pas la fiabilité des données transmises.

Cependant, si vous voulez utiliser TCP Protocole pour réception du journal Vous devez trouver et décommenter les lignes suivantes dans le / etc / rsyslog.confli le fichier de configuration afin de configurer le démon Rsyslog pour lier et écouter une prise TCP sur 514 port.

module (losh = "imtcp") # doit être fait une seule fois une entrée (type = "imtcp" port = "514") 

5. Créez maintenant un nouveau modèle pour recevoir des messages distants, car ce modèle guidera le serveur RSYSLOG local, où enregistrer les messages reçus envoyés par les clients du réseau syslog.

$ template remotelogs, "/ var / log /% hostname% /% ProgramName%.enregistrer" *.* ?Remotelogs 
Créer un modèle pour le serveur RSYSLOG

Le $ template remotelogs La directive guide Rsyslog Daemon pour rassembler et écrire tous les messages de journal transmis à des fichiers distincts, en fonction du nom du client et de l'application client distante qui a créé les messages en fonction des propriétés décrites ajoutées dans la configuration du modèle: % Hostname% et% Programname%.

Tous les fichiers journaux reçus seront écrits sur le système de fichiers local à un fichier alloué nommé d'après le nom d'hôte de la machine client et conservé / var / log / annuaire.

Le & ~ La règle de redirection dirige le serveur RSYSLOG local pour arrêter davantage le message du journal reçu et supprimer les messages (pas les écrire dans les fichiers journaux internes).

Le Remotelogs est un nom arbitraire donné à cette directive de modèle. Vous pouvez utiliser le nom que vous voulez qui convient le mieux à votre modèle.

Pour configurer des modèles RSYSLOG plus complexes, lisez le manuel du fichier de configuration RSYSLOG en exécutant le homme Rsyslog.confli commander ou consulter la documentation en ligne RSYSLOG.

# man rsyslog.confli 

6. Après avoir apporté les modifications de configuration ci-dessus, vous pouvez redémarrer le démon RSYSLOG afin d'appliquer des modifications récentes en exécutant la commande suivante.

# Service Rsyslog Redémarrer 

7. Une fois que vous avez redémarré le Rsyslog serveur, il devrait désormais agir comme un serveur de journal centralisé et enregistrer des messages de clients syslog. Pour confirmer les sockets de réseau RSYSLOG, exécutez la commande netStat et utilisez l'utilitaire Grep pour filtrer la chaîne RSYSLOG.

# netStat -Tulpn | grep rsyslog 

Si commande netstat pas intal Centos 8, vous pouvez l'installer en utilisant la commande suivante.

# dnf whatprovides netstat # dnf installer net-tools 
Vérifiez les prises d'écoute RSYSLOG

8. Si tu as Selinux actif dans Centos / Rhel 8, Exécutez la commande suivante pour permettre le trafic RSYSLOG en fonction du type de socket réseau.

# PORT DE SEMANAGE -A -T SYSLOGD_PORT_T -P UDP 514 # PORT DE SEMANAGE -A -T SYSLOGD_PORT_T -P TCP 514 

Si commande de sémanage pas d'installation sur Centos 8, vous pouvez l'installer en utilisant la commande suivante.

# dnf whatprovides semanage # dnf installer la politique de la politique-python-utils 

9. Si vous avez un pare-feu actif sur le système, exécutez la commande suivante afin d'ajouter les règles nécessaires pour permettre le trafic RSYSLOG sur les ports dans Firewalld.

# Firewall-CMD - Permanent --Add-Port = 514 / TCP # Firewall-CMD --permanent --add-port = 514 / UDP # Firewall-Cmd - Reload 

Vous pouvez également limiter les connexions entrantes sur le port 514 des gammes IP de liste blanche comme indiqué.

# Firewall-CMD - Permanent --Add-Rich-Rule 'Rule Family = "IPv4" Source Address = "123.123.123.0/21"port port =" 514 "protocole =" TCP "accepter '# # Firewall-CMD --permanent --add-rich-Rule' Rule Family =" ipv4 "Source Address ="123.123.123.0/21"port port =" 514 "protocole =" UDP "accepter '# Firewall-Cmd - Reload 

C'est tout! Rsyslog est désormais configuré comme un serveur de journaux de centralisation et peut collecter des journaux à des clients distants. Dans le prochain article, nous verrons comment configurer le client RSYSLOG sur Centos / Rhel 8 serveur.