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 解凍版インストールチュートリアル個人テスト!

推薦する

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

MySQLアラームの詳細な分析と処理

最近、あるサービスにアラームが発生し、耐えられなくなっています。アラーム情報は次のとおりです。メトリ...

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

MySQLデータベースで外部キー制約を使用する必要があるかどうかの詳細な説明

1. はじめに外部キー制約を使用するかどうかという話題は、すでに決まり文句になっています。学校では、...

MySQLのファジークエリのような遅い速度を解決する方法

質問: インデックスは作成されているのに、Like ファジー クエリがまだ遅いのはなぜですか?インデ...

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...

MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

Linux TTY/PTS の違いの概要

キーボードで文字を入力すると、対応するプロセスにどのように送信されるのでしょうか? ps や who...

JavaScriptはXiaomi Mall公式サイトの完全なページ実装プロセスを模倣します

目次1. ホームページ制作1. ダウンロードアプリの制作2. ナビゲーションバーの制作3. カルーセ...

Tomcat CentOS インストールプロセス図

Tomcat CentOS インストールこのインストール チュートリアルでは、次の内容について説明し...

Nginx + consul + upsync を使用して動的負荷分散を実現する方法の詳細な説明

目次前提条件DNSドメイン名解決プロセス外部ネットワークマッピングnginxコア知識nginxとはア...

Vue3 カプセル化された虫眼鏡コンポーネントのサンプルコード

目次コンポーネントインフラストラクチャ目的: 画像拡大鏡機能を実現するvueuseをインストールする...

メタタグにおける http-equiv 属性の使用の概要

metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うかもし...

制限を使用すると、MySQL のページングがどんどん遅くなるのはなぜですか?

目次1. テスト実験2. 制限ページング問題に対するパフォーマンス最適化手法2.1 テーブルをカバー...