がじぇ

お金と家電とプログラミングのブログ

Dockerを使ってKibana on Elasticsearchの環境を秒で構築する

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。


仕事でelasticsearch+kibanaの環境をサクッとローカルで作る必要があったのでそのメモです。


構築手順

海外のページにdocker-compose.ymlが載っていたので基本そのままです。
Dockerはあらかじめインストールしてください。

mkdir -p /tmp/kibana-es
cd  /tmp/kibana-es
vi docker-compose.yml

以下内容の貼り付け

version: '3'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
  kibana:
    image: docker.elastic.co/kibana/kibana:6.3.2
    ports:
      - "5601:5601"

起動します

docker-compose up -d

localhostでesとkibanaのページが見れるはずです。

Elasticsearch is available at http://localhost:8100/
Kibana UI is up at http://localhost:5601/

kibanaからelasticsearchへのデータ登録

kibanaのサイドメニューの「Dev Tools」からElasticSearchへのデータの登録が可能です。
f:id:gadgeterkun:20200215182502p:plain

データの登録

データの登録はPostです

POST /test_data/_doc
{"hoge": "テストだよ"}

登録したデータの確認

GET /test_*

レスポンス

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 2,
    "max_score": 1,
    "hits": [
      {
        "_index": "test_data",
        "_type": "_doc",
        "_id": "ow8sSHABJZqys3wWPnNH",
        "_score": 1,
        "_source": {
          "hoge": "テストだよ"
        }
      },
      {
        "_index": "test_data",
        "_type": "_doc",
        "_id": "pA8sSHABJZqys3wWRHMK",
        "_score": 1,
        "_source": {
          "hoge": "テストだよ"
        }
      }
    ]
  }
}

Queryでのデータの確認

GET /test_data/_search
{"query": {"match": {"hoge": "テストだよ"}}}

表示件数を指定して確認

GET /test_data/_search?size=30

IDを指定してドキュメントを削除

DELETE /test_data/_doc/ow8sSHABJZqys3wWPnNH

レスポンス

{
  "_index": "test_data",
  "_type": "_doc",
  "_id": "ow8sSHABJZqys3wWPnNH",
  "_version": 2,
  "result": "deleted",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 1,
  "_primary_term": 1
}


[asin:4295003913:detail]