Installer Graylog sous Rocky Linux

Auparavant, j’utilisais la suite ELK (Elasticsearch, Logstash, Kibana), qui offre une solution robuste et très personnalisable pour la gestion des logs. Cependant, j’ai constaté que sa gestion demandait un investissement en temps important, notamment pour la configuration et la maintenance.

Pour simplifier, j’ai migré vers Graylog, qui présente plusieurs avantages :

  • Interface conviviale : Tout peut être configuré à travers l’interface graphique.
  • Centralisation : Graylog regroupe toutes les fonctionnalités nécessaires à la gestion des logs en un seul endroit.
  • Facilité de mise en œuvre : Une installation et une configuration simplifiées par rapport à ELK.

Voici une procédure pas à pas pour installer Graylog version 6.0.x sous Rocky Linux 8.


  • Graylog Version : 6.0.x
  • MongoDB Version : Minimum 5.0.7, Maximum 7.x
  • OpenSearch Version : Minimum 1.1.x (1.3.x pour la sécurité), Maximum 2.13.x
Info
Pour vérifier les prérequis et la matrice de compatibilité, consultez le site officiel de Graylog ici.

MongoDB est une base de données NoSQL largement utilisée pour stocker des données de manière flexible et rapide. Dans le contexte de Graylog, MongoDB sert principalement à stocker les métadonnées telles que les utilisateurs, les permissions et les configurations.

  1. Ajoutez le dépôt MongoDB :

    bash

    sudo vi /etc/yum.repos.d/mongodb-org.repo

    Ajoutez :

    ini

    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
  2. Installez MongoDB :

    bash

    sudo yum install -y mongodb-org
  3. Configurez MongoDB pour démarrer automatiquement :

    bash

    sudo systemctl daemon-reload
    sudo systemctl enable mongod
    sudo systemctl start mongod
    sudo systemctl status mongod
  4. Empêchez les mises à jour automatiques :

    bash

    sudo yum versionlock add mongodb-org

    Note : Lorsque vous souhaitez mettre à niveau le package, assurez-vous de supprimer la version verrouillée :

    bash

    sudo yum versionlock delete mongodb-org

OpenSearch est un moteur de recherche et d’analyse distribué basé sur Elasticsearch. Il est utilisé par Graylog pour indexer, rechercher et analyser les données de logs.

  1. Ajoutez le dépôt OpenSearch :

    bash

    sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
    sudo sed -i "s/^gpgcheck=.*/gpgcheck=0/g" /etc/yum.repos.d/opensearch-2.x.repo
  2. Installez OpenSearch :

    bash

    sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom  | head -c${1:-32}) yum -y install opensearch
  3. Empêchez les mises à jour automatiques :

    bash

    sudo yum versionlock add opensearch.x86_64-2.13

    Note : Lorsque vous souhaitez mettre à niveau le package, assurez-vous de supprimer la version verrouillée :

    bash

    sudo yum versionlock delete opensearch.x86_64-2.13
  4. Configurez OpenSearch pour un environnement mono-nœud :

    bash

    sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
    sudo vi /etc/opensearch/opensearch.yml

    Modifications clés :

    yaml

    cluster.name: graylog
    node.name: ${HOSTNAME}
    network.host: 0.0.0.0
    discovery.type: single-node
    action.auto_create_index: false
    plugins.security.disabled: true
    indices.query.bool.max_clause_count: 32768
  5. Ajustez les paramètres JVM pour allouer plus de mémoire :

    bash

    sudo vi /etc/opensearch/jvm.options

    Modifications :

    text

    -Xms2g
    -Xmx2g
  6. Configurez les paramètres du noyau :

    Lors de l’installation de services comme MongoDB et OpenSearch, il est nécessaire d’augmenter la limite du nombre de mappages mémoire autorisés. Ces applications, qui manipulent de grandes quantités de données, ont besoin d’un nombre élevé de mappages mémoire pour fonctionner correctement.

    bash

    sudo sysctl -w vm.max_map_count=262144
    sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

    Un mappage mémoire permet à ces services d’accéder directement à une portion de la mémoire physique, optimisant ainsi l’utilisation des ressources et améliorant les performances du système.

    Note : Cette configuration est essentielle pour garantir le bon fonctionnement des services qui exigent une gestion optimale de la mémoire.

  7. Démarrez OpenSearch :

    bash

    sudo systemctl daemon-reload
    sudo systemctl enable opensearch
    sudo systemctl start opensearch
    sudo systemctl status opensearch

Graylog est une plateforme centralisée de gestion des logs qui facilite la collecte, l’analyse et la visualisation des données issues de diverses sources. Il offre une interface intuitive pour naviguer dans les logs et identifier rapidement les problèmes.

  1. Ajoutez le dépôt Graylog et installez :

    bash

    sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-6.0-repository_latest.rpm
    sudo yum install graylog-server
  2. Empêchez les mises à jour automatiques :

    bash

    sudo yum versionlock add graylog-server-6.0

    Note : Lorsque vous souhaitez mettre à niveau le package, assurez-vous de supprimer la version verrouillée :

    bash

    sudo yum versionlock delete graylog-server-6.0
  3. Générez les secrets de configuration :

    bash

    password_secret=$(< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c96)
    root_password_sha2=$(echo -n "<your_secure_password>" | sha256sum | cut -d" " -f1)
  4. Configurez le serveur Graylog :

    bash

    sudo vi /etc/graylog/server/server.conf

    Modifications clés :

    text

    password_secret = $password_secret
    root_password_sha2 = $root_password_sha2
    http_bind_address = 0.0.0.0:9000
  5. Démarrez Graylog :

    bash

    sudo systemctl daemon-reload
    sudo systemctl enable graylog-server
    sudo systemctl start graylog-server
  6. Ajoutez une règle de pare-feu :

    bash

    sudo firewall-cmd --add-port=9000/tcp --permanent
    sudo firewall-cmd --reload

Graylog est une excellente alternative à ELK pour les environnements où la simplicité de gestion et la centralisation sont primordiales. Cette procédure devrait vous permettre de configurer Graylog rapidement tout en évitant les erreurs courantes. Si vous avez des questions ou des suggestions, n’hésitez pas à les partager dans les commentaires !