Help us understand the problem. What is going on with this article?

dockerでelasticsearch、kibanaを使える環境を構築してみる

全文検索機能を利用する

業務で使うことがあったので、elasticsearchを勉強しようと思す。今回はdockerで簡単に構築してみました。dockerの使い方などは端折ります。
elasticsearchに投入するデータはwebサービスでランダムで作成したデータですので適宜用意してください。
今回は対象外ですが、前段にelasticsearchにアクセスするAPサーバーを用意し、elasticからデータを取得するようなアプリケーションも公開できたらなーと思ってます。

構成図

構成図.png

周辺のツール

  • postgres
    • elasticsearchに流すデータソース
  • logstash
    • postgresのデータを抽出しelasticsearchにデータを流し込むアプリケーション
  • kibana
    • elasticsearchにモニタリングするアプリケーション

資材

下記からcloneしてください。
github

docker-compose.yml
version: '2'
services:
  postgres:
    # 配下のinit_dataが初期データ。適宜用意してください。
    build: ./postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=postgres
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
      - ./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    container_name: postgres
  elasticsearch:
    build: ./elasticsearch
    ports:
      - "9200:9200"
      - "9300:9300"
    container_name: elasticsearch
    hostname: elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      - "http.host=0.0.0.0"
      - "transport.host=127.0.0.1"
      - "xpack.security.enabled=false"
  kibana:
    # image: docker.elastic.co/kibana/kibana:7.0.1
    build: ./kibana
    ports:
      - "5601:5601"
    container_name: kibana
    links: 
      - elasticsearch
  logstash:
    image: logstash:7.0.1 
    volumes:
      - ./logstash:/usr/share/logstash/pipeline
      - ./jdbc/postgresql-42.2.2.jar:/usr/share/java/postgresql-42.2.2.jar
    links:
      - elasticsearch
      - postgres
    ports:
      - '5044:5044'
      - '43448:43448/udp'
      - '9600:9600'

kibanaの起動確認

docker-composeで起動後ブラウザで下記にアクセスするとkibanaが開く
http://<ホスト名>:5601
image.png
その後、左側のメニューの「Dev Tools」を押下。
image.png
この画面でクエリの確認ができます。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away