GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Rsyslog est un utilitaire open source pour le traitement des journaux. Il permet la journalisation des données de différents types de systèmes dans un référentiel central. Rsyslog est un protocole Syslog avec plus d'extensions, de fonctionnalités et d'avantages.

Qu'est-ce qui rend rsyslog si puissant ? Rsyslog peut livrer plus d'un million de messages par seconde vers des destinations locales lorsqu'un traitement limité est appliqué.

Dans ce tutoriel, nous apprenons à installer et configurer rsyslog sur Ubuntu 20.04 .

Fonctionnalités Rsyslog

Rsyslog est arrivé en 2004. et il étend le protocole syslog avec de nouvelles fonctionnalités :

  • Prise en charge du protocole RELP
  • Prise en charge des opérations tamponnées
  • Écouter les connexions TCP/UDP (avec port de restrictions, IP)
  • Prise en charge du chargement de nombreux modules (par exemple, un module prenant en charge le protocole RELP)
  • Prise en charge du message de suppression contenant des règles configurées spéciales

Dans Rsyslog, les fichiers de configuration restent les mêmes que Syslog. Cela signifie simplement que vous pouvez copier un fichier syslog.conf directement dans rsyslog.conf et cela fonctionnera.

Qu'est-ce que les journaux et syslog ?

Avant de passer au processus de configuration lui-même, voyons d'abord à quoi servent les journaux ? Les informations du journal peuvent vraiment vous aider à voir ce qui s'est passé exactement sur votre système, ou ce qui se passe exactement sous le capot.

Permettez-moi de vous donner un exemple :si tout à coup votre ordinateur s'est figé ou peut-être en panne ou même en cas d'indisponibilité de votre système et des informations bien plus utiles que vous ne pouvez pas voir de la manière habituelle lorsque le message d'erreur s'affiche.

Si vous savez comment utiliser correctement les journaux, ils peuvent vous offrir de nombreuses fonctionnalités et avantages pour les informations de diagnostic sur le système lui-même.

Par défaut, Linux utilise le démon syslog pour enregistrer les journaux sur le fonctionnement du système, puis mettre ces journaux dans un référentiel central dans :/var/log où nous pouvons les examiner et les étudier.
En termes simples, tout, des événements du noyau aux actions des utilisateurs, est enregistré par Linux, ce qui vous permet de voir presque toutes les actions effectuées sur votre ordinateur ou vos serveurs.

Dans le système de fichiers Linux, il existe un répertoire spécial pour stocker les journaux appelé /var/log . Ce répertoire contient tous les journaux du système d'exploitation lui-même, tels que :les services ou diverses applications exécutées sur le système.

Voyons à quoi ressemblent les répertoires et les structures des journaux sur le nouveau Linux Ubuntu 20.04.

Répertoire où sont stockés les différents types de journaux :

/var/log/syslog - Stocke tous les messages de démarrage, les messages de démarrage de l'application, etc. Stocke pratiquement tous les journaux système globaux.
/var/log/cron - Les tâches Cron sont essentiellement une sorte de tâche planifiée et automatisée créée dans le système, qui s'exécute périodiquement et à plusieurs reprises. Vous pouvez voir ce que ce répertoire de journaux stockerait.
/var/log/kern.log - il stocke les journaux du noyau. Peu importe les journaux qu'ils sont. Journaux d'événements, d'erreurs ou d'avertissements.
/var/log/auth.log - Journaux d'authentification
/var/log.boot.log - Journaux de démarrage du système
/var/log/mysql.d - Journaux MySQL
/var/log/httpd - Répertoire des journaux Apache
/var/log/maillog - Journaux du serveur de messagerie

Configurer le serveur de journalisation centralisé Rsyslog sur Ubuntu 20.04

Après un bref aperçu, que sont les journaux, Syslog et où rsyslog a sa place, passons au processus de configuration lui-même.

Prérequis

  • Deux serveurs exécutant Ubuntu 20.04
  • Une adresse IP statique :par exemple, 192.168.0.101 doit être configurée sur la machine serveur Rsyslog et 192.168.0.102 est configurée sur la machine cliente Rsyslog

Le système Ubuntu 20.04 a rsyslog installé par défaut fourni avec les packages système standard.

Vous pouvez vérifier s'il est en cours d'exécution :

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Exécutez la commande suivante pour vérifier la version de Rsyslog actuellement installée :

$ rsyslogd -v

Sortie :

rsyslogd  8.2001.0 (aka 2020.01) compiled with:
         PLATFORM:                               x86_64-pc-linux-gnu
         PLATFORM (lsb_release -d):
         FEATURE_REGEXP:                         Yes
         GSSAPI Kerberos 5 support:              Yes
         FEATURE_DEBUG (debug build, slow code): No
         32bit Atomic operations supported:      Yes
         64bit Atomic operations supported:      Yes
         memory allocator:                       system default
         Runtime Instrumentation (slow code):    No
         uuid support:                           Yes
         systemd support:                        Yes
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

S'il n'est pas installé ou en cours d'exécution, installez rsyslog à l'aide des commandes suivantes :

$ sudo apt-get update
$ sudo apt-get install rsyslog

Il est maintenant temps d'aller sur rsyslog.conf file, pour décommenter et modifier certaines lignes pour exécuter le service rsyslog en mode serveur :

$ sudo nano /etc/rsyslog.conf

Décommentez ces quatre lignes qui activent la liaison des ports udp et tcp :

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

La prochaine étape que nous allons devoir ajouter est de créer un nouveau modèle. Nous devons créer un nouveau modèle pour recevoir des messages à distance. Un modèle donnera des instructions au serveur rsyslog sur la façon de stocker les messages syslog entrants.

REMARQUE : Ajoutez un modèle juste avant les DIRECTIVES GLOBALES rubrique :

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

La ligne ci-dessus indique que les journaux reçus seront traités et stockés dans le répertoire /var/log/. Vous pouvez définir dans le fichier /etc/rsyslog.conf où rsyslog logs.

Le nom du fichier contient %HOSTNAME% et les variables %PROGRAMNAME% représentent la machine cliente et le nom du programme client qui ont généré le message de journal.

Enregistrez ceci et redémarrez le service rsyslog :

$ sudo systemctl restart rsyslog

Confirmez que le service rsyslog écoute sur les ports configurés :

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Si vous avez peut-être un service de pare-feu ufw, vous devez autoriser les règles de port de pare-feu rsyslog :

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

Pour vérifier la configuration , exécutez la commande suivante :

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Configurer Rsyslog sur le client

Une fois cette configuration du serveur rsyslog effectuée, l'étape suivante consiste à configurer votre machine cliente rsyslog pour envoyer les journaux à distance serveur rsyslog.

Au fur et à mesure que nous allons avec le fichier rsyslog.conf sur un serveur distant, la même chose ouvrira ce fichier côté client avec votre éditeur préféré et modifiera quelques modifications :

sudo nano /etc/rsyslog.conf

Et autoriser la préservation du FQDN :Alternativement, pour que rsyslog envoie le nom de domaine complet (FQDN, tel que system1.example.com) au lieu du simple nom d'hôte (system1), utilisez la directive :

$PreserveFQDN on

Ajoutez le serveur rsyslog distant configuré à la fin.

 @192.168.0.101:514

Ou vous pouvez activer l'envoi de journaux via UDP. Pour TCP, utilisez @@ , au lieu d'un

*.* @@192.168.0.101:514

Pour finir, ajoutez ces variables suivantes au cas où le serveur rsyslog tombe en panne :

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Redémarrez ensuite le service rsyslog :

sudo systemctl restart rsyslog

Vérifier les journaux

Une fois la configuration terminée sur la machine cliente, nous voulons vérifier que tout s'est bien passé.

Accédez à votre serveur Rsyslog pour vérifier les journaux de votre machine client :

$ ls /var/log/

Vous trouverez quelque chose comme ceci :

Dans mon cas, le répertoire nommé obrad est le nom de ma machine cliente que j'utilise actuellement. Nous allons entrer dans ce répertoire et voir quelque chose comme ceci :

Vous devriez voir tous les fichiers journaux générés par Rsyslog.

Vous pouvez vérifier n'importe lequel de ces journaux avec la commande suivante :Inspectons par exemple systemd.log .

$ tail -f /var/log/obrad/systemd.log

Et vous verrez quelque chose comme ceci :

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: Succeeded.

Comme vous pouvez le voir, j'ai lancé l'édition de texte terminal et gedit sur ma machine cliente et Rsyslog a généré et affiché cela dans la sortie.

Conclusion

Dans ce didacticiel, nous avons appris à configurer les paramètres de base de rsyslog à l'aide du modèle client-serveur sur Ubuntu 20.04. Le syslog-ng, FluentD, Logstash, GreyLog2 et Logagent, Filebeat sont les autres alternatives pour Rsyslog.




Ubuntu
  1. Comment configurer le serveur Rsyslog sur Ubuntu 18.04 LTS

  2. Comment configurer le serveur Rsyslog sur Debian 11

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

  4. Configurer Rsyslog Server sur Ubuntu 20.04 - Comment faire ?

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

Comment configurer OpenVPN sur Ubuntu Server

Comment configurer le serveur Git sur Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu

Comment configurer un VPN sur Ubuntu

Comment configurer le serveur DHCP sur Ubuntu

Comment configurer Rsyslog sur Ubuntu 20.04 LTS