ElasticSearch安裝(以Docker的方式)

Install Elasticsearch with Docker
Elasticsearch的官方鏡像是基於centos:7的,並且自帶了X-Pack,官方鏡像的源代碼在 GitHub 上。

X-Pack有30天的試用期license,過了試用期,可以繼續獲取 available subscriptionsdisable Security(去掉安全). Basic license是免費的,也包括了Monitoring extension(監控類擴展).
這裏寫圖片描述
這裏寫圖片描述

拉取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/ 來進行訪問
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章