インストール編
OpenSearchを触ってみた個人的メモ代わりです。
- OpenSearch でいろいろやってみる ~インストール編~ (👈ココ)
- OpenSearch でいろいろやってみる ~インデックス編~
- OpenSearch でいろいろやってみる ~絞り込み編~
- OpenSearch でいろいろやってみる ~Aggregation編~
はじめに
近々 OpenSearch 触ることになりそうだったので、
予習の記録として、またこれから OpenSearch 触る人の手助けになればと残すことに。
OpenSearch って
数年前に ElasticSearch(ES)を使ったプロダクトに関わっていた。
その後 AWS にマネージドな ES あるよなーぐらいでしか意識していなかったが、
最近、ES のオープンソースフォークである OpenSearch(OS)に看板がかわったらしい。
ローカルに建ててみる
もちろん AWS 使ってもいいんだけれど、
いろいろ実験したりするならローカルでサクッと試したいなと。
今回は Windows WSL2 環境の Docker で動かしたい。
素直にDoker Desktop使っても同様にできると思われ。
WSL 及び Docker 周りは こちら を参考に作っていた。
OS の DockerFile、docker-compose.yml は オフィシャル でも情報出してるし、
日本語なら こちら が非常に参考になった。
FROM opensearchproject/opensearch:1.1.0
RUN /usr/share/opensearch/bin/opensearch-plugin install analysis-kuromoji
RUN /usr/share/opensearch/bin/opensearch-plugin install analysis-icu
version: "3"
services:
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:1.0.1
container_name: opensearch-dashboards
environment:
OPENSEARCH_HOSTS: "https://opensearch:9200"
ports:
- 5601:5601
links:
- opensearch
networks:
- sandbox
opensearch:
build:
context: .
dockerfile: Dockerfile
container_name: opensearch
environment:
- cluster.name=docker-cluster
- node.name=os-node
- cluster.initial_master_nodes=os-node
- bootstrap.memory_lock=true
- http.host=0.0.0.0
- transport.host=127.0.0.1
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- $PWD/.local/opensearch:/usr/share/opensearch/data
ports:
- 9200:9200
networks:
- sandbox
networks:
sandbox:
まるっきり上記参考ページのコピペ。
そして
docker-compose up
。。。。動かん。
確認すると、
なんか Permission っぽいエラーが。
valume 作る時の所有者がコンテナ側とホスト側でちがうとか、なんかそんな感じの時に起こることらしい。
ディレクトリ自体は作られてたんで、下記で辻褄あわせてみた。
sudo chown -R 1000:1000 .local/opensearch
すると。。。
動いた模様。
厳密には手順があるんだろうが、今回はローカルで実験するだけなんでこれで良しとする。
ダッシュボード触ってみる
ダッシュボード (http://localhost:5601/) に行ってみる。
user/pass は admin/admin
サンプルデータが選べたりする。とりえず ecommerce のやつにしてみる。
数秒でインデックスされ、とたんに kibana っぽい画面が!すごいすごい。
任意のリクエストは「Dev Tool」で叩くことが可能。
所謂「実験」として使うのはこの画面がメインになりそう。
Rest で動作するので curl でも叩ける。たとえば、
curl -XPOST https://localhost:9200/opensearch_dashboards_sample_data_ecommerce/_search -u 'admin:admin' --insecure -d '{"size":5}' -H "Content-Type: application/json"
と、まぁなんとなく動かせるところまできて今回はここまで。
次はインデックス作成周り、やっていこうかなと。