ElasticSearch安装(以Docker的方式)

Posted woshishanshan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch安装(以Docker的方式)相关的知识,希望对你有一定的参考价值。

拉取docker镜像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.1.1

命令行方式启动

  • 测试环境     :docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:6.1.1
  • 正式环境 
    正式环境下,必须将Linux内核参数vm_max_map_count调到262144以上,设置后在/etc/sysctl.conf文件中检查一下: 
  • sysctl -w vm.max_map_count=262144 grep vm.max_map_count /etc/sysctl.conf
  • 如果sysctl -w无效的话,直接vi /etc/sysctl.conf这个文件进行修改。

    正式环境通常需要部署集群,采用docker-compose的方式。

    docker-compose.yml是启动2个Elasticsearch节点并作为集群的例子,启动方式为:

    docker-compose up
    技术图片

  • docker-compose.yml文件内容如下:
  • version: ‘2‘
    services:
    es1:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
    container_name: es1
    environment:
    - cluster.name=docker-cluster
    - bootstrap.memory_lock=true
    - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
    memlock:
    soft: -1
    hard: -1
    mem_limit: 1g
    volumes:
    - esdata1:/usr/share/elasticsearch/data
    ports:
    - 9200:9200
    networks:
    - esnet
    es2:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
    environment:
    - cluster.name=docker-cluster
    - bootstrap.memory_lock=true
    - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    - "discovery.zen.ping.unicast.hosts=es1"
    ulimits:
    memlock:
    soft: -1
    hard: -1
    mem_limit: 1g
    volumes:
    - esdata2:/usr/share/elasticsearch/data
    networks:
    - esnet

    volumes:
    esdata1:
    driver: local
    esdata2:
    driver: local

    networks:
    esnet:

    检查集群的状态(健康情况):
    在浏览器中打开 http://127.0.0.1:9200/_cat/health
    默认的用户名密码:
    elastic/changeme

    在host里可以使用docker logs来查看docker的日志

    安装elasticsearch-head扩展(h5页面),由于elasticsearch 5之后对于head扩展不再支持elasticsearch-plugin的方式和Chrome Extension的方式,需要单独启动一个node服务器,下面使用docker来启动

    docker run -p 9100:9100 -d --name es-head mobz/elasticsearch-head:5

  • 由于head是需要调用es的api的,所以域名最好保持统一,采用之前plugin的访问方式,在nginx上做location proxy

    location /_plugin/head {
    proxy_pass http://devops1-internal:9100/;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 360;
    proxy_send_timeout 180;
    proxy_read_timeout 180;
    proxy_buffer_size 8k;
    proxy_buffers 8 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    }
    最后以 http://localhost/_plugin/head/ 来进行访问 

  • 技术图片

以上是关于ElasticSearch安装(以Docker的方式)的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch 在docker和centos下的安装教程

docker安装elasticsearch

Docker安装ElasticSearch

Docker安装ElasticSearch和Kibana

Docker安装ElasticSearch和Kibana

Docker安装ElasticSearch和Kibana