Docker安装ElasticSearch和kibana


title: Docker安装ElasticSearch和kibana
tags:

  • elastic search
  • kibana
  • docker

文章目录

      • 1 镜像下载
      • 2 kibana简单的使用
        • 索引创建查询删除
      • 3 集群搭建使用
        • docker-compose 安装
        • docker-compose配置节点信息

1 镜像下载

  • elasticsearch 镜像下载参考
  • kibana 镜像下载参考

笔者这里kibana和elasticsearch下载的都是6.8.5 tag的镜像

# 下载elasticsearch镜像
docker pull elasticsearch:6.8.5

# 下载kibana镜像
docker pull kibana:6.8.5

创建网络别名

docker network create test_net

启动elasticsearch

docker run -d --name elasticsearch --net test_net -p 9200:9200 -p 9300:9300 -ee"discovery.type=single-node" elasticsearch:6.8.5

启动kibana

docker run -d --name kibana --net test_net -p 5601:5601 kibana:6.8.5
  • http://localhost:5601 访问kibana
  • http://localhost:9200 查看elasticsearch的信息,这里可以看到lucene_version 是7.7.2的版本

2 kibana简单的使用

索引创建查询删除

创建

PUT /test
{
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "_doc": {
      "properties": {
        "amount": {
          "type": "long"
        }
      }
    }
  }
}

doc插入

put /test/_doc/doc1
{
  "amount": -9.223372036854775808E18
}

put /test/_doc/doc2
{
  "amount": -9.223372036854775101E18
}

聚合查询

GET /test/_search
{
  "aggs": {
    "_agg": {
      "terms": {
        "field": "amount",
        "size": 10
      },
      "aggs": {
        "_count": {
          "value_count": {
            "field": "amount"
          }
        }
      }
    }
  }
}

删除

DELETE test

3 集群搭建使用

  • 这里采用docker-compose搭建es集群,主要用到了三个系统(elasticsearch7.x、elastic-head、kibana)
  • 参考信息,elstaic官方文档
  • 可能碰到的问题:
    (1) docker内存配置问题导致节点反复重启,在docker客户端分配docker4个G内存
    (2) 文件句柄设置,sysctl -w vm.max_map_count=262144。具体系统可参考elastic文档或者docker文档

docker-compose 安装

#mac 
brew install docker-compose
#linux
apt-get update && install docker-compose

docker-compose配置节点信息

  • 项目目录结构如下:
es
├── docker-compose.yml
├── kibana
│   └── cfg
│       └── kibana.yml
├── master
│   ├── conf
│   │   └── elasticsearch.yml
│   ├── data
│   └── logs
├── node1
│   ├── conf
│   │   └── elasticsearch.yml
│   ├── data
│   └── logs
└── node2
    ├── conf
    │   └── elasticsearch.yml
    ├── data
    └── logs
  • docker-compose.yml文件:
version: '3'
services:
  es-master:
    image:  elasticsearch:6.8.5
    container_name: es-master
    restart: always
    volumes:
      - ./master/data:/usr/share/elasticsearch/data:rw
      - ./master/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./master/logs:/user/share/elasticsearch/logs:rw
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
     - node.name=es-master
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    networks: 
      - elastic 
    ulimits:
      memlock:
        soft: -1
        hard: -1
  es-node1:
    image:  elasticsearch:6.8.5
    container_name: es-node1
    restart: always
    volumes:
      - ./node1/data:/usr/share/elasticsearch/data:rw
      - ./node1/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./node1/logs:/user/share/elasticsearch/logs:rw
    ports:
      - "9201:9200"
      - "9301:9300"
    environment:
      - node.name=es-node1
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    networks: 
      - elastic 
    ulimits:
      memlock:
        soft: -1
        hard: -1
  es-node2:
    image:  elasticsearch:6.8.5
    container_name: es-node2
    restart: always
    volumes:
      - ./node2/data:/usr/share/elasticsearch/data:rw
      - ./node2/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./node2/logs:/user/share/elasticsearch/logs:rw
    ports:
      - "9202:9200"
      - "9302:9300"
    environment:
      - node.name=es-node2
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    networks: 
      - elastic  
    ulimits:
      memlock:
        soft: -1
        hard: -1
  es-head:
    image: tobias74/elasticsearch-head:6
    container_name: es-head
    restart: always
    ports:
      - "9100:9100"
  es-kibana:
    image: kibana:6.8.5
    container_name: es-kibana
    restart: always
    ports:
      - "5601:5601"
    volumes:
      - ./kibana/cfg/kibana.yml:/usr/share/kibana/config/kibana.yml
    networks: 
      - elastic 
#网络方式使用桥接模式
networks:
  elastic:
    driver: bridge
  • elasticsearch.yml配置
    es-master
bootstrap.memory_lock: false
cluster.name: "es-cluster"
node.name: es-master
node.master: true
node.data: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: es-node1, es-node2
discovery.zen.minimum_master_nodes: 1

path.logs: /usr/share/elasticsearch/logs
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.audit.enabled: false

es-node1

cluster.name: "es-cluster"
node.name: node1
node.master: false
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: es-master, es-node2
path.logs: /usr/share/elasticsearch/logs

es-node2

cluster.name: "es-cluster"
node.name: node2
node.master: false
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: es-master, es-node1
path.logs: /usr/share/elasticsearch/logs

kibana

#链接节点
elasticsearch.hosts: ["http://es-master:9200", "http://es-node1:9201", "http://es-node2:9202"]
server.host: "0.0.0.0"
xpack.monitoring.ui.container.elasticsearch.enabled: true
#语言
i18n.locale: zh-CN

你可能感兴趣的:(elastic学习)