GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer Elasticsearch sur Ubuntu 22.04 avec SSL

Comment installer Elasticsearch sur Ubuntu 22.04 avec SSL. Elasticsearch 8 est une puissante solution évolutive de recherche et d'analyse de données distribuées en temps réel. Ici, vous apprendrez à configurer SSL sur votre installation Elasticsearch avec le proxy inverse Nginx sur Ubuntu 22.04.

Vous allez créer un sous-domaine pour votre service Elasticsearch et installer un certificat SSL Let's Encrypt gratuit à l'aide de Certbot.

Cette configuration est testée sur Google Cloud Platform exécutant Ubuntu 22.04 LTS. Ce guide fonctionnera donc parfaitement sur d'autres fournisseurs de services cloud comme AWS, Azure ou tout VPS ou serveurs dédiés.

Prérequis

  • Un serveur avec au moins 2 Go de RAM et 2 vCPU
  • Un utilisateur avec des privilèges sudo.

Configuration initiale du serveur

Commencez par mettre à jour les progiciels du serveur vers la dernière version disponible.

sudo apt update 
sudo apt upgrade

Configurer le sous-domaine

Assurez-vous d'utiliser un sous-domaine pour accéder à votre installation Elasticsearch.

Allez dans votre section de gestion DNS et créez un nouveau A enregistrer avec le nom que vous souhaitez pour votre sous-domaine (par exemple search ) et la valeur de l'adresse IP de votre serveur.

Ainsi, votre sous-domaine ressemblera à celui ci-dessous. Si vous souhaitez configurer votre domaine principal, vous pouvez également le faire.

search.yourdomain.com

Étape 1 :Installez ElasticSearch

Java est déjà inclus dans le package Elasticsearch, vous ne souhaitez donc pas installer Java manuellement. En savoir plus sur l'installation de Java sur Ubuntu 22.04.

Ici, nous allons installer Elasticsearch 8.

Commencez par importer la clé GPG du référentiel Elasticsearch.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Ajoutez le référentiel à la liste des sources de votre serveur ou système Ubuntu.

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Mettez à jour la liste des packages et installez ElasticSearch.

sudo apt update
sudo apt install elasticsearch

Une fois l'installation terminée, vous recevrez le mot de passe du super utilisateur, veuillez le noter et le sécuriser.

------------------- Security autoconfiguration information ----------------------

Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.

The generated password for the elastic built-in superuser is : houbJ1uivo5b=aVYYPa5

If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.

You can complete the following actions at any time:

Reset the password of the elastic built-in superuser with 
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.

Generate an enrollment token for Kibana instances with 
 '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.

Generate an enrollment token for Elasticsearch nodes with 
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.

---------------------------------------------------------------------------------

Le service Elasticsearch ne démarre pas automatiquement lors de l'installation, vous devez exécuter les commandes ci-dessous pour configurer le service Elasticsearch afin qu'il démarre automatiquement à l'aide de systemd.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Une fois Elasticsearch installé, vous pouvez restreindre le port 9200 depuis l'extérieur en éditant le elasticsearch.yml file et décommentez le network.host et remplacez la valeur par Internal IP or any IP or localhost .

sudo nano /etc/elasticsearch/elasticsearch.yml 

Donc ça ressemble à ça..

network.host: INTERNAL_IP

Vous pouvez également utiliser localhost en tant qu'hôte ou toute adresse IP que vous souhaitez.

Tapez Ctrl+X suivi de Y et Enter pour enregistrer le fichier et quitter.

Maintenant, démarrez et activez Elasticsearch au démarrage du serveur.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Assurez-vous maintenant que votre service Elasticsearch est en cours d'exécution.

sudo systemctl status elasticsearch

Étape 2 :Vérifiez si Elasticsearch fonctionne

Testez votre installation en envoyant une requête HTTPs en joignant le certificat à l'aide de la commande ci-dessous.

Prenez note du mot de passe que vous avez reçu plus tôt, vous devrez l'utiliser lorsque vous y serez invité.

sudo su
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200

Entrez le mot de passe lorsque vous y êtes invité.

Vous recevrez une réponse comme indiqué ci-dessous.

{
  "name" : "elasticsearch-vm",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vGrj3z4rQEWRBUdd9IhZWA",
  "version" : {
    "number" : "8.2.2",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef",
    "build_date" : "2022-05-25T15:47:06.259735307Z",
    "build_snapshot" : false,
    "lucene_version" : "9.1.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Étape 3 :Installer et configurer Nginx pour Elasticsearch

Il est maintenant temps d'installer et de configurer Nginx. Exécutez la commande ci-dessous pour installer Nginx.

sudo apt install nginx

Vous pouvez maintenant configurer le proxy inverse Nginx depuis votre Elasticsearch.

Supprimer les configurations par défaut

sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

Créez un nouveau fichier de configuration Nginx.

sudo nano /etc/nginx/sites-available/search.conf

Collez ce qui suit.

Remarque :Vous devez utiliser exactement le même IP ou localhost que vous avez utilisé dans l'hôte de la configuration d'Elasticsearch.

server {
     listen [::]:80;
     listen 80;

     server_name search.yourdomain.com;

location / {
     proxy_pass http://INTERNAL_IP:9200;
     proxy_redirect off;
     proxy_read_timeout    90;
     proxy_connect_timeout 90;
     proxy_set_header  X-Real-IP  $remote_addr;
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header  Host $http_host;
} 

Enregistrez et quittez le fichier.

Activez votre configuration en créant un lien symbolique.

sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf

Étape 4 :Installez Let's Encrypt SSL

HTTPS est un protocole de communication sécurisée entre un serveur (instance) et un client (navigateur Web). Grâce à l'introduction de Let's Encrypt, qui fournit des certificats SSL gratuits, HTTPS est adopté par tout le monde et donne également confiance à votre public.

sudo apt install python3-certbot-nginx

Maintenant que nous avons installé Certbot by Let's Encrypt pour Ubuntu 22.04, exécutez cette commande pour recevoir vos certificats.

sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com

Cette commande installera Free SSL, configurera la redirection vers HTTPS et redémarrera le serveur Nginx.

Étape 5 :Renouvellement du certificat SSL

Les certificats fournis par Let's Encrypt sont valides pendant 90 jours seulement, vous devez donc les renouveler souvent. Testons donc la fonctionnalité de renouvellement à l'aide de la commande suivante.

sudo certbot renew --dry-run

Cette commande testera l'expiration du certificat et configurera la fonction de renouvellement automatique.

Préparez-vous à un poste de professionnel des technologies de l'information avec le système d'exploitation Linux

Conclusion

Vous avez maintenant appris à installer Elasticsearch 8 et à le sécuriser avec Let's Encrypt free ssl sur Ubuntu 22.04.

Merci pour votre temps. Si vous rencontrez un problème ou des commentaires, veuillez laisser un commentaire ci-dessous.


Linux
  1. Comment installer Elasticsearch sur Ubuntu 18.04

  2. Comment installer Joomla avec Apache sur Ubuntu 18.04

  3. Comment installer Elasticsearch sur Ubuntu 20.04

  4. Comment installer la communauté Zammad dans Ubuntu 20.04

  5. Comment installer Docker sur Ubuntu 22.04

COMMENT INSTALLER NEXTCLOUD SUR UBUNTU ?

Comment installer Asterisk dans Ubuntu 20.04

Comment installer Apache Tomcat 10 sur Ubuntu 20.04 avec Nginx

Comment installer Ruby On Rails sur Ubuntu 20.04 avec MySQL, Nginx, Passenger, SSL

Comment installer Sendmail sur Ubuntu 22.04

Comment installer Apache Tomcat 10 sur Ubuntu 22.04 avec Nginx