GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le serveur Graylog sur Ubuntu 20.04

Tous les systèmes, applications et logiciels génèrent des informations qui sont stockées dans des fichiers appelés journaux. Ces journaux doivent être surveillés en permanence pour garantir le bon fonctionnement du système en question et prévenir les erreurs ou les risques de sécurité. Ils sont souvent dispersés sur plusieurs serveurs et, à mesure que le volume de données augmente, leur gestion devient de plus en plus complexe.

Graylog est un système de gestion de journaux gratuit et open source de niveau entreprise qui comprend Elasticsearch, MongoDB et un serveur Graylog. Il se compose du serveur principal, qui reçoit les données de ses clients installés sur différents serveurs, ainsi que d'une interface web, qui permet de visualiser les données collectées par le serveur. Graylog est un outil similaire à Splunk et LogStash.

Dans ce tutoriel, nous apprenons comment installer Graylog 4 sur Ubuntu 20.04 . Nous allons également sécuriser le serveur Graylog avec un certificat SSL en utilisant Let's Encrypt.

Exigences :

  • Machine Ubuntu 20.04 ou ultérieure
  • Matériel :4 cœurs de processeur, 8 Go de RAM, disque dur SSD avec IOPS élevé pour le stockage des journaux Elasticsearch
  • Elasticsearch
  • MongoDB
  • Oracle Java SE 8 (OpenJDK 8 ou supérieur)

Étape 1 :Installez MongoDB sur Ubuntu 20.04

Graylog utilise MongoDB pour stocker les données de configuration telles que les flux, les alertes, les utilisateurs, les paramètres, etc. Seules les métadonnées sont stockées et ne stockent pas les données des journaux. Commençons par installer MongoDB sur Ubuntu 20.04.

Tout d'abord, installez tous les packages prérequis :

$ sudo apt update
$ sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget

Importez maintenant la clé publique GPG :

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Pour créer un fichier de liste de sources, saisissez :

$ sudo touch /etc/apt/sources.list.d/mongodb-org-5.0.list

Maintenant, ajoutez la source du référentiel pour Ubuntu 20.04 :

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Maintenant, mettez à jour l'index apt :

$ sudo apt update 

Pour installer MongoDB sur Ubuntu, tapez :

$ sudo apt install mongodb-org

Le service MongoDB ne démarrera pas automatiquement une fois le processus d'installation terminé. Pour démarrer le service et activer le service, tapez :

$ sudo systemctl enable --now mongod.service

Vérifiez l'état du service MongoDB :

$ sudo systemctl status mongod.service

Sortie :

● mongod.service - MongoDB Database Server
      Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
      Active: active (running) since Sun 2021-08-22 04:47:46 UTC; 3s ago
        Docs: https://docs.mongodb.org/manual
    Main PID: 17965 (mongod)
      Memory: 66.1M
      CGroup: /system.slice/mongod.service
              └─17965 /usr/bin/mongod --config /etc/mongod.conf
 Aug 22 04:47:46 li175-223 systemd[1]: Started MongoDB Database Server.

Comme le montre la sortie, MongoDB a démarré et le service est opérationnel.

Vous pouvez vérifier la version de MongoDB installée

$ sudo mongod --version
db version v5.0.2
 Build Info: {
     "version": "5.0.2",
     "gitVersion": "6d9ec525e78465dcecadcff99cce953d380fedc8",
     "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
     "modules": [],
     "allocator": "tcmalloc",
     "environment": {
         "distmod": "ubuntu2004",
         "distarch": "x86_64",
         "target_arch": "x86_64"
     }
 }

La sortie montre que nous avons installé MongoDB version 5.0.2 .

Étape 2 :Installez Elasticsearch sur Ubuntu 20.04

Graylog stocke toutes les données du journal dans Elasticsearch. Reportez-vous au site Web officiel de Graylog pour connaître la version prise en charge d'elasticseach.

Elasticseach a besoin de Java, il est livré avec la version groupée Java d'OpenJDK

Importez la clé GPG du référentiel :

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Ensuite, ajoutez le référentiel Elasticsearch :

# echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Maintenant, mettez à jour le référentiel

$ sudo apt update

Enfin, installez la version open source d'elasticsearch en tapant :

$ sudo apt install elasticsearch-oss

Modifiez le fichier de configuration elasticsearch pour définir certaines informations telles que le nom du cluster, l'adresse IP sur laquelle elasticsearch écoute et le numéro de port

$ sudo vi /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog-server
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
action.auto_create_index: false

Les fichiers de configuration principaux et le répertoire d'Elasticsearch sont :

Les données sont stockées - répertoire /var/lib/elasticsearch.
Fichiers de configuration - répertoire /etc/elasticsearch
Options de démarrage Java - fichier /etc/default/elasticsearch

Elasticsearch est livré avec une version groupée d'OpenJDK. Pour utiliser votre propre version de Java, définissez la variable d'environnement ES_JAVA_HOME.

Vous pouvez activer et démarrer le service Elasticsearch à l'aide d'une seule commande :

$ sudo systemctl enable --now elasticsearch.service

Vérifiez maintenant que le service fonctionne correctement à l'aide de la commande suivante :

$ sudo systemctl status elasticsearch.service

Sortie :

● elasticsearch.service - Elasticsearch
      Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
      Active: active (running) since Sun 2021-08-22 12:38:24 UTC; 11min ago
        Docs: http://www.elastic.co
    Main PID: 19502 (java)
       Tasks: 41 (limit: 1071)
      Memory: 833.2M
      CGroup: /system.slice/elasticsearch.service
              ├─19502 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negat>
              └─19565 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
 Aug 22 12:38:24 li663-124 systemd[1]: Started Elasticsearch.

Appuyez sur q pour quitter, retour à l'invite de commande.

Elasticsearch fonctionne par défaut sur le port 9200 , vous devez l'ouvrir sur le pare-feu.

$ sudo ufw allow 9200

Vous pouvez vérifier si cela fonctionne

$ sudo curl -XGET 'http://localhost:9200'
"name" : "Ubuntunode",
   "cluster_name" : "graylog-server",
   "cluster_uuid" : "sz3jP3rKTPWZlasWwD-rBg",
   "version" : {
     "number" : "7.10.2",
     "build_flavor" : "oss",
     "build_type" : "deb",
     "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
     "build_date" : "2021-01-13T00:42:12.435326Z",
     "build_snapshot" : false,
     "lucene_version" : "8.7.0",
     "minimum_wire_compatibility_version" : "6.8.0",
     "minimum_index_compatibility_version" : "6.0.0-beta1"
   },
   "tagline" : "You Know, for Search"
 }

Avec la sortie de la commande, vous pouvez voir la ligne "number": "7.10.2" afficher la version d'elasticsearch.

Étape 3 :Installez Graylog sur Ubuntu 20.04

Graylog collecte les logs des différentes entrées et fournit la sortie à l'interface web qu'il propose pour gérer les logs.

Tout d'abord, nous devrons télécharger le fichier Graylog Repo à l'aide de la commande wget :

$ wget https://packages.graylog2.org/repo/packages/graylog-4.1-repository_1-3_all.deb

Pour configurer le référentiel Graylog, tapez :

$ sudo dpkg -i graylog-4.1-repository_1-3_all.deb 

Nous pouvons maintenant installer le serveur Graylog

$ apt update
$ sudo apt install graylog-server

Activer et démarrer le service du serveur graylog

$ sudo systemctl enable --now graylog-server.service

Modifier le fichier de configuration

Maintenant, nous devons définir le password_secret et la valeur hast de votre root graylog root_password_sha2 .

Pour définir un secret pour sécuriser les mots de passe des utilisateurs, vous pouvez utiliser la commande pwgen :

$ pwgen -N 1 -s 96
8KOikhjxetTdcJ7qhtPlgtLgBqCX5y4vL36Ig423pqUQn32QatiecCcYol5UEw3XDzwgWDvcFOmMBJzkBZKC52aEpBrItwke

Maintenant, éditez le fichier de configuration pour définir le mot de passe

$ sudo vi /etc/graylog/server/server.conf
password_secret = RlTRqWSBENLKeg89iAWlxSaf1zfqLvBW7VX5SH1d2ji3RMKyeXb8bmfOXLl3GaWkxp9oDRfvbjXiEr36AFd6T9CMmnjdG7dn

Nous devons maintenant définir la valeur de hachage de votre compte de mot de passe root Graylog

$ echo -n GraylogRootPassword | shasum -a 256
4b09467e174a03d5ebd720d514f57783ad1e03b4877fff5e0dc45356340ab215  -

Vous pouvez maintenant le copier et le coller

sudo vi /etc/graylog/server/server.conf
root_password_sha2 = 4b09467e174a03d5ebd720d514f57783ad1e03b4877fff5e0dc45356340ab215

Vous pouvez ajouter des informations supplémentaires comme l'adresse e-mail racine Graylog et l'interface réseau utilisée par l'interface HTTP Graylog

root_email = "[email protected]"
root_timezone = UTC
http_bind_address = 0.0.0.0:9000

Vous devez ouvrir les ports de votre pare-feu

$ sudo ufw allow 9000

Activer et démarrer le service du serveur graylog

$ sudo systemctl enable --now graylog-server.service

Vous pouvez trouver les données de journal pour Graylog /var/log/graylog-server/server.log et utiles pour le débogage ou lorsque le serveur ne démarre pas.

Vous pouvez voir la page d'accueil en saisissant l'adresse IP publique de votre serveur et le numéro de port de votre navigateur, c'est-à-dire http:// :9000/. Le nom de connexion racine par défaut de graylog est admin et le mot de passe est celui utilisé pour la valeur de hachage

Étape 4 :Configurer Nginx en tant que proxy de terminaison SSL (facultatif)

Il est recommandé de sécuriser votre interface Web Graylog avec HTTPS. Ici, Nginx sera utilisé comme proxy inverse et générera un certificat SSL gratuit pour le domaine à l'aide de Let's Encrypt.

Tout d'abord, nous devrons installer Nginx, puis cerbot pour le certificat let's encrypt.

Installons maintenant Nginx

$ sudo apt install nginx

Maintenant, autorisons Nginx sur le pare-feu

$ sudo ufw allow 'Nginx Full'

Modifions maintenant le contenu de notre fichier de configuration de nom de domaine. N'oubliez pas de remplacer le nom du fichier par votre nom de domaine

$ sudo vim /etc/nginx/sites-available/websitefortesting.com.conf
server {
         listen 80;
         server_name websitefortesting.com;
         add_header Strict-Transport-Security max-age=2592000;
         rewrite ^ https://$server_name$request_uri? permanent;
         access_log /var/log/nginx/websitefortesting.com.access.log combined;     
         error_log  /var/log/nginx/websitefortesting.com.error.log;
 }

Maintenant, activons-le

$ sudo ln -s /etc/nginx/sites-available/websitefortesting.com.conf /etc/nginx/sites-enabled/websitefortesting.com.conf

Vérifiez ensuite si la configuration est correcte

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Maintenant, nous devons installer cerbot avec le package nécessaire pour nginx

$ sudo apt install certbot python3-certbot-nginx

Maintenant, nous devons exécuter cerbot pour Nginx

$ sudo certbot --nginx
 Saving debug log to /var/log/letsencrypt/letsencrypt.log
 Plugins selected: Authenticator nginx, Installer nginx
 Enter email address (used for urgent renewal and security notices) (Enter 'c' to
 cancel): [email protected]
 
 Please read the Terms of Service at
 https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
 agree in order to register with the ACME server at
 https://acme-v02.api.letsencrypt.org/directory
 
 (A)gree/(C)ancel: A
 
 Would you be willing to share your email address with the Electronic Frontier
 Foundation, a founding partner of the Let's Encrypt project and the non-profit
 organization that develops Certbot? We'd like to send you email about our work
 encrypting the web, EFF news, campaigns, and ways to support digital freedom.
 
 (Y)es/(N)o: N
 Which names would you like to activate HTTPS for?
 
 1: websitefortesting.com
 
 Select the appropriate numbers separated by commas and/or spaces, or leave input
 blank to select all options shown (Enter 'c' to cancel): 1
 Obtaining a new certificate
 Performing the following challenges:
 http-01 challenge for websitefortesting.com
Waiting for verification…
 Cleaning up challenges
 Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/websitefortesting.com.conf
 Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
 Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/websitefortesting.com.conf
 
 Congratulations! You have successfully enabled https://websitefortesting.com
 You should test your configuration at:
 https://www.ssllabs.com/ssltest/analyze.html?d=websitefortesting.com
 
 IMPORTANT NOTES:
 Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/websitefortesting.com/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/websitefortesting.com/privkey.pem
 Your cert will expire on 2021-11-18. To obtain a new or tweaked
 version of this certificate in the future, simply run certbot again
 with the "certonly" option. To non-interactively renew all of
 your certificates, run "certbot renew"
 If you like Certbot, please consider supporting our work by:
 Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 Donating to EFF:                    https://eff.org/donate-le 

À partir de la sortie, vous pouvez voir l'emplacement des certificats SSL et la clé privée. Vous pouvez utiliser ces informations pour configurer SSL pour Nginx.

$ sudo vi /etc/nginx/sites-available/websitefortesting.com.conf
server {
         listen 80;
         server_name websitefortesting.com;
         add_header Strict-Transport-Security max-age=2592000;
         rewrite ^ https://$server_name$request_uri? permanent;
         access_log /var/log/nginx/websitefortesting.com.access.log combined;
         error_log  /var/log/nginx/websitefortesting.com.error.log;
 }
 server {
         listen 443 ssl; # managed by Certbot
         server_name websitefortesting.com;
         ssl_certificate /etc/letsencrypt/live/websitefortesting.com/fullchain.pem; # managed by Certbot
         ssl_certificate_key /etc/letsencrypt/live/websitefortesting.com/privkey.pem; # managed by Certbot
         include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
         ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
     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_pass http://127.0.0.1:9000;   
  }
 }

Maintenant, vérifions à nouveau avec

$ sudo nginx -t

Et redémarrez le service Nginx

$ sudo systemctl restart nginx.service 

Accédez maintenant à votre URL Graylog en utilisant le nom de domaine avec HTTPS.

Une fois connecté, vous pouvez voir votre page d'accueil

Conclusion

Dans ce tutoriel, nous avons appris à installer le serveur Graylog sur Ubuntu 20.04, configuré SSL en utilisant Nginx comme proxy inverse.

Si vous rencontrez des difficultés lors du processus de configuration, n'hésitez pas à commenter ou à poser des questions dans la section des commentaires.


Ubuntu
  1. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

  2. Comment installer le serveur Graylog sur Ubuntu 16.04

  3. Comment installer MongoDB sur Ubuntu 18.04

  4. Comment installer MongoDB sur Ubuntu 18.04

  5. Comment installer MongoDB sur Ubuntu 22.04

Comment installer Consul Server sur Ubuntu 16.04

Comment installer Zabbix sur Ubuntu 18.04

Comment installer MySQL 8.0 sur Ubuntu 18.04

Comment installer MongoDB sur Ubuntu

Comment installer le serveur Graylog sur Ubuntu 21

Comment installer MongoDB sur Ubuntu 14.04