Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

1. はじめに

Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑される可能性があります。そこで、esを勉強してみることにしました。私はdockerの方が好きなので、dockerを使ってesをインストールしました。ここではインストールの詳細や注意すべき点などを詳しく紹介します。ここでは docker のインストールについては説明しません。自分でインストールできます。非常に簡単なので、きっと気に入っていただけると思います。ここで使用しているパソコンはMacBook Proです。Linuxであれば基本的に同じです。Windowsであれば違うかもしれません。こちらでは実際に操作したことはありません。興味があれば自分で試してみて下さい。

2.ElasticSearchのインストール

2.1 dockerにesをインストールする

es を使用するには、インストールする必要があります。私は docker に慣れているので、主に私のソフトウェアの多くが docker を選択しているため、docker でも試してみたいと思います。 Docker のインストールは実は非常に簡単で、必要なのは 1 行のコマンドだけです。ここでは、es 7.2.0 バージョンのミラー イメージ インストールを選択しました。具体的なインストール コマンドは次のとおりです。

docker pull elasticsearch:7.2.0

コマンドを入力したら、Enter キーを押してイメージのダウンロードが完了するまで待ちます。

2.2 開始

インストールが完了したら、もちろん es を起動する必要があります。ここから起動するのも非常に便利で、コマンド 1 行だけで十分です。次のように:

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0

このようにしてesが開始されます。次のコマンドを入力すると、es が正常にインストールされているかどうかを確認できます。

カール http://localhost:9200

または、ブラウザで URL http://localhost:9200 を開きます。次の情報が表示されれば、es がインストールされたことになります。

{
 "名前" : "530dd7820315",
 「クラスター名」:「docker-cluster」、
 "クラスターUUID" : "7O0fjpBJTkmn_axwmZX0RQ",
 「バージョン」: {
  "番号" : "7.2.0",
  "build_flavor" : "デフォルト",
  「ビルドタイプ」:「docker」、
  "build_hash" : "508c38a",
  「ビルド日付」:「2019-06-20T15:54:18.811730Z」、
  "build_snapshot" : 偽、
  "lucene_version" : "8.0.0",
  "最小ワイヤ互換性バージョン" : "6.8.0",
  "最小インデックス互換性バージョン" : "6.0.0-beta1"
 },
 「タグライン」:「検索用です」
}

サーバーにインストールする場合は、外部アクセス用にサーバーのポート 9200 を開き、localhost をサーバーの IP アドレスに置き換える必要があります。

2.3 クロスドメインアクセスの問題を解決するために設定を変更する

まずコンテナに入り、次に指定されたディレクトリに入って elasticsearch.yml ファイルを変更します。

docker exec -it elasticsearch /bin/bash
/usr/share/elasticsearch/config/ をコピーします。
vi elasticsearch.yml

elasticsearch.yml ファイルの末尾に以下を追加します。

http.cors.enabled: 有効
http.cors.allow-origin: "*"

設定を変更したら、コンテナを再起動します。

docker で elasticsearch を再起動する

2.4 ik word segmenterをインストールする

es に付属する単語セグメンテーションは中国語の単語セグメンテーションにはあまり適していないため、この問題を解決するためにオープンソースの IK 単語セグメンテーションをダウンロードします。まず、プラグイン ディレクトリに移動して Word segmenter をダウンロードし、ダウンロード後に解凍して、es を再起動します。具体的な手順は次のとおりです。

注意: elasticsearch のバージョンと ik tokenizer のバージョンは一致している必要があります。一致していないと、再起動時に失敗します。ここですべてのバージョンを表示できます。適切なバージョンを選択し、右クリックしてリンク アドレスをコピーします。ここをクリック

cd /usr/share/elasticsearch/plugins/
elasticsearch-plugin のインストール https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip
出口
docker で elasticsearch を再起動する 

次に、kibana インターフェースの開発ツールでインストールが成功したかどうかを確認できます。

POSTテスト/_analyze
{
 "アナライザー": "ik_max_word",
 "text": "こんにちは、私はDongxie Jiaflyです"
}

「analyzer」:「ik_max_word」を追加しないと、各単語がセグメント化されます。以下の kibana をインストールした後に試すことができます。

3. Kibanaのインストール

3.1 Dockerにkibanaをインストールする

docker を使用して kibana をインストールするための同じコマンドは次のとおりです。

docker pull kibana:7.2.0

すべての画像がダウンロードされるまで待ちます。

3.2 Kibanaを起動する

インストールが完了したら、kibana コンテナを起動し、--link を使用して elasticsearch コンテナに接続する必要があります。コマンドは次のとおりです。

Docker 実行 --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0
docker キバナを起動する

起動後、ブラウザを開いて http://localhost:5601 と入力すると、kibana インターフェースが開きます。

4. 結論

上記の手順でesとkibanaがインストールされます。簡単ですよね?これは Docker の利点の 1 つであり、私が Docker を好む理由の 1 つです。もちろん、Docker にはこれ以外にもたくさんの機能があります。後ほど詳しく書きますが、一言で言えば、間違いなく使えます。ハハハ

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerにelasticsearchとkibanaをインストールする方法
  • Docker に ElasticSearch をインストールする方法を 1 つの記事で解説
  • Dockerコンテナ内にkibanaトークナイザーをインストールする方法
  • DockerにElasticSearchとKibanaをインストールする方法を説明します

<<:  JavaScript でドラッグ可能なプログレスバーを実装する

>>:  MySQL 8.0.12 解凍版インストールチュートリアル個人テスト!

推薦する

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

ウェブサイトの速度を上げる6つの方法

1. .js ライブラリ ファイルのアドレスを Google CDN アドレスに置き換えます。 (G...

MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離

目次1.同時アクセス制御2. 取引1. トランザクションは ACID 原則に従います。 2. トラン...

4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

1. インラインスタイル仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェク...

MySQL InnoDB テーブルスペース暗号化の例の詳細な説明

序文MySQL 5.7.11 以降、MySQL は、別の表領域に格納された InnoDB テーブルの...

Vue が配列の変更を監視できない問題の解決方法

目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...

Vue+echarts で積み上げ棒グラフを実現

この記事では、積み上げ棒グラフを実装するためのVue+echartsの具体的なコードを参考までに紹介...

パズル効果を実現するネイティブ js

この記事では、パズル効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的...

Nginx 7層負荷分散のいくつかのスケジューリングアルゴリズムの簡単な理解

この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...

Electronで不規則な形状の透明部分をクリックする実装

目次不規則なフォームの実装透明な部分をクリックする不規則なフォームの実装ここでは円形フォームを実装し...

使用場所によって混乱しやすいXHTMLタグ

<br />jb51.net では、常に記事のセマンティクスを重視してきましたが、HTM...

Docker管理に関する断片的な知識のまとめ

目次1. 概要2. 応用例2.1、Docker コンテナ分離名前空間2.2. Docker のフリー...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

vue3 のさまざまなファイルタイプのプレビュー機能の例

目次序文1. オフィス文書の種類のプレビュー2. PDF形式のプレビュー3. 画像の種類4. ビデオ...

editplus の Zen コーディング例コードの説明

たとえば、次のように入力します。 XML/HTML コードdiv#ページ>(div#ヘッダー&...