Comment installer le système de gestion centralisée des journaux Graylog sur Rocky Linux

Graylog est une plateforme de gestion de logs gratuite et open-source pour capturer, stocker et permettre l’analyse en temps réel de tes données et logs. Elle est écrite en Java et construite sur d’autres logiciels open-source comme MongoDB et Elasticsearch. Graylog fournit l’une des plateformes de gestion centralisée des journaux les plus efficaces, rapides et flexibles. Avec Graylog, tu peux envoyer et analyser des données structurées et non structurées provenant de presque toutes les sources de données.

Dans ce tutoriel, tu vas configurer la gestion centralisée des journaux à l’aide de Graylog sur le serveur Rocky Linux. Ce tutoriel comprend l’installation de base de certaines dépendances de Graylog, comme Elasticsearch et MongoDB. En outre, tu vas également configurer l’entrée Graylog et envoyer les journaux de la machine Linux au serveur Graylog via l’entrée Syslog.

Conditions préalables

Pour suivre ce tutoriel, tu auras besoin des conditions suivantes :

  • Un serveur exécutant Rocky Linux 8.
  • Un utilisateur non-root avec les privilèges sudo/administrateur.
  • Un firewalld en cours d’exécution et activé.

Installer Java OpenJDK

Le serveur Graylog est un serveur d’applications principalement écrit en Java. Pour installer Graylog, tu devras installer le Java OpenJDK sur ton système Rocky Linux. Au moment de la rédaction de ce document, le serveur Graylog nécessitait au moins Java v8 ou plus.

Sur le référentiel Rocky Linux, il existe plusieurs versions de Java OpenJDK que tu peux installer. Tu peux vérifier toutes les versions OpenJDK disponibles en utilisant la commande ci-dessous.

sudo dnf search openjdk

Dans cette démo, tu vas installer et utiliser la version Java OpenJDK v11 pour le serveur Graylog. Exécute la commande dnf ci-dessous pour installer java OpenJDK sur ton système Rocky Linux.

Lorsque tu es invité à confirmer l’installation, saisis‘y‘ et appuie sur ENTER.

sudo dnf install java-11-openjdk-devel

Lorsque l’installation de java OpenJDK est terminée, exécute la commande‘java‘ suivante pour contrôler et vérifier la version de Java OpenJDK. Tu devrais voir que l’OpenJDK v11 est installé sur ton système Rocky Linux.

java version

Vérifie le java

Installation de la base de données NoSQL MongoDB

Tu vas maintenant installer la base de données NoSQL MongoDB comme dépendances pour le serveur Graylog. MongoDB est utilisée pour stocker les données du serveur Graylog.

Pour installer MongoDB, tu devras ajouter le référentiel MongoDB. Ensuite, tu peux installer les paquets MongoDB.

Exécute la commande suivante pour ajouter le référentiel MongoDB pour le système Rocky Linux.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

Exécute maintenant la commande dnf ci-dessous pour vérifier la liste des référentiels disponibles sur ton système. Tu devrais voir le référentiel« mongodb » ajouté.

sudo dnf repolist

ajoute le repo de mongodb

Ensuite, installe le paquet MongoDB à l’aide de la commande dnf suivante. Lorsqu’on te demande de confirmer l’installation, saisis‘y‘ et appuie sur ENTER pour continuer.

sudo dnf install mongodb-org

installe mongodb

En outre, tu seras également invité à confirmer la clé GPG du référentiel MongoDB. Saisis‘y‘ pour confirmer et ajouter la clé GPG de MongoDB.

ajouter une clé gpg

Si l’installation de MongoDB est terminée, exécute la commande suivante pour recharger le gestionnaire systemd et appliquer le nouveau fichier de service MongoDB.

sudo systemctl daemon-reload

Démarre maintenant le service MongoDB sous le nom de‘mongod‘ à l’aide de la commande système suivante. Ensuite, active le service‘mongod‘ pour qu’il démarre automatiquement au démarrage du système.

sudo systemctl enable mongod
sudo systemctl start mongod

Enfin, exécute la commande systemctl suivante pour contrôler et vérifier le service‘mongod‘. Tu devrais voir que le service MongoDB‘mongod‘ fonctionne et qu’il est activé au démarrage du système.

sudo systemctl status mongod

Vérifier le service mongodb

Installer Elasticsearch

Elasticsearch gère le moteur de recherche de la pile de gestion des journaux du serveur Graylog. Au moment de la rédaction de ce document, tu dois installer Elasticsearch v7.x.

La version actuelle de Graylog Server ne fonctionnera qu’avec Elasticsearch v7.x. Si tu installes la dernière version d’Elasticsearch, comme v8.x ou v9.x, tu obtiendras une erreur.

Exécute maintenant la commande suivante pour configurer le référentiel Elasticsearch v7.x pour le système Rocky Linux.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Exécute la commande suivante pour contrôler et vérifier la liste du dépôt sur ton système. Tu verras que le référentiel Elasticsearch v7.x est ajouté.

sudo dnf repolist

Ajoute le référentiel elasticsearch

Ensuite, installe le paquet Elasticsearch à l’aide de la commande dnf ci-dessous. Lorsque tu es invité à confirmer l’installation, saisis‘y‘ pour confirmer et appuie sur ENTRÉE.

sudo dnf install elasticsearch

installe elasticsearch

Tu seras également invité à ajouter la clé GPG au référentiel Elasticsearch. Saisis‘y‘ pour ajouter la clé GPG. Et l’installation sera terminée.

ajouter une clé gpg

Ensuite, tu devras configurer le serveur Elasticsearch pour l’installation de base qui sera utilisée par Graylog Server.

Modifie le fichier de configuration par défaut d’Elasticsearch‘/etc/elasticsearch/elasticsearch.yml‘ en utilisant la commande ci-dessous.

sudo nano /etc/elasticsearch/elasticsearch.yml

Ajoute et décommente la configuration de base d’Elasticsearch suivante.

cluster.name: graylog-rocky8
action.auto_create_index: false

Enregistre et ferme le fichier lorsque tu as terminé.

Tu peux également configurer l’allocation maximale de mémoire pour le serveur Elasticsearch en modifiant le fichier‘/etc/elasticsearch/jvm.options‘ à l’aide de la commande ci-dessous.

sudo nano /etc/elasticsearch/jvm.options

Décompose et modifie la configuration par défaut comme ci-dessous. Tu peux modifier l’allocation de mémoire maximale ici avec la mémoire maximale de ton serveur.

-Xms1g
-Xmx1g

Enregistre et ferme le fichier lorsque tu as terminé.

Exécute maintenant la commande systemctl ci-dessous pour recharger le gestionnaire systemd et appliquer un nouveau fichier de service pour le serveur Elasticsearch.

sudo systemctl daemon-reload

Ensuite, démarre et active le serveur Elasticsearch à l’aide de la commande ci-dessous. Le service Elasticsearch sera automatiquement lancé au démarrage du système, et l’état actuel d’Elasticsearch devrait être en cours d’exécution.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

configurer elasticsearch

Enfin, exécute la commande suivante pour vérifier le service Elasticsearch et t’assurer que le service est en cours d’exécution. Tu devrais voir la sortie indiquant que le service Elasticsearch est en cours d’exécution et activé.

sudo systemctl status ealsticsearch

Vérifier elasticsearch

En outre, tu peux aussi accéder à ton serveur Elasticsearch via la commande curl ci-dessous. Tu devrais obtenir la sortie des informations de base sur ton serveur Elasticsearch, notamment le nom du cluster, l’uuuid du cluster, la version d’Elasticsearch et la version de Lucene (le cœur d’Elasticsearch).

curl localhost:9200

teste elasticsearch

Installation du serveur Graylog

Après avoir installé Java OpenJDK, MongoDB et Elasticsearch, tu dois maintenant installer le serveur Graylog. Avant cela, tu devras configurer le référentiel Graylog sur le serveur Rocky Linux. Ensuite, tu peux commencer à configurer le serveur Graylog, ce qui inclut la configuration de l’authentification par mot de passe pour Graylog, et la configuration de l’adresse http_bind_address qui sera utilisée par le serveur Graylog.

Au moment où nous écrivons ces lignes, la dernière version de Graylog Server est v4.3. Exécute la commande suivante pour ajouter le référentiel Graylog à ton serveur.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.rpm

Vérifie la liste des référentiels pour Graylog Server à l’aide de la commande suivante. Tu devrais voir que le référentiel Graylog Server est ajouté.

sudo dnf repolist

ajoute le repo de graylog

Ensuite, exécute la commande dnf suivante pour installer le paquetage Graylog Server. Lorsque tu es invité à confirmer l’installation, saisis‘y‘ pour confirmer et appuie sur ENTRÉE.

sudo dnf install graylog-server graylog-integrations-plugins

installe graylog

Tu seras également invité à ajouter la clé GPG au référentiel de Graylog Server. Saisis‘y‘ pour ajouter la clé GPG à ton système et appuie sur ENTRÉE. Et l’installation de Graylog Server sera terminée.

ajouter une clé gpg

Tu vas maintenant configurer le Graylog Server de base. Avant cela, exécute la commande dnf ci-dessous pour installer le paquet‘pwgen‘. Saisis‘y‘ lorsque tu es invité à confirmer l’installation et appuie sur ENTRÉE.

Le paquet pwgen fournit un outil en ligne de commande pour générer des secrets et des mots de passe qui seront utilisés pour configurer le serveur Graylog.

sudo dnf install pwgen

installe pwgen

Ensuite, exécute la commande pwgen suivante pour générer le‘mot de passe_secret‘ pour le serveur Graylog. Veille à copier le secret généré dans ta note.

sudo pwgen -N 1 -s 96

Exécute maintenant la commande suivante pour générer le mot de passe à hachage sha256 du‘root_password_sha2‘ pour le Graylog Server. Ce mot de passe sera utilisé pour te connecter au tableau de bord du Graylog Server. Veille à utiliser un mot de passe fort et à copier le mot de passe haché sha256 généré dans ta note.

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

génère un mot de passe secret

Ensuite, modifie le fichier de configuration du serveur Graylog ‘/etc/graylog/server/server.conf‘ à l’aide de la commande ci-dessous.

sudo nano /etc/graylog/server/server.conf

Change la valeur de l’option‘password_secret‘ et‘root_password_sha2‘ avec ton mot de passe généré. En outre, tu peux également modifier le nom d’utilisateur par défaut pour te connecter au serveur Graylog dans l’option‘graylog_username‘.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

Change maintenant l’option ‘http_bind_address’ avec l’adresse IP interne de ton serveur. De plus, le port par défaut du serveur Graylog est TCP ‘9000’.

http_bind_address = 0.0.0.0:9000

Sauvegarde et ferme le fichier lorsque tu as terminé.

configurer graylog

Exécute maintenant la commande systemctl suivante pour recharger le gestionnaire systemd et appliquer le fichier de service de Graylog Server.

sudo systemctl daemon-reload

Démarre et active le service‘graylog-server’ à l’aide de la commande systemctl ci-dessous. Le Graylog Server devrait maintenant être en cours d’exécution et activé, il démarrera automatiquement au démarrage du système.

sudo systemctl enable graylog-server
sudo systemctl start graylog-server

démarre le graylographe

Contrôle et vérifie le service‘graylog-server‘ à l’aide de la commande suivante. Tu devrais voir la sortie de l’état actuel de Graylog Server est en cours d’exécution, et il est activé et sera lancé automatiquement au démarrage.

sudo systemctl status graylog-server

Enfin, tu dois ajouter le port‘9000‘ utilisé par le serveur Graylog au firewall.

Exécute la commande firewall-cmd suivante pour ajouter le port‘9000‘ au firewalld. Ensuite, recharge les règles du firewalld pour appliquer les nouvelles modifications.

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

Configurer SELinux

Si tu exécutes le serveur Graylog avec SELinux activé en mode ‘enforcing’, tu dois configurer les règles SELinux pour le serveur Graylog.

Avant de gérer SELinux, exécute la commande dnf ci-dessous pour installer l’outil de ligne de commande pour gérer SELinux. Lorsque tu es invité à confirmer l’installation, saisis‘y‘ et appuie sur ENTER.

sudo dnf install policycoreutils policycoreutils-python-utils

installe les outils de gestion SEL:inux

Ensuite, exécute la commande suivante pour ajouter les règles SELinux pour le Graylog Server, Elasticsearch et MongoDB.

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

Tu peux maintenant accéder à ton serveur Graylog.

Créer une nouvelle entrée Graylog

Pour pouvoir recevoir les journaux de tes applications ou des machiens clients, tu dois configurer une entrée sur ton serveur Graylog. Il existe plusieurs types d’entrées Graylog que tu peux utiliser, consulte la documentation Graylog pour plus de détails. L’entrée Graylog fonctionnera sur le protocole TCP/UDP et pourra recevoir des journaux dans plusieurs formats tels que Syslog, GELF, CEF ou RAW. Tu pourras aussi recevoir les journaux de façon transparente via le protocole TCP/HTTPS.

Dans cette démo, tu vas créer une entrée Graylog qui sera utilisée pour recevoir les journaux des clients d’une machine Linux. Cette entrée utilisera le « Syslog UDP » et recevra les messages des journaux de la machine cliente via le protocole UDP.

Ouvre ton navigateur Web et visite l’adresse IP du serveur suivie du port ‘9000’ du serveur Graylog (c’est-à-dire http://192.168.5.100:9000/). Tu verras la page de connexion de ton installation Graylog Server.

Pour te connecter au tableau de bord de Graylog Server, saisis ton nom d’utilisateur et ton mot de passe. Ensuite, clique sur« Se connecter« .

connexion graylog

Tu devrais maintenant voir la nouvelle fenêtre du tableau de bord d’administration de Graylog Server.

Tableau de bord graylog

Pour créer une nouvelle entrée Graylog, clique sur le menu« Système » et sélectionne« Entrées« .

créer une entrée

Sélectionne le type d’entrée et clique sur« Lancer une nouvelle entrée« . Dans cet exemple, tu vas créer un nouveau type d’entrée« Syslog UDP« . Toutes les machines clientes Linux enverront des journaux via le protocole Syslog UDP à cette entrée.

créer une entrée syslog udp

Saisis maintenant les détails de ta nouvelle entrée comme ci-dessous :

  • Titre : nous utiliserons le titre‘syslog-udp-input‘.
  • Adresse de liaison : entre l’adresse IP interne de ton serveur Graylog, ou tu peux utiliser‘0.0.0.0‘ si tu es sur le réseau interne.
  • Port : dans cet exemple, nous allons utiliser le port UDP‘5142‘ pour cette entrée.

Clique maintenant sur« Enregistrer » pour ajouter l’entrée.

Configurations de l'entrée syslog udp

Tu devrais maintenant voir l’état de ton entrée Graylog avec le statut« en cours« . Et en bas, tu devrais voir des informations détaillées sur ton entrée Graylog.

Graylog input udp running

Enfin, retourne sur ton serveur Graylog et exécute la commande firewall-cmd ci-dessous pour ajouter le port UDP‘5142‘ qui sera utilisé par‘syslog-udp-input‘.

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

Envoi du journal via Ingest Syslog au serveur Graylog

Tu as créé l’entrée UDP de Graylog Syslog sur le serveur Graylog. Tu vas maintenant configurer une machine Linux pour utiliser Rsyslog afin d’envoyer les journaux au serveur Graylog. Dans cet exemple, nous allons utiliser la machine Rocky Linux clinet avec le nom d’hôte« linux-host1 » et l’adresse IP du serveur Graylog est‘192.168.5.100‘.

Connecte-toi à ta machine cliente Linux et exécute la commande suivante pour vérifier le service ‘rsyslog’ sur ta machine linux. Tu devrais obtenir un message indiquant que le service ‘rsyslog’ fonctionne.

sudo systemctl status rsyslog

Vérifier rsyslog

Ensuite, crée un nouveau fichier de configuration rsyslog supplémentaire qui sera utilisé pour envoyer les journaux au serveur Graylog. Exécute la commande suivante pour créer un nouveau fichier‘/etc/rsyslog.d/graylog.conf‘.

sudo nano /etc/rsyslog.d/graylog.conf

Ajoute la configuration suivante au fichier. Avec cette configuration, le service rsyslog sur‘linux-host1‘ enverra les journaux au Graylog Server Input qui fonctionne sur l’adresse IP du serveur‘192.168.5.100‘ avec le port UDP‘5142‘.

*.*@192.168.5.100:5142;RSYSLOG_SyslogProtocol23Format

Enregistre et ferme le fichier lorsque tu as terminé.

Exécute maintenant la commande systemctl suivante pour redémarrer le service‘rsyslog‘ et appliquer les nouvelles modifications au fichier de configuration. Le service rsyslog va envoyer les journaux du système au serveur Graylog, tu peux attendre quelques minutes.

sudo systemctl restart rsyslog

Ensuite, retourne au tableau de bord d’administration du serveur Graylog. Ensuite, clique sur le menu« Rechercher« . Tu devrais maintenant voir les journaux de la machine‘linux-host1‘ et ils sont disponibles sur le Graylog Server.

journal centralisé avec le serveur graylog

Conclusion

Tout au long de ce tutoriel, tu as appris à installer le serveur Graylog sur le serveur Rocky Linux. Cela inclut l’installation de certaines dépendances telles que Java OpenJDK, Elasticsearch et MongoDB. Tu as également configuré le serveur Graylog sur Rocky Linux avec SELinux activé avec le mode enforcing et firewalld activé.

À la fin, tu as maintenant appris à configurer l’entrée Graylog avec le type « Syslog UDP » qui peut être utilisé comme système de gestion centralisée des journaux pour les machines Linux. Tu as aussi appris à envoyer les journaux des machines Linux au serveur Graylog via le service Rsyslog. Tu as maintenant aussi configuré d’autres entrées pour tes applications ou ajouté de nouvelles machines Linux au serveur Graylog.

Vous aimerez aussi...