Installation Docker · 23 min read · Sep 12, 2025
Comment installer OpenSearch via Docker sur Ubuntu 22.04

OpenSearch est un projet dirigé par la communauté par Amazon et un fork d’Elasticsearch et Kibana. C’est un moteur de recherche et une suite d’analytique entièrement open-source avec des fonctionnalités riches et une fonctionnalité innovante. Le composant principal du projet OpenSearch est OpenSearch (un fork d’Elasticsearch) et les OpenSearch Dashboards (un fork de Kibana). Les deux composants fournissent des fonctionnalités telles que la sécurité d’entreprise, l’alerte, l’apprentissage automatique, SQL, la gestion de l’état des index, et plus encore.
OpenSearch est 100% open-source et sous licence Apache 2.0. Il vous permet d’ingérer, sécuriser, rechercher, agréger, visualiser et analyser facilement des données pour un certain nombre de cas d’utilisation tels que l’analyse des journaux, la recherche d’application, la recherche d’entreprise, et plus encore.
Dans ce tutoriel, vous allez installer et configurer OpenSearch - un moteur de recherche open-source et une suite d’analytique - et OpenSearch Dashboards - un outil de visualisation open-source - via Docker sur un serveur Ubuntu 22.04. Vous déploierez un cluster OpenSearch avec plusieurs conteneurs et un seul tableau de bord OpenSearch via Docker et Docker Compose. Vous sécuriserez également votre déploiement avec des certificats TLS personnalisés et une authentification et autorisation activées.
Ce guide utilise un serveur Ubuntu générique frais, donc ce tutoriel inclut l’installation du moteur Docker et de Docker Compose sur un système Ubuntu 22.04.
Prérequis
Pour compléter ce guide, vous devez avoir les exigences suivantes :
- Un serveur Ubuntu 22.04 avec un minimum de RAM de 4-8 Go - Cet exemple utilise un serveur Ubuntu avec le nom d’hôte ‘’ et une adresse IP ‘’.
- Un utilisateur non-root avec des privilèges d’administrateur sudo/root.
Lorsque ces exigences sont prêtes, vous pouvez maintenant commencer l’installation d’OpenSearch.
Configuration du système
Dans cette première étape, vous allez préparer votre système Ubuntu pour le déploiement d’OpenSearch. Vous devrez désactiver SWAP et la pagination, puis vous augmenterez la carte mémoire maximale via le fichier ‘/etc/sysctl.conf ‘.
Exécutez la commande ci-dessous pour désactiver le swap sur votre système. La commande ‘sed’ ici désactivera le swap de manière permanente via le fichier ‘/etc/fstab ‘ en ajoutant le commentaire ‘ # ‘ au début de la ligne de configuration du swap. La commande ‘ swapoff ‘ désactivera le swap dans la session actuelle.
sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab
sudo swapoff -aEnsuite, vérifiez l’état du swap via la commande ci-dessous. S’il est désactivé, vous devriez obtenir une sortie ‘ 0 ‘ dans la section swap.
free -mSortie :

Enfin, vous ajouterez la configuration au fichier ‘ /etc/sysctl.conf’ pour augmenter les cartes mémoire maximales sur votre système Ubuntu.
Exécutez la commande ci-dessous pour ajouter le paramètre ‘ vm.max_map_count=262144 ‘ à la fin de la ligne du fichier ‘ /etc/sysctl.conf’ . Ensuite, appliquez les modifications via la commande ‘ sysctl -p ‘.
sudo echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sudo sysctl -pVérifiez maintenant les cartes mémoire maximales en exécutant la commande ci-dessous. Si cela réussit, votre carte mémoire maximale devrait être ‘ 262144 ‘.
cat /proc/sys/vm/max_map_countSortie :

Avec le swap désactivé et la carte mémoire maximale augmentée à ‘262144’, vous allez maintenant commencer l’installation du moteur Docker et du plugin Docker Compose.
Installation de Docker CE et Docker Compose
Il existe plusieurs façons de déployer et d’installer OpenSearch, vous pouvez installer OpenSearch de manière traditionnelle sur une machine virtuelle, ou l’installer dans un environnement de conteneur.
Si vous préférez une installation traditionnelle sur une machine virtuelle, vous pouvez installer OpenSearch manuellement via Tarball, ou via le gestionnaire de paquets (pour les distributions basées sur RHEL). Pour le déploiement en conteneur, vous pouvez installer OpenSearch avec Docker et Kubernetes.
Dans cet exemple, vous allez installer OpenSearch dans l’environnement conteneurisé via le moteur Docker et Docker Compose. Donc maintenant, vous allez installer les paquets Docker depuis le dépôt officiel de Docker.
Pour commencer, exécutez la commande apt ci-dessous pour installer les dépendances de base. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.
sudo apt install ca-certificates curl gnupg lsb-releaseSortie :

Ensuite, exécutez la commande ci-dessous pour ajouter la clé GPG et le dépôt pour les paquets Docker.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullSortie :
Après cela, mettez à jour et rafraîchissez votre index de paquets Ubuntu via la commande apt ci-dessous.
sudo apt updateSortie :

Avec le dépôt Docker ajouté, vous pouvez maintenant installer le moteur Docker et le plugin Docker Compose en utilisant la commande apt ci-dessous. Lorsque vous y êtes invité, saisissez y, puis appuyez sur ENTRÉE pour continuer.
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-pluginSortie :

Le service Docker démarrera et s’activera automatiquement. Vous pouvez vérifier le service Docker via l’utilitaire de commande systemctl suivant.
sudo systemctl is-enabled docker
sudo systemctl status dockerVous devriez obtenir une sortie indiquant que le service Docker est activé et sera exécuté automatiquement au démarrage. Et l’état du service Docker est en cours d’exécution.
Enfin, pour permettre à votre utilisateur non-root d’exécuter le conteneur Docker, vous devez ajouter votre utilisateur au groupe ‘ docker ‘. Exécutez la commande usermod ci-dessous pour ajouter votre utilisateur au groupe ‘ docker ‘. Assurez-vous également de changer le nom d’utilisateur avec le vôtre.
sudo usermod -aG docker aliceVous pouvez maintenant vous connecter en tant qu’utilisateur et exécuter le conteneur Docker via la commande ci-dessous.
su - alice
docker run hello-worldLorsque cela réussit, vous devriez obtenir le message hello-world du conteneur Docker comme dans la capture d’écran suivante.

Téléchargement des images Docker OpenSearch
Dans cette étape, vous allez télécharger les images OpenSearch et OpenSearch Dashboards depuis DockerHub. Ensuite, vous exécuterez également un nouveau conteneur OpenSearch à des fins de test.
Exécutez la commande suivante pour télécharger les images OpenSearch et OpenSearch Dashboards.
docker pull opensearchproject/opensearch:latest
docker pull opensearchproject/opensearch-dashboards:latestSortie :


Après que les téléchargements soient terminés, exécutez la commande ci-dessous pour vérifier la liste des images Docker sur votre système. Vous verrez que les images OpenSearch et OpenSearch Dashboards sont disponibles sur votre système.
docker imagesSortie :
Ensuite, vous pouvez également exécuter OpenSearch via Docker directement en utilisant la commande ci-dessous. Cela créera et exécutera le conteneur OpenSearch en mode unique et exposera le port TCP par défaut 9200 et 9600 sur la machine hôte.
docker run -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearchproject/opensearch:latestVérifiez la liste des conteneurs en cours d’exécution via la commande ‘ docker ps ‘ ci-dessous.
docker psVous devriez recevoir une sortie comme celle-ci - Le conteneur OpenSearch est créé et il est en cours d’exécution. Ports TCP exposés 9200 et 9600 sur le conteneur et l’hôte Docker.
Vous pouvez accéder à votre conteneur OpenSearch via la commande curl ci-dessous. Le nom d’utilisateur et le mot de passe par défaut pour le conteneur OpenSearch est ‘ admin ‘.
curl https://localhost:9200 -ku 'admin:admin'Lorsque cela réussit, vous devriez obtenir une sortie comme celle-ci - Le conteneur OpenSearch est en cours d’exécution et accessible via la machine hôte Docker.

Vous pouvez maintenant exécuter la commande ‘docker’ ci-dessous pour arrêter et supprimer le conteneur OpenSearch. Parce que dans l’étape suivante, vous allez créer un cluster OpenSearch via Docker Compose. Assurez-vous de changer le nom du conteneur dans la commande suivante.
docker stop container-name or container-id
docker rm container-name or container-idPour vous assurer que le conteneur OpenSearch est supprimé, exécutez la commande ‘docker ps ‘ avec l’option supplémentaire ‘ -a ‘. Cela vous montrera les conteneurs disponibles avec les deux statuts, en cours d’exécution et arrêtés.
docker ps -aSortie :

Configuration du répertoire du projet
Connectez-vous à votre utilisateur avec la commande suivante. Cet exemple utilise un utilisateur ‘alice’, donc assurez-vous de changer le nom d’utilisateur dans la commande ci-dessous.
su - aliceMaintenant, créez un nouveau répertoire de projet ‘ opensearch-project ‘ qui sera utilisé comme le répertoire racine principal de votre projet, et le répertoire ‘ certs ‘ qui sera utilisé pour stocker des certificats TLS personnalisés.
mkdir -p ~/opensearch-project/certs; cd ~/opensearch-projectDans le répertoire ‘ opensearch-project’, exécutez la commande ci-dessous pour créer de nouveaux fichiers qui seront utilisés pour créer des conteneurs OpenSearch et les OpenSearch Dashboards.
touch docker-compose.yml opensearch.yml opensearch_dashboards.yml internal_users.ymlLa liste des fichiers :
- docker-compose.yml - la configuration principale de Docker Compose pour le projet OpenSearch.
- opensearch.yml - configuration personnalisée pour les conteneurs OpenSearch.
- opensearch_dashbaords.yml - configuration personnalisée pour le conteneur OpenSearch Dashboards.
- internal_users.yml - authentification et autorisation des utilisateurs personnalisés pour OpenSearch et OpenSearch Dashboards.
Génération de certificats SSL/TLS
Dans cette étape, vous allez générer plusieurs certificats TLS qui seront utilisés pour sécuriser votre déploiement OpenSearch. Vous allez générer les certificats suivants :
- Certificats CA racine : Ces certificats seront utilisés pour signer d’autres certificats.
- Certificats Admin : Ces certificats seront utilisés pour obtenir des droits administratifs pour effectuer toutes les tâches liées au plugin de sécurité.
- Certificats OpenSearch Dashboards : Ces certificats seront utilisés pour sécuriser les OpenSearch Dashboards et vous permettent d’accéder aux OpenSearch Dashboards via des connexions HTTPS.
- Certificats de nœud et de client : Ces certificats seront utilisés par les nœuds et les clients au sein du cluster OpenSearch.
Pour commencer, exécutez la commande ci-dessous pour créer de nouveaux répertoires qui seront utilisés pour stocker les certificats TLS.
mkdir -p certs/{ca,os-dashboards}Créez une nouvelle variable d’environnement ‘MYDN’ qui sera utilisée pour créer de nouveaux certificats TLS. Assurez-vous de changer les détails avec vos informations.
export MYDN="/C=CA/ST=ONTARIO/L=TORONTO/O=HWDOMAIN"Maintenant, vous êtes prêt à générer des certificats TLS pour votre déploiement OpenSearch.

Générer des certificats CA
Générez une clé privée pour les certificats CA racine en utilisant ce qui suit.
openssl genrsa -out certs/ca/ca.key 2048Générez maintenant un certificat CA racine auto-signé via la commande ci-dessous. La valeur du paramètre ‘- subj’ utilise la variable d’environnement ‘ MYDN ‘ que vous avez créée dans votre session actuelle.
openssl req -new -x509 -sha256 -days 1095 -subj "$MYDN/CN=CA" -key certs/ca/ca.key -out certs/ca/ca.pemAvec cela, vous devriez obtenir la clé privée CA racine ‘ ca.key ‘ et le certificat CA racine ‘ ca.pem ‘. Vous pouvez vérifier les certificats CA que vous avez générés via la commande suivante.
ls certs/ca/Sortie - Vous devriez obtenir la clé privée CA ‘ ca.key ‘ et le fichier de certificat CA ‘ ca.pem ‘.
Générer des certificats Admin
Générez la nouvelle clé privée de certificat admin ‘ admin-temp.key ‘ et convertissez le certificat généré en un algorithme compatible PKCS#12 (3DES). Avec cela, votre clé privée admin devrait être ‘ admin.key ‘.
openssl genrsa -out certs/ca/admin-temp.key 2048
openssl pkcs8 -inform PEM -outform PEM -in certs/ca/admin-temp.key -topk8 -nocrypt -v1 PBE-SHA1-3DES -out certs/ca/admin.keyEnsuite, exécutez la commande ci-dessous pour générer la CSR (demande de signature de certificat) admin à partir de la clé privée ‘ admin.key ‘. Votre CSR générée devrait maintenant être le fichier ‘ admin.csr ‘.
openssl req -new -subj "$MYDN/CN=ADMIN" -key certs/ca/admin.key -out certs/ca/admin.csrMaintenant, exécutez la commande ci-dessous pour signer la CSR admin avec le certificat CA racine et la clé privée. La sortie du certificat admin est le fichier ‘ admin.pem ‘.
openssl x509 -req -in certs/ca/admin.csr -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out certs/ca/admin.pemEnfin, vérifiez la liste de vos certificats via la commande suivante.
ls certs/ca/Sortie - Vous devriez voir les fichiers de certificat admin ‘ admin.pem ‘ et la clé privée ‘ admin.key ‘.
Générer des certificats OpenSearch Dashboards
Générez le nouveau certificat qui sera utilisé pour les OpenSearch Dashboards.
Exécutez la commande suivante pour générer la clé privée ‘os-dashboards-temp.key’ et convertir le certificat généré en un algorithme compatible PKCS#12 (3DES). Avec cela, votre clé privée admin devrait être ‘ os-dashboards.key ‘.
openssl genrsa -out certs/os-dashboards/os-dashboards-temp.key 2048
openssl pkcs8 -inform PEM -outform PEM -in certs/os-dashboards/os-dashboards-temp.key -topk8 -nocrypt -v1 PBE-SHA1-3DES -out certs/os-dashboards/os-dashboards.keyEnsuite, exécutez la commande ci-dessous pour générer la CSR (demande de signature de certificat) pour les OpenSearch Dashboards. Votre CSR générée devrait maintenant être le fichier ‘ os-dashboards.csr ‘.
openssl req -new -subj "$MYDN/CN=os-dashboards" -key certs/os-dashboards/os-dashboards.key -out certs/os-dashboards/os-dashboards.csrMaintenant, exécutez la commande ci-dessous pour signer la CSR OpenSearch Dashboards avec le certificat CA racine et la clé privée. La sortie du certificat admin est le fichier ‘ os-dashboards.pem’ .
openssl x509 -req -in certs/os-dashboards/os-dashboards.csr -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out certs/os-dashboards/os-dashboards.pemEnfin, exécutez la commande suivante pour supprimer le fichier CSR OpenSearch Dashboards et vérifier la liste de vos certificats pour les OpenSearch Dashboards.
rm certs/os-dashboards/os-dashboards-temp.key certs/os-dashboards/os-dashboards.csr
ls certs/os-dashboards/Sortie - Vous devriez voir les fichiers de certificat OpenSearch Dashboards ‘ os-dashboards.pem’ et la clé privée ‘ os-dashboards.key ‘.
Générer des certificats pour les nœuds OpenSearch
Exécutez la commande suivante pour générer des certificats de nœud. Avec cela, vous allez créer plusieurs répertoires sous le répertoire ‘certs’ et générer des certificats TLS pour plusieurs hôtes.
for NODE_NAME in "os01" "os02" "os03"
do
mkdir "certs/${NODE_NAME}"
openssl genrsa -out "certs/$NODE_NAME/$NODE_NAME-temp.key" 2048
openssl pkcs8 -inform PEM -outform PEM -in "certs/$NODE_NAME/$NODE_NAME-temp.key" -topk8 -nocrypt -v1 PBE-SHA1-3DES -out "certs/$NODE_NAME/$NODE_NAME.key"
openssl req -new -subj "$MYDN/CN=$NODE_NAME" -key "certs/$NODE_NAME/$NODE_NAME.key" -out "certs/$NODE_NAME/$NODE_NAME.csr"
openssl x509 -req -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:$NODE_NAME") -in "certs/$NODE_NAME/$NODE_NAME.csr" -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out "certs/$NODE_NAME/$NODE_NAME.pem"
rm "certs/$NODE_NAME/$NODE_NAME-temp.key" "certs/$NODE_NAME/$NODE_NAME.csr"
doneVérifiez la liste des répertoires dans le répertoire ‘certs’.
ls certs/Sortie - Vous devriez obtenir de nouveaux répertoires ‘ os01, os02, et os03.

Enfin, vérifiez la liste des certificats disponibles dans les répertoires os01, os02, et os03 via la commande ci-dessous.
ls certs/os01/
ls certs/os02/
ls certs/os03/Sortie - Dans chaque répertoire, vous devriez obtenir deux certificats ‘ osX.key ‘ et ‘ osX.pem ‘.

Enfin, vous devez changer la propriété du répertoire ‘ certs ‘ à ‘ 1000 ‘ via la commande ci-dessous. Cela permettra aux conteneurs Docker d’accéder au répertoire ‘ certs ‘.
sudo chown -R 1000:1000 certs/Avec les certificats TLS générés, vous allez maintenant générer des mots de passe hachés et définir des utilisateurs OpenSearch.
Configuration de l’utilisateur
Dans cette étape, vous allez générer un hachage de mot de passe qui sera utilisé par OpenSearch et OpenSearch Dashboards. Vous allez générer deux hachages de mot de passe pour deux utilisateurs différents, puis vous allez modifier le fichier de configuration ‘internal_users.yml’ et les utilisateurs OpenSearch.
Exécutez la commande docker suivante pour générer un nouveau hachage de mot de passe. Cela exécutera un conteneur OpenSearch temporaire et exécutera le script ‘ hash.sh ‘ pour générer un hachage de mot de passe.
docker run -it --rm opensearchproject/opensearch sh -c "/usr/share/opensearch/plugins/opensearch-security/tools/hash.sh"Maintenant, saisissez votre mot de passe et vous devriez obtenir le mot de passe haché sur votre terminal. Copiez le mot de passe haché généré et relancez la commande pour générer un autre mot de passe haché.
Sortie - Pour le mot de passe haché généré pour les utilisateurs OpenSearch.

Ensuite, ouvrez le fichier ‘ internal_users.yml ‘ en utilisant la commande de l’éditeur nano suivante.
nano internal_users.ymlAjoutez les lignes suivantes au fichier et assurez-vous de changer le mot de passe haché avec votre mot de passe généré. Avec cela, vous allez définir deux utilisateurs pour votre déploiement OpenSearch. l’utilisateur ‘ admin ‘ en tant qu’administrateur pour OpenSearch et l’utilisateur ‘ kibanaserver ‘ qui sera utilisé pour se connecter aux OpenSearch Dashboards.
---
# Ceci est la base de données d'utilisateurs internes
# La valeur de hachage est un hachage bcrypt et peut être générée avec plugin/tools/hash.sh
_meta:
type: "internalusers"
config_version: 2
# Définissez vos utilisateurs internes ici
admin:
hash: "$2y$12$y8UzXWoZKQc8GTgGsRz4g.CarjlC6sMPYN8XOD/NPQysRi2oq.Ws6"
reserved: true
backend_roles:
- "admin"
description: "Utilisateur Admin"
kibanaserver:
hash: "$2y$12$AKpGe4tM5nIWYFoM56yRue22pQh0jFfx59MUgUKnBu8qnyGeAm2Ze"
reserved: true
description: "Utilisateur OpenSearch Dashboards"Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Configuration du script docker-compose.yml
Dans cette étape, vous allez créer un nouveau script Docker Compose pour déployer OpenSearch et OpenSearch Dashboards. Vous allez créer plusieurs conteneurs OpenSearch pour configurer le cluster OpenSearch, et vous allez configurer un conteneur OpenSearch Dashboards qui sera connecté au cluster OpenSearch.
Ouvrez le fichier ‘ docker-compose.yml ‘ en utilisant la commande de l’éditeur nano suivante.
nano docker-compose.ymlAjoutez les lignes suivantes au fichier.
version: '3.7'
services:
os01:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # taille de tas Java minimale et maximale, recommandé de définir les deux à 50% de la RAM système
node.name: os01
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os01/os01.key # chemin relatif
plugins.security.ssl.transport.pemcert_filepath: certificates/os01/os01.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os01/os01.key
plugins.security.ssl.http.pemcert_filepath: certificates/os01/os01.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # avec les paramètres memlock ci-dessous, désactive le swap
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data1:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
ports:
- 9200:9200
- 9600:9600 # requis pour l'analyseur de performance
os02:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # taille de tas Java minimale et maximale, recommandé de définir les deux à 50% de la RAM système
node.name: os02
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os02/os02.key # chemin relatif
plugins.security.ssl.transport.pemcert_filepath: certificates/os02/os02.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os02/os02.key
plugins.security.ssl.http.pemcert_filepath: certificates/os02/os02.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # avec les paramètres memlock ci-dessous, désactive le swap
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data2:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
os03:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # taille de tas Java minimale et maximale, recommandé de définir les deux à 50% de la RAM système
node.name: os03
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os03/os03.key # chemin relatif
plugins.security.ssl.transport.pemcert_filepath: certificates/os03/os03.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os03/os03.key
plugins.security.ssl.http.pemcert_filepath: certificates/os03/os03.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # avec les paramètres memlock ci-dessous, désactive le swap
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data3:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
osdashboards:
restart: always
image: opensearchproject/opensearch-dashboards:latest
ports:
- 5601:5601
volumes:
- "./certs:/usr/share/opensearch-dashboards/config/certificates:ro"
- "./opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml"
environment:
OPENSEARCH_HOSTS: '["https://os01:9200","https://os02:9200","https://os03:9200"]' # doit être une chaîne sans espaces lorsqu'elle est spécifiée comme variable d'environnement
DISABLE_INSTALL_DEMO_CONFIG: "true"
volumes:
os-data1:
os-data2:
os-data3:Enregistrez et quittez le fichier ‘ docker-compose.yml ‘ lorsque vous avez terminé.
Avec cela, vous allez créer 4 conteneurs/services pour les déploiements OpenSearch. Voici des informations détaillées sur chaque conteneur.
- 3 conteneurs OpenSearch os01, os02, et os03 - Cela sera utilisé pour créer le cluster OpenSearch. Ces conteneurs sont basés sur l’image ‘ opensearchproject/opensearch:latest ‘ et les mêmes configurations ‘ opensearch.yml ‘ et ‘ internal_users.yml’.
- Un conteneur OpenSearch Dashboards ‘osdashboards’ est basé sur l’image ‘ opensearchproject/opensearch-dashboards:latest ‘ et est connecté à trois hôtes OpenSearch os01, os02, et os03. De plus, vous allez désactiver la configuration de démonstration sur le conteneur OpenSearch Dashboards.
- Tous les conteneurs OpenSearch et OpenSearch Dashboards seront sécurisés via des certificats TLS personnalisés disponibles dans le répertoire ‘ certs ‘.
- Le conteneur OpenSearch exposera deux ports 9200 et 9600, et le conteneur OpenSearch Dashboards exposera le port 5601.
Configurer OpenSearch et OpenSearch Dashboards
Dans cette étape, vous allez créer une nouvelle configuration pour OpenSearch ‘opensearch.yml’ et OpenSearch Dashboards ‘opensearch_dashbaords.yml’. À la fin, vous devez vous assurer que toutes les configurations nécessaires et les certificats sont disponibles dans le répertoire du projet OpenSearch.
Ouvrez le fichier de configuration OpenSearch ‘ opensearch.yml ‘ en utilisant la commande de l’éditeur nano suivante.
sudo nano opensearch.ymlAjoutez les lignes suivantes au fichier. Assurez-vous de changer le chemin des certificats CA et DN pour les certificats admin et nœud. Avec cela, vous allez configurer un cluster OpenSearch avec le nom ‘ os-cluster ‘.
cluster.name: os-cluster
network.host: 0.0.0.0
bootstrap.memory_lock: "true" # avec les paramètres memlock ci-dessous, désactive le swap
plugins.security.allow_unsafe_democertificates: true
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemtrustedcas_filepath: certificates/ca/ca.pem
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.pemtrustedcas_filepath: certificates/ca/ca.pem
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.authcz.admin_dn:
- 'CN=ADMIN,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
- 'CN=os00,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os01,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os02,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os03,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os04,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os05,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os06,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os07,O=HWDOMAIN,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"]
cluster.routing.allocation.disk.threshold_enabled: false
opendistro_security.audit.config.disabled_rest_categories: NONE
opendistro_security.audit.config.disabled_transport_categories: NONEEnregistrez le fichier ‘opensearch.yml’ et quittez l’éditeur lorsque vous avez terminé.

Ensuite, ouvrez le fichier de configuration OpenSearch Dashboards ‘ opensearch_dashboards.yml ‘ en utilisant la commande de l’éditeur nano suivante.
nano opensearch_dashboards.ymlAjoutez les lignes suivantes au fichier. Assurez-vous de changer le nom d’utilisateur et le mot de passe des OpenSearch Dashboards avec les détails de l’utilisateur ‘ kibanaserver ‘ dans le fichier ‘internal_users.yml**.
server.name: os_dashboards
server.host: "0.0.0.0"
opensearch.username: kibanaserver
opensearch.password: password
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
opensearch_security.readonly_mode.roles: [kibana_read_only]
# Utilisez ce paramètre si vous exécutez les tableaux de bord OpenSearch sans https
opensearch_security.cookie.secure: false
# Chiffrez le trafic entre le navigateur et OpenSearch-Dashboards
server.ssl.enabled: true
server.ssl.certificate: "/usr/share/opensearch-dashboards/config/certificates/os-dashboards/os-dashboards.pem"
server.ssl.key: "/usr/share/opensearch-dashboards/config/certificates/os-dashboards/os-dashboards.key"
# Chiffrez le trafic entre OpenSearch-Dashboards et Opensearch
opensearch.ssl.certificateAuthorities: ["/usr/share/opensearch-dashboards/config/certificates/ca/ca.pem"]
opensearch.ssl.verificationMode: fullEnregistrez et quittez le fichier lorsque vous avez terminé.

Enfin, exécutez la commande apt ci-dessous pour installer le paquet tree et vérifier la liste des fichiers et répertoires de votre déploiement OpenSearch.
sudo apt install tree
tree .Vous devriez recevoir une sortie comme celle-ci.

Avec cela, toute la préparation pour déployer OpenSearch via Docker est terminée. Vous êtes prêt à déployer OpenSearch via Docker et Docker Compose.
Déploiement du cluster OpenSearch et des OpenSearch Dashboards
Avant de commencer, assurez-vous que vous êtes dans le répertoire du projet OpenSearch ‘ opensearch-project ‘. Ensuite, exécutez la commande ‘ docker compose ‘ suivante pour créer et démarrer le déploiement OpenSearch.
docker compose up -dVous devriez recevoir une sortie comme celle-ci - Il y a 3 conteneurs OpenSearch os01, os02, et os03 créés et démarrés. De plus, le conteneur OpenSearch Dashboards ‘ osdashboards ‘ est créé et démarré.

Vérifiez la liste des services/conteneurs en cours d’exécution sur votre projet OpenSearch via la commande suivante.
docker compose psSi vous voyez que le ‘ STATUS ‘ est ‘ Up ‘, alors le conteneur/service est en cours d’exécution. Dans la section ‘ PORTS ‘, vous devriez voir les ports exposés par le conteneur à la machine hôte.
Avec le cluster OpenSearch en cours d’exécution, vous devez maintenant appliquer la nouvelle configuration utilisateur que vous avez créée via le fichier ‘ internal_users.yml ‘. Pour ce faire, vous pouvez exécuter la commande ‘ docker ‘ suivante. Assurez-vous également d’attendre environ 30-60 secondes avant d’exécuter cette commande pour vous assurer que le cluster OpenSearch est en cours d’exécution.
La commande suivante exécutera le script bash ‘ securityadmin.sh ‘ sur le conteneur/service ‘ os01 ‘ et appliquera de nouveaux utilisateurs sur votre cluster OpenSearch.
docker compose exec os01 bash -c "chmod +x plugins/opensearch-security/tools/securityadmin.sh && bash plugins/opensearch-security/tools/securityadmin.sh -cd config/opensearch-security -icl -nhnv -cacert config/certificates/ca/ca.pem -cert config/certificates/ca/admin.pem -key config/certificates/ca/admin.key -h localhost"Sortie :

Ensuite, exécutez la commande suivante pour vous assurer que le conteneur est en cours d’exécution. Ensuite, vous pouvez vérifier la liste des ports ouverts sur l’hôte Docker via la commande ss ci-dessous.
docker compose ps
ss -tulpnSortie - les ports 9200 et 9600 sont utilisés par le cluster OpenSearch et le port 5601 est utilisé par OpenSearch Dashboards.

Enfin, vous pouvez vérifier l’authentification auprès du cluster OpenSearch via le nom d’utilisateur et le mot de passe que vous avez créés dans le fichier ‘internal_users.yml’.
Effectuez une authentification en tant qu’utilisateur admin auprès du cluster OpenSearch.
curl https://192.168.5.100:9200 -u admin:password -kSortie - L’authentification est réussie et vous devriez voir les détails du logiciel OpenSearch que vous utilisez actuellement sur votre cluster.

Effectuez une authentification en tant qu’utilisateur kibanaserver auprès du cluster OpenSearch.
curl https://192.168.5.100:9200 -u kibanaserver:password -kSortie - L’authentification est réussie et vous devriez voir les détails du logiciel OpenSearch que vous utilisez actuellement sur votre cluster.

Avec cela, vous avez maintenant déployé le cluster OpenSearch et les OpenSearch Dashboards via Docker et Docker Compose. Dans l’étape suivante, vous allez accéder à votre déploiement OpenSearch Dashboards et vérifier la connexion entre les OpenSearch Dashboards et le cluster OpenSearch.
De plus, lorsque vous avez une erreur sur votre déploiement OpenSearch, vous pouvez vérifier les journaux de chaque conteneur via la commande ‘ docker compose ‘ ci-dessous.
Utilisation de base ‘ docker compose ‘ pour vérifier les journaux.
docker compose logs
docker compose logs SERVICEVérification des journaux pour des conteneurs/services spécifiques via la commande ‘ docker compose ‘.
docker compose logs osdashboards
docker compose logs os01
docker compose logs os02
docker compose logs os03Accéder aux OpenSearch Dashboards
Ouvrez votre navigateur web et visitez l’adresse IP de votre serveur suivie du port OpenSearch Dashboards ‘ 5601 ‘ (c’est-à-dire : https://192.168.5.100:5601/). Vous devriez obtenir la page de connexion des OpenSearch Dashboards.
Saisissez l’utilisateur ‘kibanaserver’ et le mot de passe, puis cliquez sur ‘ Se connecter ‘.

Lorsque cela réussit, vous devriez obtenir la page suivante. Cliquez sur ‘ Explorer par moi-même ‘ et vous devriez voir la page d’accueil des OpenSearch Dashboards.

Avec cela, vous avez les OpenSearch Dashboards en cours d’exécution et l’authentification est activée. De plus, les OpenSearch Dashboards fonctionnent sous des connexions HTTPS sécurisées via les certificats SSL/TLS que vous avez générés.
Ensuite, vérifiez la connexion entre les OpenSearch Dashboards et le cluster OpenSearch via l’API OpenSearch.
Cliquez sur le menu de gauche pour passer à la section Gestion et cliquez sur ‘ Outils de développement ‘.
Maintenant, saisissez la requête ‘ GET / ‘ dans la console et cliquez sur le bouton de lecture. Lorsque cela réussit, vous devriez voir la sortie sur le côté droit avec des informations détaillées sur votre serveur OpenSearch. De plus, vous pouvez voir en haut à droite le code HTTP ‘ 200 - OK ‘ qui confirme que la requête a été exécutée sans erreur.

Saisissez une autre requête ‘ GET _cat/nodes?format=json&filter_path=ip,name ‘ pour vérifier les nœuds OpenSearch disponibles sur le cluster OpenSearch. Vous devriez voir trois nœuds différents sur le cluster OpenSearch, os01 avec l’adresse IP 172.23.0.5, os02 avec l’adresse IP ‘ 172.23.0.3 ‘, et os3 avec l’adresse IP ‘ 172.23.0.2 ‘.

Cela confirme que les OpenSearch Dashboards sont connectés au cluster OpenSearch.
Conclusion
Dans ce tutoriel, vous avez installé OpenSearch via Docker et Docker Compose sur un serveur Ubuntu 22.04. Vous avez créé un cluster OpenSearch avec 3 conteneurs différents sur Docker. Vous avez également sécurisé OpenSearch avec des certificats TLS, activé l’authentification et l’autorisation, et configuré des utilisateurs dans OpenSearch. En plus de cela, vous avez également configuré et optimisé un serveur Linux Ubuntu pour déployer OpenSearch.
Vous avez également installé les OpenSearch Dashboards via Docker et Docker Compose. Ensuite, vous avez également connecté le conteneur OpenSearch Dashboards au cluster OpenSearch.
Avec cette configuration, vous pouvez maintenant explorer davantage OpenSearch, ajouter des intégrations à votre OpenSearch, configurer une authentification supplémentaire, et bien plus encore. Vous en apprendrez davantage sur tout cela concernant OpenSearch dans la documentation officielle d’OpenSearch.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.