[v8.6/8.7] ElasticsearchとKibanaをWindowsにインストールする手順　（試用用途）


# はじめに 
[別の記事](https://qiita.com/nobuhikosekiya/items/7441186795b3da998e2f)ではLinux上でのElasticsearchのインストールをご紹介しましたが、今回はWindows版での手順を示したいと思います。最新バージョンの8.6.xと8.7.0で手順の確認をしています。
私のマシン環境では、手順完了にかかる時間は1時間超えるくらいですが、大半50分くらいはインストーラのダウンロードとZIP展開に時間がかかるだけでした。

- 4月11日更新: v8.7.0で手順を確認済み

公式のインストールのマニュアルとしては以下がURLとなりますが、今回はこの手順から最小限必要なステップの手順となっています。
https://www.elastic.co/guide/en/elasticsearch/reference/8.6/zip-windows.html
https://www.elastic.co/guide/en/kibana/8.6/windows.html

# 本手順を試した環境
AWS EC2使いました。
- OS: Windows 2022　(AMI: Windows_Server-2022-English-Full-Base-2023.01.19)
- スペック: t3.mediumインスタンス (2 vCPU, 4GB mem)

本手順を試すにあたりディスクは3GBくらいは空きがあったほうがいいでしょう。
（インストール直後のディスクの使用容量はElasticsearchはおおよそ700MBくらい、Kibanaはおおよそ800MBくらいでした。）

また、別途Windows PCでも動作確認しています。こちらは製品のサポートの対象とはなりませんので、あくまで勉強環境として動かす程度で使ってみてください。
- OS: Windows 11
- スペック： Intel Core i5 (4コア) 4GB mem

# 手順
## Step1: Elasticsearchインストーラーのダウンロードと展開
Windows内のブラウザで以下にアクセスし、Windows用のZIPファイルをダウンロードします。
https://www.elastic.co/downloads/elasticsearch
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/a530c21c-a5a3-6d5e-5ed9-efd769470c1f.png)

ダウンロード後、ZIPファイルを任意のフォルダに展開してください。（この手順ではダウンロードフォルダの下に展開しています）

## Step2: Kibanaのインストーラのダウンロードと展開
Windows内のブラウザで以下にアクセスし、Windows用のZIPファイルをダウンロードします。
https://www.elastic.co/downloads/kibana
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/c5742742-1a5d-06bc-edff-fac9453f12e9.png)

ダウンロード後にZIPファイルを展開するのですが、
ダウンロードフォルダ配下にKibanaのZIPファイルを展開すると、パスが長すぎるエラーが出てしまいました。
その場合、例えばC:¥Users¥Administrator¥kibanaのようにパスが短くなるフォルダでやり直すことでエラーが出なくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/15a3c0d3-8022-7826-d594-02aac4e979c3.png)
※ Windows Defenderのアンチウィルスが動いていると展開に結構時間がかかるかもしれません。筆者の場合30分〜1時間かかりました。

## Step3: Elasticsearchの初回起動
ElasticsearchのZIPファイルを展開したフォルダの中に含まれるbin¥elasticsearch.batを実行します。（ファイルをダブルクリック、もしくはコマンドプロンプトから実行）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/92bdaabb-d31f-ec7e-d666-d2677837bdae.png)

下のような画面が出た場合、More Infoを押すと、Run anywayというボタンが表示されるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/9c0fbd9f-60bd-04de-1709-b895f111181a.png)

コマンドプロンプトが起動し、インストールの出力が表示されます。赤枠のelasticユーザーのパスワードと、enrollment tokenをコピーしてメモに残してください。後ほど使います。（ここまで表示されるのに数分待つ場合があります）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/e2a591de-5ca5-e215-2e2d-a237110a935e.png)

特にパスワードはKibanaへのログインの度に必要なので、忘れないようにしてください。

## Step4: Kibanaの初回起動

KibanaのZIPファイルを展開した中にあるbin/kibana.batを実行します。（ファイルをダブルクリック、もしくはコマンドプロンプトから実行）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/bbc4858c-c4e1-d17f-6145-62a6dd6935a9.png)

数分待ち、このような表示になれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/905fce9d-6d52-405a-da87-d03231951459.png)

## Step5: Kibanaへの初回ログイン
次に、表示されているURLをコピーしてブラウザで開きます。ブラウザで下の画面が表示されるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/08b35b32-6003-b932-20a2-b2ceb2c2b18f.png)
Elasticsearchインストール時にメモしたトークン文字列をここでペーストしてください。
このトークンは３０分しか有効でないので、無効となっている場合は下のコマンドで取得し直してください。
コマンドプロンプトを開き、Elasticsearchインストールフォルダの中のbinフォルダにある以下のバッチを実行します。
bin¥elasticsearch-create-enrollment-token -s kibana
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/cc9a2e11-09b5-11c4-3a34-933f9ceba088.png)

トークン貼り付けの例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/19fc2ca6-fb5e-2a2d-9638-729f2e95ff60.png)

ログイン画面に来たら、ユーザーは固定の```elastic```, パスワードはElasticsearchインストール時にメモしたパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/ab15085a-1540-a4a1-d0f0-cdda411fc95d.png)

以下の画面では、```Explore on my own```を選択すると、次のHome画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/a6a29361-e94e-8826-91c6-270dc2bc0cba.png)

## Step6: サンプルデータのロード方法

今回はサンプルデータをロードして使います。Home画面ではTry sample dataのボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/6a76d8ee-bcd0-4ad3-57bb-7241cfc182a8.png)

次の画面では、Other sample data setsを開き、下に見える３つのAdd dataボタンを押してデータをロードしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109197/99ce1fc4-c815-595f-61d6-567899b67950.png)

## その他の手順: 起動・停止
停止するには、起動時に開いたコマンドプロンプトを閉じてください。
再び起動するには、bin¥elasticsearch.batとbin¥kibana.batをダブルクリックするだけでOKです。（Elasticsearchの方を先に起動し、起動が完了してからKibanaを起動してください）
起動後のKibanaのUIへのアクセスは以下のURLから可能です。
http://localhost:5601　

注意：次回起動時に、環境のIPアドレスが変わっている場合は、埋め込まれた前回のIPアドレスを変更しないと、Kibanaが起動しません。例えば、前回の時とWifi環境が変わったなどの時に発生します。
以下のようなエラーが出るはずです。
```
[ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. Request timed out
```

そんな時は、kibanaフォルダの中の/config/kibana.ymlに含まれる前回のIPアドレスを変更します。ファイルの下の方が以下のようになっていると思います。
```kibana.yml:

# This section was automatically generated during setup.
elasticsearch.hosts: ['https://192.168.10.104:9200']
elasticsearch.serviceAccountToken: AAEAAWVsYXN0aWMva2liYW5hL2Vucm9sbC1wcm9jZXNzLXRva2VuLTE2ODIzODA2ODA4NzQ6dUdoWHlSWDRURmlJZjFiYWZKYlBBQQ
elasticsearch.ssl.certificateAuthorities: [/Users/nobuhikosekiya/Downloads/test2/kibana-8.7.0/data/ca_1682380681628.crt]
xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: ['https://192.168.10.104:9200'], ca_trusted_fingerprint: c830d61e1909932c15225100f36a511a1ea0aef4be06ca5dd411e3f6774338e5}]

elasticsearch.ssl.verificationMode: none
```
以下の2行分を変更してからKibanaを起動してみてください。
* elasticsearch.hostsのアドレスを https://127.0.0.1:9200 に変更して
* elasticsearch.ssl.verificationMode: noneの行を追加　（サーバー証明書に記載されているIPアドレスのチェックを無効化します）

## その他の手順: アンインストール
今回のインストールは特にWindowsのレジストリなどに書き込みしていませんので、インストールフォルダを削除するだけでOKです。

## その他の手順: elasticユーザーのパスワードを忘れた場合
コマンドプロンプトでElasticsearchのフォルダの中に入り、以下のコマンドを実行してください。
```
bin¥elasticsearch-reset-password.bat -u elastic
```

この時、最初のインストールの時から環境のIPアドレスが変わっている場合、以下のようなメッセージでエラーが出ます。
```
java.security.cert.CertificateException: No subject alternative names matching IP address 10.88.134.45 found
```
これは、証明書チェックのエラーです。インストール時に証明書に埋め込まれた前回のIPアドレスが現在の環境のIPアドレスと違うため起こります。このチェックをバイパスするには、config¥elasticsearch.ymlの一番下に以下を追加してください。
```config¥elasticsearch.yml:
xpack.security.http.ssl.verification_mode: none
```

# 最後に
本手順が完了すればKibanaでデータ分析ができるようになります。
また、追加のログを取り込むためにElastic　Agentを使いたい場合、[こちらの記事](https://qiita.com/nobuhikosekiya/items/7441186795b3da998e2f)を参考にしてみてください。