Graylog est un outil logiciel de gestion de journal gratuit et open source qui peut être utilisé pour surveiller le journal des systèmes réseau à partir du serveur central. Il utilise Elasticsearch pour stocker les données des journaux et fournir des fonctionnalités de recherche, et MongoDB pour stocker les méta-informations. Il vous aide à surveiller, rechercher et analyser une grande quantité de données dans un format simple et lisible.
Dans ce tutoriel, nous allons vous montrer comment installer Graylog sur le serveur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04 avec au moins 4 Go de RAM
- Un mot de passe root est configuré sur.
Mise en route
Tout d'abord, vous devrez mettre à jour vos packages système vers la dernière version. Vous pouvez tous les mettre à jour avec la commande suivante :
apt-get update -y
Après avoir mis à jour tous les packages, vous devrez également installer certaines dépendances sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
apt-get install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y
Une fois toutes les dépendances requises installées, vous pouvez passer à l'étape suivante.
Installer Java
Graylog nécessite l'installation de Java sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
apt-get install openjdk-11-jre-headless -y
Une fois Java installé, vous pouvez vérifier la version installée de Java en exécutant la commande suivante :
java -version
Vous devriez obtenir le résultat suivant :
openjdk version "11.0.8" 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer Elasticsearch
Graylog utilise Elasticsearch pour stocker les journaux provenant de la ressource externe. Vous devrez donc installer Elasticsearch dans votre système.
Par défaut, la dernière version d'Elasticsearch n'est pas disponible dans le référentiel par défaut d'Ubuntu. Vous devrez donc ajouter le référentiel Elasticsearch dans votre système.
Tout d'abord, téléchargez et ajoutez la clé Elasticsearch GPG avec la commande suivante :
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Ensuite, ajoutez le référentiel Elasticsearch avec la commande suivante :
echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Ensuite, mettez à jour le référentiel et installez Elasticsearch avec la commande suivante :
apt-get update -y
apt-get install elasticsearch-oss -y
Après avoir installé Elasticsearch, vous devrez modifier le fichier de configuration Elasticsearch et définir le nom du cluster. Vous pouvez le faire avec la commande suivante :
nano /etc/elasticsearch/elasticsearch.yml
Définissez le nom de votre cluster sur graylog et ajoutez une autre ligne comme indiqué ci-dessous :
cluster.name: graylog action.auto_create_index: false
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, démarrez le service Elasticsearch et activez-le au démarrage avec la commande suivante :
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch
Vous pouvez également vérifier l'état du service Elasticsearch avec la commande suivante :
systemctl status elasticsearch
Vous devriez obtenir le résultat suivant :
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 08:41:18 UTC; 9s ago Docs: http://www.elastic.co Main PID: 7085 (java) Tasks: 17 (limit: 2353) Memory: 1.1G CGroup: /system.slice/elasticsearch.service ??7085 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -> Sep 05 08:41:18 ubuntu2004 systemd[1]: Started Elasticsearch.
Maintenant, vérifiez la réponse d'Elasticcsearch avec la commande suivante :
curl -X GET http://localhost:9200
Vous devriez obtenir le résultat suivant :
{ "name" : "vzg8H4j", "cluster_name" : "graylog", "cluster_uuid" : "6R9SlXxNSUGe6aclcJa9VQ", "version" : { "number" : "6.8.12", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "7a15d2a", "build_date" : "2020-08-12T07:27:20.804867Z", "build_snapshot" : false, "lucene_version" : "7.7.3", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Installer le serveur MongoDB
Graylog utilise MongoDB comme base de données. Vous devrez donc installer la base de données MongoDB sur votre serveur. Vous pouvez l'installer avec la commande suivante :
apt-get install mongodb-server -y
Une fois MongoDB installé, démarrez le service MongoDB et activez-le pour qu'il démarre au redémarrage du système avec la commande suivante :
systemctl start mongodb
systemctl enable mongodb
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer Graylog
Par défaut, le package Graylog n'est pas disponible dans le référentiel par défaut d'Ubuntu. Vous devrez donc installer le dépôt graylog sur votre serveur.
Vous pouvez télécharger le package de référentiel Graylog avec la commande suivante :
wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
Une fois le téléchargement terminé, installez le package téléchargé avec la commande suivante :
dpkg -i graylog-3.3-repository_latest.deb
Ensuite, mettez à jour le référentiel et installez le serveur Graylog avec la commande suivante :
apt-get update -y
apt-get install graylog-server -y
Après avoir installé le serveur Graylog, vous devrez générer un secret pour sécuriser les mots de passe des utilisateurs. Vous pouvez le générer avec la commande suivante :
pwgen -N 1 -s 96
Vous devriez voir le résultat suivant :
Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
Ensuite, vous devrez également générer un mot de passe sécurisé pour l'utilisateur administrateur Graylog. Vous aurez besoin de ce mot de passe pour vous connecter à l'interface Web Graylog. Vous pouvez le générer avec la commande suivante :
echo -n password | sha256sum
Vous devriez voir le résultat suivant :
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 -
Maintenant, éditez le fichier de configuration principal de Graylog et définissez les deux mots de passe :
nano /etc/graylog/server/server.conf
Collez les deux mots de passe que vous avez générés ci-dessus comme indiqué ci-dessous :
password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
Ensuite, vous devrez également définir une adresse de liaison pour votre serveur, comme indiqué ci-dessous :
http_bind_address = 127.0.0.1:9000
Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez le service Graylog et activez-le pour qu'il démarre au redémarrage du système avec la commande suivante :
systemctl daemon-reload
systemctl start graylog-server
systemctl enable graylog-server
Ensuite, vous pouvez vérifier l'état du serveur Graylog à l'aide de la commande suivante :
systemctl status graylog-server
Vous devriez voir le résultat suivant :
? graylog-server.service - Graylog server Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 08:50:16 UTC; 15min ago Docs: http://docs.graylog.org/ Main PID: 8693 (graylog-server) Tasks: 156 (limit: 2353) Memory: 865.0M CGroup: /system.slice/graylog-server.service ??8693 /bin/sh /usr/share/graylog-server/bin/graylog-server ??8726 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX> Sep 05 08:50:16 ubuntu2004 systemd[1]: Started Graylog server.
Vous pouvez également vérifier le journal du serveur Graylog avec la commande suivante :
tail -f /var/log/graylog-server/server.log
Une fois le serveur Graylog démarré avec succès, vous devriez obtenir le résultat suivant :
2020-09-05T08:51:36.473Z INFO [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=59, JobSchedulerService [RUNNING]=105, GracefulShutdownService [RUNNING]=106, OutputSetupService [RUNNING]=110, BufferSynchronizerService [RUNNING]=111, UrlWhitelistService [RUNNING]=153, JournalReader [RUNNING]=166, KafkaJournal [RUNNING]=222, MongoDBProcessingStatusRecorderService [RUNNING]=240, ConfigurationEtagService [RUNNING]=259, EtagService [RUNNING]=302, StreamCacheService [RUNNING]=306, LookupTableService [RUNNING]=376, PeriodicalsService [RUNNING]=655, JerseyService [RUNNING]=58701} 2020-09-05T08:51:36.477Z INFO [ServerBootstrap] Graylog server up and running.
À ce stade, le serveur Graylog est démarré et écoute sur le port 9000.
Configurer Nginx en tant que proxy inverse pour Graylog
Ensuite, vous devrez installer et configurer Nginx en tant que proxy inverse pour accéder au serveur Graylog.
Tout d'abord, installez le serveur Nginx avec la commande suivante :
apt-get install nginx -y
Après avoir installé le serveur Nginx, créez un nouveau fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/sites-available/graylog.conf
Ajoutez les lignes suivantes :
server { listen 80; server_name graylog.example.org; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Graylog-Server-URL http://$server_name/; proxy_pass http://127.0.0.1:9000; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, activez le fichier de configuration de l'hôte virtuel Nginx avec la commande suivante :
ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
Enfin, redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Ensuite, vérifiez l'état du Graylog avec la commande suivante :
systemctl status nginx
Vous devriez obtenir le résultat suivant :
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 09:07:50 UTC; 20s ago Docs: man:nginx(8) Process: 9408 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 9419 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 9423 (nginx) Tasks: 3 (limit: 2353) Memory: 10.2M CGroup: /system.slice/nginx.service ??9423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??9424 nginx: worker process ??9425 nginx: worker process Sep 05 09:07:50 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server... Sep 05 09:07:50 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
Accéder à l'interface Web Graylog
Maintenant, ouvrez votre navigateur Web et tapez l'URL http://graylog.example.com. Vous serez redirigé vers la page de connexion Graylog comme indiqué ci-dessous :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord Graylog sur la page suivante :
Maintenant, cliquez sur Système>> Présentation . Vous devriez voir l'état du serveur Graylog sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès le serveur Graylog avec Nginx en tant que proxy inverse sur Ubuntu 20.04. Vous pouvez maintenant explorer le Graylog et créer une entrée pour recevoir les journaux Rsyslog de sources externes. N'hésitez pas à me demander si vous avez des questions.