Étapes détaillées permettant à Docker d'installer Elasticsearch et les plug-ins associés, de tester et d'éviter les fosses tout au long du processus


Récemment, la société a développé un système de gestion de fichiers et a besoin de réaliser la fonction de recherche en texte intégral, elle mène donc des recherches sur Elasticsearch, kibana et ses plug-ins associés analysis-ik, elasticsearch-head et ingest-attachment. présente en détail le déploiement des services ci-dessus dans le conteneur Docker.

Tout d'abord : Il est très, très important de confirmer la version d'installation, sinon ce sera un gouffre !
Le projet adopte le framework Ruoyi. À partir de maintenant, la dernière version du framework Ruoyi fait référence à Spring Boot Dependencies 2.5.14.
Connectez-vous à l'entrepôt maven https://mvnrepository.com/ pour afficher les dépendances


Recherchez elasticsearch et trouvez que la version référencée dans le framework de démarrage de printemps est 7.12.1, donc les étapes d'installation suivantes et le développement ultérieur sont basés sur la version 7.12.1.


1. Installez elasticsearch

1. Tirez l'image

docker pull elasticsearch:7.12.1

2. Créer et démarrer le conteneur

docker run --name=es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-v $PWD/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v $PWD/data:/usr/share/elasticsearch/data \
-v $PWD/logs:/usr/share/elasticsearch/logs \
-v $PWD/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.1

--name : nommage du conteneur

-p : port de la carte

-e : la variable d'environnement, "discovery.type=single-node" doit être spécifiée pour le déploiement sur un seul nœud, sinon une erreur sera signalée et le contenu de l'erreur est le suivant.

les paramètres de découverte par défaut ne conviennent pas à une utilisation en production ; au moins un des [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] doit être configuré 

-v : répertoire de montage, $PWD est le répertoire courant

-d : le conteneur s'exécute en arrière-plan

3. Rapport d'erreur, aucune autorisation

Vérifiez le journal, comme suit :

docker logs 容器ID

 Donnez des autorisations au répertoire et redémarrez.

chmod -R 777 $PWD

4. Service d'accès, échec

curl localhost:9200 renvoie le message Réponse vide du serveur

Modifiez la valeur de xpack.security.enabled dans le fichier /usr/share/elasticsearch/config/elasticsearch.yml à l'intérieur du conteneur sur false.

5. Accédez au service et l'installation est réussie.

2. Installer Kibana

1. Tirez l'image

docker  pull  kibana:7.12.1

2. Créer et démarrer le conteneur

docker run -d -p 5601:5601 --name kibana --link elasticsearch:elasticsearch docker.io/kibana:7.12.1

--link : Spécifie qu'elasticsearch est connecté au conteneur kibana, sinon il signalera une erreur le serveur n'est pas encore prêt

3. Accéder au service et tester

Visitez http://server IP:5601/app/dev_tools#/console
   

GET /_analyze
    {
      "analyzer": "ik_max_word",
      "text": "冰糖码奇朵"
    }


3. Installez elasticsearch-analysis-ik

Étant donné que le téléchargement de l'installation en ligne est très lent et que des erreurs sont signalées à plusieurs reprises, l'installation hors ligne est adoptée.

1. Téléchargez le package d'installation

https://github.com/medcl/elasticsearch-analysis-ik/releases

2. Télécharger sur le serveur

Le répertoire que j'ai téléchargé est usr/local/es/elasticsearch-analysis-ik-7.12.1.zip

3. Copiez à l'intérieur du conteneur

docker cp usr/local/es/elasticsearch-analysis-ik-7.12.1.zip 容器ID:/usr/share/elasticsearch

4. Entrez dans le conteneur

docker exec -it 容器ID /bin/bash

5. Installez le plugin

elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.12.1.zip

Comme suit, l'installation est terminée :

6. Sortez du conteneur

exit

7. Redémarrez elasticsearch

docker restart 容器ID

 4. Installez elasticsearch-head

1. Tirez l'image

docker  pull  mobz/elasticsearch-head:5-alpine

2. Créer et démarrer le conteneur

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5-alpine

3. Résolvez l'échec de connexion
Modifiez le fichier de configuration elasticsearch.yml, ajoutez les deux lignes suivantes :

http.cors.enabled: true
http.cors.allow-origin: "*"

4. Résolvez l'erreur d'accès 406
et modifiez le fichier usr/src/app/_site/vendor.js à l'intérieur du conteneur

Ligne 6886 /contentType : "application/x-www-form-urlencoded est remplacé par :

contentType: "application/json;charset=UTF-8"

La ligne 7573 var inspectData = s.contentType ==`= "application/x-www-form-urlencoded" &&` est remplacée par :   

var inspectData = s.contentType === "application/json;charset=UTF-8" &&

5. Installer l'attachement d'ingestion

1. Téléchargez le package d'installation

https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-attachment/ingest-attachment-7.12.1.zip

2. Télécharger sur le serveur

Le répertoire que j'ai téléchargé est usr/local/es/ingest-attachment-7.12.1.zip

3. Copiez à l'intérieur du conteneur

docker cp usr/local/es/ingest-attachment-7.12.1.zip 容器ID:/usr/share/elasticsearch

4. Entrez dans le conteneur
 

docker exec -it 容器ID/bin/bash

5. Installez le plugin

elasticsearch-plugin install file:/usr/share/elasticsearch/ingest-attachment-7.12.1.zip

Comme suit, l'installation est terminée :

6. Sortez du conteneur

exit

7. Redémarrez elasticsearch

docker restart 容器ID

À ce stade, l'installation d'Elasticsearch, kibana, analysis-ik, elasticsearch-head et ingest-attachment est terminée.

Je suppose que tu aimes

Origine blog.csdn.net/secretdaixin/article/details/128201184
conseillé
Classement