La centralisation des logs avec Graylog
27 février 2022
Metaverse, mondes virtuels: vivons nous actuellement dans une simulation ?
19 mars 2022
La centralisation des logs avec Graylog
27 février 2022
Metaverse, mondes virtuels: vivons nous actuellement dans une simulation ?
19 mars 2022
Tout voir

Enregistrer ses logs Rsyslog sur Graylog

Dans un précédent article, je vous présentais Graylog. Ajoutons lui à présent des sources de logs, et notamment Rsyslog !

Petit rappel sur Rsyslog

Rsyslog est le processus qui gère les logs sur une machine Linux.
Il rassemble les logs de l’activité du système d’exploitation, du noyau, et des interactions avec le hardware (les composants de la machine).

Il ne rassemble pas nécessairement les logs des applications ou logiciels que vous installez, car ces logiciels peuvent tout à fait stocker leurs propres logs dans leurs dossiers d’installation.

Rsyslog utilise le système syslog (plus ancien) pour fonctionner.

Il centralise les journaux d’événements, permettant de repérer plus rapidement et efficacement les défaillances d’ordinateurs présents sur un réseau. Il présente la particularité d’en étendre les fonctionnalités en permettant, notamment, de filtrer sur des champs, de filtrer à l’aide d’expressions régulières

Vous pouvez en savoir plus sur Rsyslog en lisant l’article de WikiPedia (dont j’ai tiré ces infos).

 

Je ne reviendrais pas sur l’utilité de surveiller ses logs, j’en ai parlé dans l’article sur Graylog, mais sachez qu’ils vous permettent notamment de détecter des activités suspectes sur votre machine (accès à distance) ou bien encore d’identifier les problèmes importants liés à son fonctionnement.

Envoyer ses logs Rsyslog sur Graylog

Si vous avez suivi l’article précédent sur Graylog, et que vous l’avez installé, rassurez vous, les étapes suivantes seront bien plus simples.

Il ne s’agira que de modifier la configuration de Rsyslog pour qu’il envoie les logs sur votre serveur Graylog

Je suppose dans cet article que vous avez installé le serveur Graylog.
Si vous ne l’avez pas encore fait, voici mon article sur le sujet, qui vous aidera à le mettre en place.

Pour la suite de cet article, on sera connecté en SSH sur la machine qui enverra ses logs sur le serveur Graylog.

Avec votre navigateur préféré (Nano, Vim), vous éditez le fichier /etc/rsyslog.conf

$ sudo nano /etc/rsyslog.conf

Vous voici dans la configuration de Rsyslog.

Il suffit alors de rajouter une ligne, tout à la fin du fichier:

*.* @IP_de_Graylog:1516;RSYSLOG_SyslogProtocol23Format

Naturellement, vous remplacez « IP_de_Graylog » par l’adresse IP de votre serveur Graylog.

Pour décomposer un peu cette ligne de code:

*.* indique qu’on envoie absolument tous les logs syslog sur le serveur

@10.0.1.121:1516 indique l’adresse du serveur Graylog, ainsi que le port sur lequel on envoie les logs.

RSYSLOG_SyslogProtocol23Format est le format des logs que l’on veut envoyer à Graylog.

Vous remarquez donc que l’adresse IP du serveur Graylog doit absolument être une IP fixe.

A présent, on peut enregistrer les modifications et quitter

:wq –> pour Vi / Vim
Ctrl + o Ctrl + x –> pour Nano

On redémarre à présent Rsyslog pour que les modifications soient prises en compte:

$ sudo systemctl restart rsyslog.service

Et naturellement, on s’assure que le service est pleinement fonctionnel:

$ sudo systemctl status rsyslog.service

Nickel !

Il ne reste plus qu’à réceptionner tout ça du coté de Graylog, et c’est tout bon !

Configurer Graylog

Graylog est vraiment très puissant. Mais pour ce faire, il faut lui dire comment récupérer les logs.

Dans la section précédente, on a indiqué au serveur qu’on allait envoyer les logs vers Graylog.

 

A présent, on va dire à Graylog comment les récupérer.
Pour ce faire, rendez vous sur l’interface de votre serveur Graylog, avec votre navigateur internet.

Il est accessible à l’adresse http://IP_de_votre_serveur_graylog:9000

Graylog n’affiche rien pour le moment, et c’est bien normal, on va justement s’en charger.

Cliquez sur « System » puis « Inputs »

Les inputs définissent les points d’entrée des logs que vous envoyez sur Graylog. On va donc indiquer au serveur comment les récupérer.

Dans le menu déroulant, sélectionnez « Syslog UDP »
Puis cliquez sur « Launch new imput »

Dans la fenêtre qui va s’ouvrir, on va renseigner quelques informations.

On va notamment sélectionner le « node« . Vous ne devriez en avoir qu’un seul de disponible. Le nom peut changer selon ce que vous avez défini à l’installation de Graylog.

On va également donner un nom à cet input (champs « Title« ).
Moi par exemple, je lui donne le nom de mon serveur.

Enfin, on va préciser le port sur lequel sont envoyés les logs. Il s’agit du port que vous avez choisi un peu plus haut, quand vous avez modifié le fichier /etc/rsyslog.conf

Dans notre exemple, il s’agissait du port 1516

Attention: les ports inférieurs à 1024 sont réservés, et Graylog refusera de les utiliser. Vous devez donc avoir choisi un port au delà de cette valeur !

Validez vos modifications, et vous pouvez à présent cliquer sur « start input »

Graylog va immédiatement commencer à recevoir des messages de votre serveur. Et vous pouvez les voir en cliquant sur « Show received messages« 

En l’état, c’est terminé: vos logs apparaissent bien sur Graylog et tout va bien.
Néanmoins, si vous avez plusieurs serveurs et que vous souhaitez pouvoir choisir de quel serveur vous voulez lire les logs, ça va vite devenir ennuyeux de passer par « System » – « Inputs » – « Show Received messages »

Je vais donc vous aider à créer des flux (appelés « streams« ) pour que vous puissiez filtrer les logs directement depuis la page d’accueil.

Voici comment on fait !

Regardez la photo ci dessus.
Quand vous affichez les messages de votre input, Graylog vous emmène sur la page d’accueil, et dans les paramètres de recherche, il affiche ceci:

gl2_source_input:62162e6c1d559c6267f0ad09

Ce code (62162e6c1d559c6267f0ad09) est la valeur unique de la variable gl2_source_input.

Naturellement, vous ne verrez pas le même chiffre chez vous.
On va créer un stream en lui disant donc de n’afficher que les logs issus de cette variable.

 

Pour cela, cliquez sur « Stream » dans le menu principal.
Puis dans la nouvelle page, cliquez sur « Create stream« 

Donnez un nom et une description à votre stream.

Laissez l’index par défaut, il peut être utile pour les réglages plus poussés, mais ce n’est pas l’objet de cet article.

Validez ensuite les modifications.
Votre stream apparaitra dès lors dans la liste.

 

On va lui donner une règle: celle de n’afficher que les flux provenant de la source 62162e6c1d559c6267f0ad09

Pour ce faire, cliquez sur « Manage Rules » puis « Add stream Rule« 

Dans le champs « Field« , tapez « gl2_source_input »
Graylog devrait d’ailleurs proposer l’auto complétion.

Puis dans le champs « Type« , choisissez « match exactly »

Enfin, dans le champs « Value« , ajoutez la valeur de la variable gl2_source_input que vous avez obtenu plus haut.

 

Enregistrez les modifications. Et c’est terminé !

 

A présent, sur la page d’accueil de Graylog, utilisez le menu déroulant du haut pour sélectionner le stream que vous venez de créer. Et vos logs apparaissent !

Vous avez des questions, ou vous voulez réagir suite à cet article ?

Vous pouvez le faire dans les commentaires (ils n’apparaissent pas immédiatement car ils sont modérés).

Vous pouvez également en parler directement sur le chat, accessible ici ∇

Rejoindre le chat !

Amen0thes
Amen0thes
Je suis un passionné d'informatique, mais aussi de sciences, notamment d'astrophysique et d'astronomie. Je réalise des créations numériques de toute sorte (musique, vidéo, photo, photoshop, after effect, créations 3D sous Blender). Quand il fait beau, je sors le drone, je quitte la salle de sport pour courir dehors (même si je déteste courir), et je suis amateur de moto. Et quand il pleut, j'apprend la guitare. Geek ascendant Nerd.

1 Comment

  1. Afu dit :

    Bonjour,
    Merci pour votre tuto !!
    J’ai une question, comment est-ce que je récupère des données qui sont sur des serveurs distants ?
    J’ai un serveur syslog qui n’est pas le même que mon serveur Graylog, et j’aimerais que mon graylog récupère les données du serveur Syslog.
    Comment puis-je procéder ?

    Merci d’avance,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *