LoginSignup
12
12

More than 3 years have passed since last update.

Elasticsearch 7.2.0 + Kuromoji + Kibana + docker-compose インストールメモ

Last updated at Posted at 2019-07-31

SnapDishの検索エンジンを強化したいので、Elsasticsearch準備したときのメモ。
kibana.ymlの書き方でまよったけど、なんとか動くようになった。

サーバー環境

Console
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

$ docker-compose -v
docker-compose version 1.22.0, build f46880fe

$ grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144

ディレクトリ構成

Console
/opt/elasticsearch/
├── docker-compose.yml
├── esdata01  # *1
├── esdata02  # *1
├── kibana.yml
├── test_kuromoji_index.sh
└── source
    └── Dockerfile

*1 elasticsearchのデータの保存先、ディレクトリ権限がrootだとエラーになる

ファイル

docker-compose.yml
version: '2.2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.0
    volumes:
      - /opt/elasticsearch/kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
    networks:
      - esnet
  es01:
    build: source
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - /opt/elasticsearch/esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  es02:
    build: source
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - /opt/elasticsearch/esdata02:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

networks:
  esnet:
kibana.yml
elasticsearch.hosts:
  - http://es01:9200
  - http://es02:9200
server.name: "[kibanaのドメイン名.com]"
server.port: 5601
server.host: "0.0.0.0"
plugin/Dockerfile
FROM docker.elastic.co/elasticsearch/elasticsearch:7.2.0
# RUN elasticsearch-plugin remove analysis-kuromoji
# RUN elasticsearch-plugin remove analysis-icu
RUN elasticsearch-plugin install analysis-kuromoji
RUN elasticsearch-plugin install analysis-icu
test_kuromoji_index.sh
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/test_kuromoji_index?pretty -d '
{
  "settings": {
    "analysis": {
      "analyzer": {
        "test_kuromoji_analyzer": {
          "type": "custom",
          "tokenizer": "kuromoji_tokenizer"
        }
      }
    }
  }
}'

Docker操作

Console
$ cd /opt/elasticsearch
$ docker-compose build  # ドッカービルド
$ docker-compose up -d  # 起動
$ docker-compose logs -f  # ログを見る
$ docker-compose down  # 停止

参考
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12