Installation OpenSearch · 30 min read · Oct 12, 2025

Comment installer OpenSearch sur Debian 12

OpenSearch est un fork open-source d’Elasticsearch et de Kibana développé par Amazon. C’est un moteur de recherche distribué, évolutif et en temps réel qui permet la recherche en texte intégral ainsi que l’analyse. Il est utilisé pour indexer et rechercher de grandes quantités de données. Il est couramment déployé aux côtés d’OpenSearch Dashboards (un fork de Kibana), un puissant tableau de bord de visualisation de données pour OpenSearch. OpenSearch Dashboards vous permet d’explorer les données de journalisation d’OpenSearch et de créer des tableaux de bord et des requêtes pour obtenir des informations sur votre application.

Ce tutoriel vous montrera comment installer OpenSearch sur un serveur Debian 12. Vous apprendrez également à sécuriser votre installation avec des certificats TLS personnalisés et à activer l’authentification sur OpenSearch.

Prérequis

  • Un serveur exécutant Debian 12 avec un minimum de 4 Go de RAM.

  • Un utilisateur non-root avec des privilèges sudo.

  • Le pare-feu uncomplicated (UFW) est activé et en cours d’exécution.

  • Un nom de domaine entièrement qualifié (FQDN) comme opensearch.example.com pointant vers votre serveur. Cela est bénéfique si vous souhaitez servir OpenSearch Dashboards via SSL en utilisant un serveur proxy.

  • Tout est à jour. $ sudo apt update && sudo apt upgrade

  • Quelques paquets essentiels sont nécessaires pour le tutoriel et Craft CMS. Certains d’entre eux seront déjà sur votre serveur. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Étape 1 - Configurer le pare-feu

La première étape avant d’installer des paquets est de configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.

Vérifiez l’état du pare-feu.

$ sudo ufw status

Vous devriez voir quelque chose comme ce qui suit.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Autorisez les ports HTTP et HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Vérifiez à nouveau l’état pour confirmer.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Étape 2 - Préparer le système

Avant d’installer OpenSearch, nous devons préparer et optimiser notre système pour cela. Plusieurs étapes sont impliquées, y compris la désactivation de toute mémoire d’échange si vous en avez, la définition du nombre de cartes mémoire pour votre système et la configuration du nom d’hôte du système.

Tout d’abord, vérifiez si vous avez de la mémoire d’échange activée.

$ free -m

Si vous avez de la mémoire d’échange activée, vous devriez voir une sortie similaire.

               total        used        free      shared  buff/cache   available
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Exécutez les commandes suivantes pour désactiver l’espace d’échange de manière permanente.

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab

Vérifiez à nouveau la mémoire d’échange et cela devrait afficher ce qui suit.

               total        used        free      shared  buff/cache   available
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

OpenSearch utilise un répertoire mapfs par défaut pour stocker ses indices. Les limites par défaut du système d’exploitation sur les comptes nmap sont trop basses, ce qui peut provoquer des erreurs de mémoire.

Vérifiez la valeur existante pour la variable vm.max_map_count.

$ sysctl -n vm.max_map_count
65530

Pour augmenter le nombre de cartes mémoire utilisées par chaque processus, exécutez la commande suivante.

$ sudo sysctl -w vm.max_map_count=262144

Cela ne fonctionnera que jusqu’à ce que le système soit redémarré. Pour rendre cette valeur permanente, ajoutez la ligne vm.max_map_count=262144 dans le fichier /etc/sysctl.conf en utilisant la commande suivante.

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Vous pouvez rendre le changement permanent en redémarrant le système ou en exécutant la commande suivante.

$ sudo sysctl -p

La dernière étape consiste à configurer le nom d’hôte. Selon l’endroit où vous hébergez votre serveur, certaines entreprises de cloud vous permettent de définir votre nom d’hôte directement via leur panneau de contrôle. Cependant, il est préférable de le faire via le terminal.

Exécutez la commande suivante pour définir le nom d’hôte.

$ sudo hostnamectl set-hostname opensearch

Ajoutez le FQDN (nom de domaine entièrement qualifié) au fichier /etc/hosts. Ici, nous associons le nom d’hôte opensearch au nom de domaine opensearch.example.com et le pointons vers l’adresse IP du serveur. Remplacez dans la commande ci-dessous par l’adresse IP de votre serveur.

$ echo "  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

Vérifiez le nom d’hôte et le FQDN en utilisant les commandes suivantes.

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Cela termine le processus d’optimisation de notre système pour fonctionner avec OpenSearch.

Étape 3 - Installer OpenSearch

Importez la clé GPG d’OpenSearch utilisée pour signer le paquet d’installation.

$  curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Créez le fichier de dépôt APT d’OpenSearch.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

Mettez à jour la liste des dépôts du système.

$ sudo apt update

Vérifiez toutes les versions disponibles d’OpenSearch.

$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64

La dernière version d’OpenSearch v2.12.0 nécessite que vous définissiez le mot de passe de démonstration de l’administrateur avant l’installation, sinon elle échouera.

Vous pouvez installer la dernière version d’OpenSearch en utilisant la commande suivante. Nous pouvons définir le mot de passe de démonstration de l’administrateur en utilisant la variable d’environnement dans la commande d’installation elle-même. Choisissez un mot de passe fort.

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch

Si vous voyez l’avertissement suivant pendant l’installation, vous pouvez l’ignorer en toute sécurité.

......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......

Ou vous pouvez installer une version spécifique.

$ sudo apt install opensearch=2.11.1

Rechargez le démon de service.

$ sudo systemctl daemon-reload

Activez le service OpenSearch.

$ sudo systemctl enable opensearch

Démarrez le service OpenSearch.

$ sudo systemctl start opensearch

Vérifiez l’état du service OpenSearch.

$ sudo systemctl status opensearch

Vous devriez obtenir la sortie suivante.

? opensearch.service - OpenSearch
     Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago
       Docs: https://opensearch.org/
   Main PID: 31109 (java)
      Tasks: 75 (limit: 4652)
     Memory: 1.3G
        CPU: 1min 3.128s
     CGroup: /system.slice/opensearch.service
             ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...

Étape 4 - Tester OpenSearch

Avant de continuer, vérifions si l’installation fonctionne correctement. Exécutez la commande suivante pour vérifier si OpenSearch fonctionne comme prévu.

$ curl -X GET https://localhost:9200 -u 'admin:' --insecure

Vous devriez obtenir une sortie similaire.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "Le projet OpenSearch : https://opensearch.org/"
}

Interrogez le point de terminaison des plugins OpenSearch pour voir la liste des plugins disponibles.

$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure

Vous pouvez également utiliser la commande suivante pour la même chose.

$ /usr/share/opensearch/bin/opensearch-plugin list

Vous devriez obtenir une sortie similaire.

name       component                            version
opensearch opensearch-alerting                  2.12.0.0
opensearch opensearch-anomaly-detection         2.12.0.0
opensearch opensearch-asynchronous-search       2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs             2.12.0.0
opensearch opensearch-flow-framework            2.12.0.0
opensearch opensearch-geospatial                2.12.0.0
opensearch opensearch-index-management          2.12.0.0
opensearch opensearch-job-scheduler             2.12.0.0
opensearch opensearch-knn                       2.12.0.0
opensearch opensearch-ml                        2.12.0.0
opensearch opensearch-neural-search             2.12.0.0
opensearch opensearch-notifications             2.12.0.0
opensearch opensearch-notifications-core        2.12.0.0
opensearch opensearch-observability             2.12.0.0
opensearch opensearch-performance-analyzer      2.12.0.0
opensearch opensearch-reports-scheduler         2.12.0.0
opensearch opensearch-security                  2.12.0.0
opensearch opensearch-security-analytics        2.12.0.0
opensearch opensearch-skills                    2.12.0.0
opensearch opensearch-sql                       2.12.0.0

Vous pouvez installer des plugins supplémentaires en utilisant la commande suivante.

$ /usr/share/opensearch/bin/opensearch-plugin install 

Vous pouvez trouver la liste des plugins OpenSearch disponibles sur leur site officiel.

Étape 5 - Configurer OpenSearch

Les paramètres par défaut d’OpenSearch ne sont pas adaptés à un environnement de production. Par défaut, OpenSearch n’est pas lié à une interface réseau et est inaccessible de l’extérieur. De plus, des noms d’utilisateur et mots de passe par défaut sont utilisés, ce qui peut poser des problèmes de sécurité s’ils sont utilisés directement dans un environnement de production.

OpenSearch stocke sa configuration dans le fichier /etc/opensearch/opensearch.yml. Ouvrez-le pour l’éditer.

$ sudo nano /etc/opensearch/opensearch.yml

Trouvez la ligne #network.host: 192.168.0.1 et décommentez-la en supprimant le dièse (#) devant elle et en changeant sa valeur comme indiqué. Cela lie OpenSearch à toutes les interfaces disponibles. Vous pouvez également choisir d’entrer une IP spécifique pour le lier à une interface spécifique.

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0

Ajoutez les lignes suivantes en bas du fichier.

# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Puisque nous installons sur un seul serveur, nous avons défini discovery.type sur single-node. Définir plugins.security.disabled sur false active le plugin de sécurité d’OpenSearch.

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Nous devons également spécifier les tailles de tas JVM (Java Virtual Memory) initiales et maximales. Ce paramètre dépend de la taille de la RAM de votre serveur. Par exemple, nous utilisons un serveur avec 4 Go de RAM, donc nous définissons la taille du tas à 3 Go.

Créez et ouvrez le fichier heapsize.options dans le répertoire /etc/opensearch/jvm.options.d pour l’éditer. Cela écrasera la valeur par défaut définie dans le fichier /etc/opensearch/jvm.options.

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Ajoutez les lignes suivantes.

-Xms3g
-Xmx3g

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le service OpenSearch pour appliquer les changements.

$ sudo systemctl restart opensearch

Vous pouvez vérifier la taille actuelle du tas et la mémoire maximale en utilisant la commande suivante.

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure

Vous devriez obtenir la sortie suivante.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Étape 6 - Configurer TLS pour OpenSearch

Ici, nous allons générer des certificats pour sécuriser OpenSearch. Les certificats TLS fournissent une sécurité en permettant aux clients de confirmer l’identité des hôtes et de chiffrer le trafic entre un client et l’hôte. Nous allons générer les certificats suivants

  1. Certificats CA racine - Ce sont les certificats principaux qui signeront tous les autres certificats.
  2. Certificats administratifs - Ces certificats sont utilisés pour obtenir des droits élevés pour effectuer des tâches administratives liées au plugin de sécurité.
  3. Certificats de nœud - Ces certificats sont utilisés pour la communication entre un nœud et le client.

Tous les certificats OpenSearch sont stockés dans le répertoire /etc/opensearch. La première étape consiste à supprimer les certificats par défaut définis lors de l’installation d’OpenSearch.

Passez au répertoire OpenSearch.

$ cd /etc/opensearch

Supprimez les certificats par défaut.

$ sudo rm -f *.pem

Ouvrez le fichier de configuration OpenSearch pour l’éditer.

$ sudo nano opensearch.yml

Commentez le code suivant en bas du fichier en mettant un dièse devant chaque ligne dans la section Configuration de démonstration de sécurité OpenSearch comme indiqué ci-dessous.

######## Start OpenSearch Security Demo Configuration ########
# WARNING: revise all the lines below before you go into production
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
#  .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
#  .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
#  .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
#  .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
#  .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
#  .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
#  .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
#  .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## End OpenSearch Security Demo Configuration ########

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ensuite, créez un répertoire pour stocker les certificats à l’intérieur du répertoire /etc/opensearch.

$ sudo mkdir /etc/opensearch/certs

Changez la permission du répertoire à l’utilisateur actuellement connecté pour éviter d’utiliser sudo lors de la génération des certificats.

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Passez au répertoire des certificats.

$ cd /etc/opensearch/certs

Générer des certificats racines

Générez une clé privée pour le certificat racine.

$ openssl genrsa -out root-ca-key.pem 2048

Générez un certificat CA racine auto-signé. Nous utilisons le paramètre -subj pour fournir des informations qui sont intégrées dans le certificat. Si vous n’utilisez pas le drapeau -subj, vous serez invité à fournir toutes ces informations.

$ openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Vous pouvez changer les informations pour convenir à votre hôte spécifique.

Les variables dans le paramètre -subj signifient ce qui suit.

C = Nom du pays (code à 2 lettres), ST = Nom de l’état ou de la province (nom complet), L = Nom de la localité (par exemple, ville), O = Nom de l’organisation, OU = Nom de l’unité organisationnelle (par exemple, section), CN = Nom commun (par exemple, FQDN du serveur)

Votre certificat racine est maintenant actif.

Générer des certificats administratifs

Générez la clé privée pour le certificat administrateur en utilisant la commande suivante.

$ openssl genrsa -out admin-key-temp.pem 2048

Convertissez la clé privée au format PKCS#8 pour une utilisation en Java en utilisant un algorithme compatible PKCS#12 (3DES).

$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

Générez la CSR (demande de signature de certificat) administrateur à partir de la clé privée. Puisque ce certificat n’est pas lié à des hôtes et est utilisé pour authentifier un accès élevé, nous utilisons une valeur de A pour le nom commun (CN).

$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Signez la CSR administrateur avec le certificat racine et la clé privée que vous venez de créer.

$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

Générer des certificats de nœud

Générez une clé privée pour le certificat de nœud.

$ openssl genrsa -out node1-key-temp.pem 2048

Convertissez la clé privée du nœud au format PKCS#8.

$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem

Créez une nouvelle CSR pour le certificat de nœud à partir de la clé privée. Assurez-vous de changer la valeur de la variable CN avec le nom d’hôte de votre nœud. Ce certificat est lié à vos hôtes et doit correspondre au nom d’hôte ou à l’adresse IP du nœud.

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Créez un fichier d’extension SAN (Subject Alternative Name) qui contient le nom d’hôte du nœud ou le FQDN ou l’adresse IP.

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

Signez la CSR du certificat de nœud avec le certificat racine et la clé privée que vous venez de créer.

$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Préparer les certificats pour l’installation

Supprimez tous les certificats temporaires, CSR et le fichier d’extension SAN.

$ rm -f *temp.pem *csr *ext

Ensuite, nous allons installer le certificat CA racine sur le serveur. Pour cela, convertissez le certificat CA racine au format .crt.

$ openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Copiez le fichier root-ca.crt dans le répertoire /usr/local/share/ca-certificates/.

$ sudo cp root-ca.crt /usr/local/share/ca-certificates/

Ajoutez le certificat CA racine à votre serveur Debian en utilisant la commande suivante.

$ sudo update-ca-certificates

Vous devriez voir la sortie suivante ( 1 added) confirmant que le certificat CA racine a été ajouté à votre système.

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Changez la propriété du répertoire de nouveau à l’utilisateur opensearch.

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Changez la permission sur le répertoire à 0700.

$ sudo chmod 0700 /etc/opensearch/certs

Changez la permission sur les certificats à 0600.

$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt

Étape 7 - Installer TLS sur OpenSearch

Maintenant que tous les certificats sont générés et configurés, il est temps d’installer et d’ajouter les certificats à votre installation OpenSearch.

La première étape consiste à créer un script bash qui ajoutera tous les certificats créés et les paramètres de sécurité TLS au fichier de configuration OpenSearch (/etc/opensearch/opensearch.yml).

Créez un fichier nommé add-opensearch-tls.sh et ouvrez-le pour l’éditer.

$ cd ~
$ nano add-opensearch-tls.sh

Collez le code suivant dedans.

#! /bin/bash

# Before running this script, make sure to replace the CN in the 
# node's distinguished name with a real DNS A record.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Rendez le fichier exécutable.

$ chmod +x add-opensearch-tls.sh

Exécutez le script.

$ ./add-opensearch-tls.sh

Vous devriez obtenir la sortie suivante.

plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Ouvrez le fichier /etc/opensearch/opensearch.yml pour vérifier si vos paramètres ont été appliqués.

$ sudo nano /etc/opensearch/opensearch.yml

Faites défiler jusqu’en bas du fichier et vous devriez voir ce qui suit.

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Une fois que vous êtes satisfait, enregistrez le fichier en appuyant sur Ctrl + X.

Étape 8 - Créer un utilisateur OpenSearch

Dans cette étape, nous allons supprimer tous les utilisateurs de démonstration sauf l’utilisateur admin et remplacer le mot de passe par défaut de admin à l’aide d’un script.

Passez au répertoire des outils des plugins de sécurité OpenSearch.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Exécutez le script hash.sh pour générer un nouveau mot de passe.

$ ./hash

Le script échouera et vous obtiendrez l’erreur suivante car le chemin vers l’exécutable Java (JDK) n’a pas été défini.

************************************************************************
 Cet outil sera obsolète dans la prochaine version majeure d'OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
WARNING: nor OPENSEARCH_JAVA_HOME nor JAVA_HOME is set, will use 
./hash.sh: line 35: java: command not found

Exécutez à nouveau la commande en déclarant la variable d’environnement OPENSEARCH_JAVA_HOME avec l’emplacement du JDK.

$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Vous obtiendrez une sortie similaire.

**********************************************************************
 Cet outil sera obsolète dans la prochaine version majeure d'OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
[Password:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

Cela générera le hachage du mot de passe dont nous aurons besoin plus tard.

Ouvrez le fichier de configuration des utilisateurs OpenSearch internal_users.yml dans le répertoire /etc/opensearch/opensearch-security/ pour l’éditer.

$ sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Commentez tous les utilisateurs de démonstration en ajoutant un dièse devant eux comme indiqué.

---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define your internal users here

## Demo users

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reserved: true
#  backend_roles:
#  - "admin"
#  description: "Demo admin user"

#anomalyadmin:

Ajoutez l’utilisateur administrateur avec le hachage que vous avez généré ci-dessus comme suit.

---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define your internal users here

admin:
  hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reserved: true
  backend_roles:
  - "admin"
  description: "Admin user"

## Demo users

#admin:

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Maintenant que les certificats TLS sont installés et que les utilisateurs de démonstration ont été supprimés ou ont reçu de nouveaux mots de passe, il est temps d’appliquer les modifications de configuration. Pour appliquer les modifications, nous invoquerons le script securityadmin.sh dans le répertoire /usr/share/opensearch/plugins/opensearch-security/tools. Le script nécessite que le service OpenSearch soit en cours d’exécution.

Redémarrez le service OpenSearch.

$ sudo systemctl restart opensearch

Passez au répertoire /usr/share/opensearch/plugins/opensearch-security/tools.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Exécutez le script en utilisant la commande suivante.

$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

Le plugin de sécurité stocke sa configuration - y compris les utilisateurs, les autorisations, les rôles et les paramètres de backend dans un index système sur le cluster OpenSearch. Stocker ces paramètres dans le cluster vous permet de modifier les paramètres sans redémarrer le cluster et élimine le besoin d’éditer le fichier de configuration sur chaque nœud. Cela est accompli en exécutant le script securityadmin.sh.

  • L’option -cd spécifie où se trouvent les fichiers de configuration du plugin de sécurité.
  • L’option -icl ( --ignore-clustername) indique au plugin de sécurité de télécharger la configuration indépendamment du nom du cluster. Vous pouvez également spécifier le nom du cluster au lieu d’utiliser l’option -cn ( --clustername).
  • Étant donné que les certificats sont auto-signés, nous utilisons l’option -nhnv ( --disable-host-name-verification).
  • Les options --cacert, --cert et --key définissent l’emplacement du certificat racine, du certificat administrateur et de la clé privée pour le certificat administrateur. Si la clé privée a un mot de passe, vous pouvez le définir en utilisant l’option -keypass.

Vous pouvez en savoir plus sur la configuration du plugin de sécurité dans la documentation d’OpenSearch.

Vous devriez avoir obtenu une sortie similaire à celle ci-dessous avec la commande ci-dessus.

**********************************************************************
 Cet outil sera obsolète dans la prochaine version majeure d'OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
************************************************************************
Security Admin v7
Will connect to opensearch:9200 ... done
Connected as "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
OpenSearch Version: 2.12.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /etc/opensearch/opensearch-security/
Will update '/config' with /etc/opensearch/opensearch-security/config.yml 
   SUCC: Configuration for 'config' created or updated
Will update '/roles' with /etc/opensearch/opensearch-security/roles.yml 
   SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with /etc/opensearch/opensearch-security/roles_mapping.yml 
   SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with /etc/opensearch/opensearch-security/internal_users.yml 
   SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with /etc/opensearch/opensearch-security/action_groups.yml 
   SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with /etc/opensearch/opensearch-security/tenants.yml 
   SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with /etc/opensearch/opensearch-security/nodes_dn.yml 
   SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with /etc/opensearch/opensearch-security/whitelist.yml 
   SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with /etc/opensearch/opensearch-security/audit.yml 
   SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with /etc/opensearch/opensearch-security/allowlist.yml 
   SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success

Vérifiez les nouvelles informations d’identification en utilisant la commande suivante.

Lors du test précédent, nous avons dirigé les requêtes vers localhost. Maintenant que les certificats TLS sont configurés et que les nouveaux certificats font référence à l’enregistrement DNS réel de l’hôte, les requêtes vers localhost échoueront lors de la vérification CN, et le certificat sera considéré comme invalide. Par conséquent, ajoutez votre enregistrement DNS réel dans la commande ci-dessous pour vérifier.

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Vous devriez voir la réponse suivante.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "Le projet OpenSearch : https://opensearch.org/"
}

Étape 9 - Installer OpenSearch Dashboards

Puisque nous avons déjà installé OpenSearch, nous pouvons sauter l’étape d’importation de la clé GPG d’OpenSearch.

Pour installer les tableaux de bord OpenSearch, exécutez la commande suivante pour créer un dépôt APT pour cela.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Mettez à jour la liste des dépôts du système.

$ sudo apt update

Listez toutes les versions disponibles des tableaux de bord OpenSearch.

$ sudo apt list -a opensearch-dashboards

Vous devriez voir une sortie similaire.

Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64

Installez la dernière version des tableaux de bord OpenSearch.

$ sudo apt install opensearch-dashboards

Ou installez une version spécifique des tableaux de bord OpenSearch.

$ sudo apt install opensearch-dashboards=2.12.0

La version des tableaux de bord OpenSearch et d’OpenSearch doit être la même, sinon vous pouvez rencontrer plusieurs problèmes.

Rechargez le démon de service.

$ sudo systemctl daemon-reload

Activez le service OpenSearch Dashboards.

$ sudo systemctl enable opensearch-dashboards

Démarrez le service OpenSearch Dashboards.

$ sudo systemctl start opensearch-dashboards

Vérifiez l’état du service OpenSearch Dashboards.

$ sudo systemctl status opensearch-dashboards

Vous devriez voir la sortie suivante.

? opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago
   Main PID: 7098 (node)
      Tasks: 11 (limit: 9484)
     Memory: 175.4M
        CPU: 5.389s
     CGroup: /system.slice/opensearch-dashboards.service
             ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".

Étape 10 - Configurer OpenSearch Dashboards

OpenSearch Dashboards stocke sa configuration dans le fichier /etc/opensearch-dashboards/opensearch_dashboards.yml. Ouvrez-le pour l’éditer.

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Trouvez la ligne # server.host: "localhost" et décommentez-la en supprimant le dièse devant elle et en changeant sa valeur comme indiqué.

# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: 0.0.0.0

Définir la valeur de server.host sur 0.0.0.0 lie OpenSearch Dashboard à n’importe quelle IP externe, ce qui le rend accessible sur le Web. Si vous souhaitez servir les tableaux de bord via SSL en utilisant un proxy inverse, laissez cette valeur inchangée.

Faites défiler vers le bas pour trouver la section suivante.

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Changez les valeurs comme configuré pour notre installation OpenSearch.

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: 
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le service OpenDashboards.

$  sudo systemctl restart opensearch-dashboards

Ouvrez le port 5601 dans le pare-feu UFW.

$ sudo ufw allow 5601

Ouvrez l’URL http://:5601 ou http://opensearch.example.com:5601 pour lancer le site Web OpenSearch Dashboards.

OpenSearch Dashboards Login

Si vous êtes content d’accéder à OpenSearch Dashboards via HTTP et avec un numéro de port dans l’URL, vous pouvez vous arrêter ici. Cependant, il est préférable de servir les tableaux de bord via SSL. Pour cela, nous allons installer Nginx en tant que proxy inverse et servir SSL via celui-ci.

Étape 11 - Installer Nginx

Debian 12 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.

Importez la clé de signature de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ajoutez le dépôt pour la version principale de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation. Sur les systèmes Debian, la commande suivante ne fonctionnera qu’avec sudo.

$ sudo nginx -v
nginx version: nginx/1.25.4

Démarrez le serveur Nginx.

$ sudo systemctl start nginx

Vérifiez l’état du service.

$ sudo systemctl status nginx
? nginx.service - nginx - serveur web haute performance
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago
       Docs: https://nginx.org/en/docs/
    Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 3977 (nginx)
      Tasks: 3 (limit: 9484)
     Memory: 2.7M
        CPU: 9ms
     CGroup: /system.slice/nginx.service
             ??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??3978 "nginx: worker process"
             ??3979 "nginx: worker process"

Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - serveur web haute performance...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - serveur web haute performance.

Étape 12 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt de Debian, soit obtenir la dernière version en utilisant l’outil Snapd. Nous utiliserons la version Snapd.

Debian 12 ne vient pas avec Snapd installé. Installez le paquet Snapd.

$ sudo apt install snapd

Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Vérifiez si Certbot fonctionne correctement.

$ certbot --version
certbot 2.9.0

Exécutez la commande suivante pour générer un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/craftcms.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
Sat 2024-03-02 16:25:00 UTC 3h 27min left  -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left       Sat 2024-03-02 06:29:02 UTC 6h ago    apt-daily.timer              apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left       -                           -         dpkg-db-backup.timer         dpkg-db-backup.service
.....

Faites un essai à sec du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 13 - Configurer Nginx

Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez et ouvrez le fichier /etc/nginx/conf.d/opensearch.conf pour l’éditer.

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Collez le code suivant dedans. Remplacez opensearch.example.com par votre nom de domaine.

server {

    listen 443 ssl;
    listen [::]:443 ssl;

    http2 on;
    http3 on;
    quic_retry on;

    server_name opensearch.example.com;

    access_log  /var/log/nginx/opensearch.access.log;
    error_log   /var/log/nginx/opensearch.error.log;

    ssl_certificate      /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_early_data on;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://localhost:5601;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez votre configuration Nginx.

$ sudo nginx -t

Redémarrez le serveur Nginx.

$ sudo systemctl restart nginx

Visitez https://opensearch.example.com dans votre navigateur pour lancer OpenSearch Dashboards.

Étape 14 - Accéder et utiliser OpenSearch Dashboards

Si vous avez utilisé Nginx, accédez aux tableaux de bord via l’URL https://opensearch.example.com ou utilisez http://opensearch.example.com:5601 et vous devriez obtenir la page de connexion.

OpenSearch Dashboards Login Credentials

Entrez admin et le mot de passe administrateur personnalisé que vous avez configuré pour OpenSearch à l’étape 4 et cliquez sur le bouton Se connecter pour continuer.

OpenSearch Dashboards Add Data Page

Cliquez sur le bouton Ajouter des données pour commencer à ajouter des données directement ou cliquez sur le lien Explorer par moi-même si vous souhaitez d’abord naviguer. Nous allons d’abord naviguer et cela devrait vous amener à une fenêtre contextuelle qui parle du mode sombre d’OpenSearch Dashboards.

OpenSearch Dashboards Theme Popup

Cliquez sur le bouton Ignorer pour continuer. Ensuite, vous serez invité à choisir un locataire.

OpenSearch Dashboards Tenant Selection screen

Les locataires dans OpenSearch Dashboards sont des espaces pour enregistrer des modèles d’index, des visualisations, des tableaux de bord et d’autres objets OpenSearch Dashboards. Chaque utilisateur peut créer plusieurs locataires pour plusieurs usages. Les locataires sont utiles pour partager en toute sécurité votre travail avec d’autres utilisateurs d’OpenSearch Dashboards. OpenSearch vous donne la possibilité de choisir entre trois options.

  • Global - Ce locataire est partagé entre tous les utilisateurs d’OpenSearch Dashboards.
  • Privé - Ce locataire est exclusif à chaque utilisateur et ne peut pas être partagé.
  • Personnalisé - Les administrateurs peuvent créer des locataires personnalisés et les attribuer à des rôles spécifiques. Une fois créés, vous pouvez utiliser ces locataires pour fournir des espaces à un ensemble spécifique d’utilisateurs.

Pour l’instant, nous allons nous en tenir à l’option par défaut d’un locataire privé. Cliquez sur le bouton Confirmer pour continuer. Vous serez accueilli avec la page suivante.

OpenSearch Dashboards Homepage

Ensuite, nous allons vérifier la connexion entre OpenSearch et les tableaux de bord OpenSearch.

Cliquez sur le bouton Outils de développement en haut à droite et vous verrez une mini fenêtre contextuelle sur l’interface de console pour les tableaux de bord OpenSearch.

OpenSearch Dashboards Dev Tools Console Popup

Cliquez sur le bouton Ignorer, saisissez la requête GET / dans la console à gauche et cliquez sur le petit bouton de lecture au milieu. Vous devriez voir la sortie suivante à droite.

OpenSearch Dashboards Console Connection Verification

Cela confirme qu’OpenSearch Dashboards reçoit des données d’OpenSearch et que les deux fonctionnent correctement. Vous pouvez commencer à ajouter des données à partir de ce moment.

Conclusion

Cela conclut le tutoriel sur l’installation d’OpenSearch sur un serveur Debian 12. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.