Comment gérer la collecte et l’analyse centralisées des journaux avec Graylog

Graylog est une solution open source robuste pour centraliser la gestion des logs. Idéale pour collecter, visualiser et analyser les logs de tous types d’appareils (serveurs Linux, Windows, équipements réseau, etc.), elle vous permet de trouver facilement les logs dont vous avez besoin. Si vos logs sont éparpillés et que la recherche de problèmes s’apparente à chercher une aiguille dans une botte de foin, Graylog peut changer la donne. Une fois en marche, vous bénéficiez de fonctionnalités de recherche, de filtrage et de tableaux de bord quasi instantanées. Attention cependant : la configuration n’est pas une mince affaire, surtout si vous débutez dans l’installation de serveurs ou la gestion des dépendances. Ce guide vous accompagne pas à pas dans l’installation complète de la suite logicielle sur un système Linux, principalement basé sur Debian, pour une mise en service sans stress.

Pour que Graylog fonctionne, il faut installer plusieurs composants : MongoDB pour les métadonnées, OpenSearch (ou Elasticsearch) pour le stockage et la recherche des journaux, Java (OpenJDK) et le serveur Graylog lui-même. Côté matériel, assurez-vous que votre machine dispose d’au moins 2 Go de RAM (davantage est préférable pour les configurations plus importantes).En effet, Linux a tendance à compliquer les choses inutilement : des problèmes de dépendances peuvent survenir, notamment sur les versions récentes de Debian ou Ubuntu. L’essentiel est d’installer tous les prérequis, de configurer correctement chaque composant et de vérifier que les services démarrent correctement. Ce n’est pas une opération de cinq minutes, mais une fois l’ensemble opérationnel, c’est un outil très performant pour la gestion des journaux.

Comment installer la suite Graylog sur les systèmes Linux

Configuration de MongoDB et de ses dépendances

  • Commencez par installer GnuPG et curl s’ils ne sont pas déjà installés sur votre système ; ils sont nécessaires pour la configuration du dépôt et la gestion des clés.
  • Ajoutez le dépôt MongoDB 6.x car, oui, MongoDB 7 n’est pas encore recommandé pour Graylog — ne négligez pas cette étape, sinon, croyez-moi, les mises à jour seront un cauchemar.
  • Utiliser$ sudo apt-get install gnupg curl
  • Ensuite, récupérez la clé GPG MongoDB et ajoutez le dépôt :
  • bash $ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg –dearmor $ echo « deb [signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main » | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  • Mettre à jour la liste des paquets et installer MongoDB :
  • $ sudo apt-get update
  • $ sudo apt-get install -y mongodb-org

Remarque importante : sur certaines configurations, l’installation de MongoDB 6.x génère des erreurs de dépendances non satisfaites, principalement parce que libssl1.1 n’est plus disponible dans les versions récentes de Debian/Ubuntu. Dans ce cas, téléchargez et installez manuellement le paquet libssl requis.

$ sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb $ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb 

Une fois installé, démarrez et activez MongoDB :

$ sudo systemctl daemon-reload $ sudo systemctl enable mongod.service $ sudo systemctl restart mongod.service $ sudo systemctl --type=service --state=active | grep mongod

Installation d’OpenSearch (ou Elasticsearch)

  • Ajout du dépôt OpenSearch car Graylog fonctionne bien avec OpenSearch 2.x — Elasticsearch n’est plus officiellement pris en charge.
  • Commandes :
  • $ sudo apt-get update && sudo apt-get install lsb-release ca-certificates curl gnupg2
  • Récupérez la clé GPG et ajoutez le dépôt :
  • bash $ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg –dearmor –batch –yes -o /usr/share/keyrings/opensearch-keyring $ echo « deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main » | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list $ sudo apt update

Lors de l’installation, à partir d’OpenSearch 2.12, vous devrez définir un mot de passe administrateur lors de la première exécution :

$ sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c 32) apt-get install opensearch

Configurez les paramètres pour une installation de base sur un seul nœud. Utilisez nano /etc/opensearch/opensearch.yml et modifiez les lignes suivantes :

cluster.name: graylog node.name: ${HOSTNAME} path.data: /var/lib/opensearch path.logs: /var/log/opensearch discovery.type: single-node network.host: 0.0.0.0 action.auto_create_index: false plugins.security.disabled: true indices.query.bool.max_clause_count: 32768 

Configurez également les notifications par e-mail (pour les alertes) dans le fichier `/etc/opensearch/opensearch.yml`. Renseignez les paramètres SMTP, tels que l’hôte, le port et les informations d’authentification de votre compte Gmail. N’oubliez pas : vous aurez besoin d’un compte de messagerie valide avec un accès moins sécurisé activé pour les applications si vous souhaitez recevoir les alertes via Gmail (il est toutefois préférable d’utiliser un mot de passe spécifique à l’application).Sachez que cette étape est souvent négligée, mais sans elle, les alertes par e-mail ne fonctionneront pas.

Le dimensionnement de la mémoire Java est crucial, notamment pour la gestion des ressources. Modifiez le fichier `/etc/opensearch/jvm.options` et définissez les options `–heap` -Xmset ` -Xmx–heap` à environ la moitié de votre RAM totale. Par exemple, si le serveur dispose de 8 Go de RAM, définissez les deux options à 4 Go.

-Xms4g -Xmx4g 

Enfin, ajustez la mémoire virtuelle de Linux pour permettre à OpenSearch de fonctionner correctement :

$ sudo sysctl -w vm.max_map_count=262144 $ echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf 

Démarrer et activer OpenSearch :

$ sudo systemctl enable --now opensearch

Installation du serveur Graylog

  • Ajouter le dépôt Graylog pour Debian :
  • $ wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
  • Installez-le et mettez-le à jour :
  • $ sudo dpkg -i graylog-5.2-repository_latest.deb
  • $ sudo apt-get update
  • Installer le serveur Graylog :
  • $ sudo apt-get install graylog-server

Avant de démarrer Graylog, générez des secrets sécurisés, car ils sont indispensables à l’installation. Utilisez pwgen (installez-le si nécessaire) pour créer un secret aléatoire :

$ pwgen -N 1 -s 96

Générez le hachage SHA-256 du mot de passe administrateur que vous prévoyez d’utiliser :

$ echo -n "YourPassword" | sha256sum | awk '{ print $1 }'

Collez le secret et le hachage générés dans le fichier /etc/graylog/server/server.conf. Ensuite, configurez l’adresse IP et le port de l’interface web (généralement http_bind_address ) pour la rendre accessible. Enfin, démarrez le service Graylog.

$ sudo systemctl enable --now graylog-server

Première connexion et configuration initiale

Lors de votre première connexion à l’interface web de Graylog, il vous sera demandé le mot de passe que vous avez défini précédemment. Cependant, en raison de certaines particularités du processus, un mot de passe temporaire apparaîtra dans les journaux (par exemple : « eDLaYAlaeX »).Utilisez ces identifiants pour vous connecter, puis suivez les instructions de l’assistant de configuration initiale. La procédure est très simple : il vous suffit de sélectionner vos entrées, de configurer les utilisateurs et de créer des flux pour vos périphériques. Pour recevoir les journaux de base depuis des serveurs Linux, il vous suffit de configurer une entrée Syslog UDP sur le port 514 (ou tout autre port de votre choix), puis de configurer vos périphériques pour qu’ils y envoient leurs journaux.

Une fois les journaux d’événements enregistrés, utilisez la fonction de recherche pour trouver des événements et créer des tableaux de bord. Par exemple, la recherche des tentatives SSH infructueuses se fait avec une requête du type : [insérer la requête application_name:sshd AND message:Fail*ici].Le filtrage est simple grâce aux outils intégrés, mais il vous faudra peut-être un peu de pratique pour maîtriser la syntaxe. C’est souvent là que les utilisateurs rencontrent des difficultés ; ne soyez donc pas surpris s’il vous faut plusieurs essais pour optimiser vos recherches.

Et bien sûr, configurer des alertes peut s’avérer très utile. Vous pouvez paramétrer une notification par e-mail lors d’une connexion SSH ou à l’apparition de certaines erreurs dans les journaux. Il vous suffit d’aller dans la section « Alertes », de définir vos critères de recherche et de choisir les notifications par e-mail ou Slack. Une petite configuration est nécessaire, mais une fois effectuée, Graylog assurera une surveillance continue, même en votre absence.

J’espère que cela vous aidera à prendre en main Graylog sans trop de difficultés. C’est un peu fastidieux, mais la visibilité qu’il offre sur votre environnement en vaut largement la peine. Un conseil : patience et configuration minutieuse sont essentielles. Une fois tout configuré, les journaux deviennent beaucoup plus clairs et le dépannage est grandement facilité.

Résumé

  • Installez soigneusement les serveurs MongoDB, OpenSearch et Graylog, et surveillez les dépendances.
  • Modifiez les fichiers de configuration avec les paramètres appropriés, notamment les paramètres de mémoire et de réseau.
  • Configurez vos sources syslog pour envoyer les journaux aux entrées de Graylog.
  • Explorez les filtres de recherche, les tableaux de bord et les alertes une fois que les journaux commenceront à être générés.

Conclure

La mise en place de ce système demande un peu de patience, mais une fois opérationnel, les avantages des journaux centralisés sont considérables. C’est un excellent investissement pour le dépannage, la sécurité et la surveillance de votre réseau. En cas de problème, vérifiez attentivement les journaux et les configurations de chaque service ; souvent, une simple faute de frappe ou un problème réseau est à l’origine des plus gros soucis. Espérons que cela permettra à certains d’éviter un week-end de frustration.