GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer la journalisation à distance Rsyslog sous Linux (serveur de journal central)

Chaque distribution Linux possède une sorte de mécanisme de journalisation qui enregistre toutes les activités du système. Il y a quelque temps, nous avons fourni une liste de 20 fichiers journaux stockés sous /var/log qui pourraient vous être utiles lors du dépannage. Ces journaux sont très importants pour l'administrateur système à des fins de dépannage.

Voici les trois méthodes courantes pour consigner un message :

  1. Se connecter sur le même serveur :les messages sont écrits sur le disque dur local/la base de données locale
  2. Connexion sur un serveur distant :de nombreux systèmes transmettent leurs journaux via le réseau à un serveur de journaux central. Sur le serveur de journalisation central, les messages provenant de divers systèmes sont écrits sur le disque dur/base de données local.
  3. Journalisation des relais :la branche "A" et la branche "B" enregistrent les messages sur 2 serveurs différents. Ces serveurs enregistrent à leur tour le message au « siège social ».


Rsyslog est le programme de journalisation par défaut sur plusieurs distributions Linux, y compris les systèmes basés sur Debian et Red Hat. Outre l'implémentation du protocole syslog, rsyslog ajoute des fonctionnalités supplémentaires telles que le filtrage basé sur le contenu. Cela utilise également TCP pour le transport et offre de nombreuses options de configuration.

Cet article explique comment mettre en œuvre la méthode 2 mentionnée ci-dessus. c'est-à-dire que ceci explique comment configurer un serveur de journalisation central et envoyer les journaux de serveurs individuels au serveur de journalisation central.

Cette configuration vous aidera à analyser les fichiers journaux de tous les serveurs de votre infrastructure à partir d'un serveur de journalisation central.

Installation

Rsyslog est le programme de journalisation par défaut dans les systèmes basés sur la distribution Debian et Red Hat. Si votre système n'a pas rsyslog, installez-le comme indiqué ci-dessous en fonction de votre distribution.

apt-get install rsyslog rsyslog-doc
(or)
yum install rsyslog rsyslog-doc

Les configurations Rsyslog sont stockées dans le fichier /etc/ryslog.conf et les fichiers sous le répertoire /etc/rsyslog.d/.

Structure de configuration

Avant de comprendre comment configurer le serveur de journalisation central, il est bon de comprendre la structure de configuration de rsyslog.

Les fichiers de configuration Rsyslog sont structurés de la manière suivante

  1. Modules
  2. Directives de configuration
  3. Ligne de règle

Modules

Rsyslog a une architecture modulaire. Il permet d'ajouter dynamiquement des fonctionnalités à travers ces modules. Les modules sont classés comme :

  • Modules d'entrée :utilisés pour collecter des messages provenant de diverses sources
  • Modules de sortie - Utilisés pour écrire les messages à divers endroits (fichier, socket, etc.)
  • Modules d'analyseur :utilisés pour analyser le contenu du message

Veuillez noter qu'il existe également d'autres catégories de modules disponibles. C'est pour donner un aperçu de ce que les modules peuvent faire.

Directives de configuration

Toutes les directives de configuration doivent être spécifiées une par ligne et doivent commencer par le signe dollar ($). Cela affecte les règles.

Ligne de règle

Chaque ligne de règle se compose de deux champs, un « champ de sélection » et un « champ d'action ». Le champ de sélection est divisé en deux, « installations et priorités ». Action spécifie quelle action doit être entreprise pour la règle correspondante.

Un exemple de configuration

######################
	MODULES
######################

$ModLoad imuxsock
$ModLoad imklog

######################
	Directives
######################
# Set the default permissions for all log files. 

$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

######################
	RULES
######################
mail.info	/var/log/mail.info
mail.warn	/var/log/mail.warn
mail.err	/var/log/mail.err
daemon.*	/var/log/daemon.log

Remarque :10 exemples d'affichage de fichiers journaux volumineux sous Linux peuvent être utiles lorsque vous manipulez des fichiers journaux.

Modèles

Les modèles sont des fonctionnalités très importantes fournies par rsyslog. Il permet à l'utilisateur d'enregistrer les messages dans le format souhaité. Il peut également être utilisé pour créer des noms de fichiers dynamiques pour consigner les messages. En cas de journalisation de la base de données, les modèles sont utilisés pour convertir le message en une instruction SQL appropriée.

Un exemple de modèle ressemblera à :

$template mytemplate “Text-Before %msg% Text-After\n”

Le modèle ci-dessus enregistrera le message "Ceci est bonjour de rsyslog" comme :

Text-Before This is hello from rsyslog Text-After

Nous allons voir comment utiliser le modèle pour générer dynamiquement les fichiers journaux.

Serveur de journalisation central

Les sections ci-dessus devraient avoir donné un aperçu de rsyslog et comment le configurer. Nous allons maintenant passer à la configuration d'un système de journalisation central.

Pour notre discussion, nous aurons l'adresse IP du serveur en tant que "192.168.1.1" pour le serveur de journal central, où tous les messages de journal du client doivent être transférés.

Ajoutez les lignes suivantes au fichier rsyslog.conf des serveurs du serveur de journalisation central (dans cet exemple, la ligne suivante a été ajoutée sur le serveur de journalisation avec l'adresse IP 192.168.1.1) :

# provides support for local system logging
$ModLoad imuxsock 

# provides kernel logging support (previously done by rklogd)
$ModLoad imklog

# provides UDP syslog reception. For TCP, load imtcp.
$ModLoad imudp

# For TCP, InputServerRun 514
$UDPServerRun 514

# This one is the template to generate the log filename dynamically, depending on the client's IP address.
$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"

# Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), will be under a separate directory which is formed by the template FILENAME.
*.* ?FILENAME

Après avoir ajouté les lignes ci-dessus au fichier rsyslog.conf, redémarrez le processus rsyslog. Maintenant, le serveur rsyslog sera prêt à accepter les messages.

# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

Ajoutez les lignes suivantes au fichier rsyslog.conf sur les machines clientes individuelles qui doivent envoyer leurs messages de journal au serveur central.

$ModLoad imuxsock

$ModLoad imklog

# Provides UDP forwarding. The IP is the server's IP address
*.* @192.168.1.1:514 

# Provides TCP forwarding. But the current server runs on UDP
# *.* @@192.168.1.1:514

Redémarrez le processus rsyslog sur les clients. Maintenant, le serveur central rsyslog (dans cet exemple, 192.168.1.1) recevra tous les messages de journal des clients configurés et le journal de chaque client sera placé dans un répertoire séparé.


Linux
  1. Comment configurer le serveur Rsyslog sur Debian 11

  2. Comment utiliser rsyslog pour créer un serveur d'agrégation de journaux Linux

  3. Comment configurer un serveur de journalisation centralisé à l'aide de Rsyslog

  4. Comment configurer SSH sans mot de passe sous Linux

  5. Comment configurer un tunnel SSH inversé sous Linux

Comment configurer le serveur Rsyslog sur Debian 11 (Bullseye)

Comment configurer un serveur Linux sur Amazon AWS

Comment configurer le serveur de journalisation central à l'aide de Rsyslog sur Ubuntu 20.04

Comment configurer un serveur multimédia en streaming à l'aide de Jellyfin sous Linux

Comment configurer le serveur Rsyslog sur Ubuntu

Comment créer une configuration Rsyslog de journalisation centralisée