【Elasticsearch入門】環境構築 Windows編

# 本記事のゴール
WindowsでElasticsearchを勉強していこうという人向けにElasticsearch＋Kibanaの環境構築方法をまとめます。


# Elasticsearch
Elasticsearch は オープンソースの全文検索エンジンです。
Apache LuceneをベースとしたJavaで書かれたソフトウェアでElastic社により開発が進められています。
登録したドキュメントから目的の単語を含むドキュメントを高速に検索することができます。
基本的にElasticsearchではRestful APIを使って操作します。

# Kibana
ログ分析やアプリケーションのモニタリング等のユースケースに使われるオープンソースのデータ可視化ツールです。
ヒストグラム、線グラフや地図のサポートなど、強力で使いやすい機能を提供します。
KibanaはElasticsearch と緊密に統合されているため、Elasticsearch に保存されているデータを可視化するためのデフォルトの選択肢になります。

# 環境
以下のようなかなり性能の低いPCでも動かすことができます。
プロセッサ：Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz 2.50GHz
実装メモリ(RAM)：8.0GB
システムの種類：64ビットオペレーティングシステム、x64 ベースプロセッサ
Windowsのエディション：Xindows 10 Pro

# バージョン等
- Elasticsearch: 7.6.2
- kibana: 7.6.2
※ダウンロードするタイミングによって変わるかと思います。

# 導入方法
## Javaのインストール
Elasticseachを使い始めるためにまずはJavaのインストールをする必要があります。
ここではOpen JDKを使用します。
Elasticsearchの[ドキュメント](https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html)ではバージョン8.0を使っているので8.0のものを使えば良いですが、
それ以上のものを使っても構わないと思います。
https://www.javadrive.jp/start/install/index1.html
を参考にインストールしてみてください。

Elasticsearchを使う上で注意しなければならないことが1点だけあります。
**環境変数JAVA_HOMEの設定を必ず行いましょう！**
「コントロールパネル」＞「システムとセキュリティ」＞「システム」＞「システムの詳細設定」より以下の画面から設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/61373b18-f9c5-4812-6d0f-1d5237025ef1.png)
「環境変数」を押下後、「ユーザー環境変数」もしくは「システム環境変数」にJAVA_HOMEを設定してください。
自身がない人は「システム環境変数」に設定するか両方に設定していればいいかと思います。

ここまでできれば後は公式ドキュメント通りにElasticsearchとKibanaを入れていくだけでインストールができます。

## Elasticsearchのインストール
公式ドキュメントとして[こちら](https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html)に書かれていますが、
実際のダウンロードページには簡潔に記載してあるのでそちらを見ながらダウンロードしていくと良いかと思います。
ダウンロードページは[こちら](https://www.elastic.co/jp/downloads/elasticsearch)です。
上記ページの下の方に以下のようなStepが書かれているかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/01c61216-eca4-0b2a-aad2-794ad206614f.png)

この手順に従って説明していきます。
1. Download and unzip Elasticsearch
ページ上部のWindows用のzipファイルをダウンロードして解答してください。
どこで解凍してもらっても構いませんが、面倒なのでC:\直下にダウンロードすることをお勧めします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/aec6fe44-bb9c-6287-a8c5-9a1e4d258879.png)

解答後は、以下のようなディレクトリ構成になっているかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/f1a43558-0af8-1d5c-030f-d38711ee2535.png)

2. Run bin/elasticsearch (or bin\elasticsearch.bat on Windows)
`bin`配下に移動し、elasticsearch.batを押下するだけでプログラムが実行され、elasticsearchが動き出します。
以下のように設定などが読み込まれ立ち上がってくるのがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/36594cd3-693d-b1f3-3ac9-6825ad5468eb.png)

3. Run curl http://localhost:9200/ or Invoke-RestMethod http://localhost:9200 with PowerShell
最後に確認としてコマンドプロンプトを立ち上げて、
`curl localhost:9200`と打ち込んでください。
以下のように起動していることがわかると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/a1418c48-b884-4072-c55d-e9c9a9ea2496.png)


## Kibanaのインストール
Kibanaのインストールの手順もElasticsearchのインストールとほぼ同様の手順で行うことができます。
[こちら](https://www.elastic.co/jp/downloads/kibana)のページよりインストールを行うことができます。

1. Download and unzip Kibana
Elasticsearchと同じようにダウンロードして解答してください。
C:\直下をお勧めします。

2. Open config/kibana.yml in an editor
   Set elasticsearch.hosts to point at your Elasticsearch instance
本来ならば、kibanaが参照するelasticsearchのホストの場所を指定する必要がありますが、
今回はデフォルトの設定の状態でElasticsearchを起動しているので特にここは設定する必要がありません。
無視しましょう。

3. Run bin/kibana (or bin\kibana.bat on Windows)
`C:\kibana-7.6.2-windows-x86_64\bin`にkibana.batがいるのでそちらを押下すると起動します。

4. Point your browser at http://localhost:5601
ブラウザで`http://localhost:5601`に接続すると以下のような画面が出てきて起動ができたことを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/ea2eb26a-6aff-436a-c3f5-fd6b915f73a6.png)

# 確認
KibanaからElasticsearchに接続できているかの確認を行うことができます。

kibanaに接続後左側にあるサイドバーの「Dev Tools」に移動してください。
そうするとコンソール画面が出てくるのでそこで以下の入力を行った後、再生ボタンを押下してみてください

```
GET /
```
以下のような画面が出てくればKibana→Elasticsearchの接続も完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119747/0a4b977b-0ef5-68dc-bfb9-9541f4d675fa.png)


以上がWindowsでのKibana＋Elasticsearchお試し環境の構築方法となります。

# おすすめ教材

- [はじめてのElasticsearch](https://www.udemy.com/course/elasticsearch/?couponCode=3BE4592DF570D6DA69CF)
- [はじめてのKibana](https://www.udemy.com/course/kibana-jap/?couponCode=E59890B71A886D5A1CED)