天天看點

docker-compose部署elasticsearch下載下傳鏡像編寫docker-compose.yml啟動elasticsearch部署elasticsearch-head部署kibana

參考的官方文檔連結:Install Elasticsearch with Docker | Elasticsearch Guide [7.5] | Elastic

下載下傳鏡像

docker pull elasticsearch:7.14.1

編寫docker-compose.yml

version: '3'
services:
  es01:
    image: elasticsearch:7.14.1
    environment:
      - node.name=es01
      - cluster.name=es-cluster-ai66
      - cluster.initial_master_nodes=es01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/docker-compose/elastic/es01/data:/usr/share/elasticsearch/data
      - /data/docker-compose/elastic/es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - 9201:9200
    networks:
      - elastic

networks:
  elastic:
    driver: bridge
           

叢集配置時需要修改和增加的environment配置

- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
           

elasticsearch.yml 是從容器中拷出來的,放到了主控端的 /data/docker-compose/elastic/es01/config 目錄,在裡面增加了點内容,然後映射到容器中

cluster.name: "docker-cluster"

network.host: 0.0.0.0

http.cors.enabled: true

http.cors.allow-origin: "*"

cors 相關的兩個參數,是為了解決跨域問題。比如 elasticsearch-head 要連接配接 elasticsearch,需要配置這兩個參數,否則會産生跨域問題!

資料檔案存放目錄 /usr/share/elasticsearch/data 需要映射到主控端上,否則容器一旦删除,es 的資料就丢失了!

注意點:主控端上的資料儲存目錄 /data/docker-compose/elastic/es01/data 必須賦予 777 權限,否則 elasticsearch 無法啟動!

docker-compose部署elasticsearch下載下傳鏡像編寫docker-compose.yml啟動elasticsearch部署elasticsearch-head部署kibana

啟動elasticsearch

docker-compose up -d --build es01

啟動成功之後通過 docker-compose logs es01 檢視日志,裡面可以看到此 elasticsearch 程序的一些基本資訊。

{
  • "type":"server",
  • "timestamp":"2021-09-09T07:49:29,263Z",
  • "level":"INFO",
  • "component":"o.e.n.Node",
  • "cluster.name":"es-cluster-ai66",
  • "node.name":"es01",
  • "message":"JVM arguments [-Xshare:auto, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.locale.providers=SPI,COMPAT, --add-opens=java.base/java.io=ALL-UNNAMED, -XX:+UseG1GC, -Djava.io.tmpdir=/tmp/elasticsearch-3328155958165225604, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Des.cgroups.hierarchy.override=/, -Xms512m, -Xmx512m, -XX:MaxDirectMemorySize=268435456, -XX:G1HeapRegionSize=4m, -XX:InitiatingHeapOccupancyPercent=30, -XX:G1ReservePercent=15, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/usr/share/elasticsearch/config, -Des.distribution.flavor=default, -Des.distribution.type=docker, -Des.bundled_jdk=true]"
}

在容器中,elasticsearch 相關的檔案都在 /usr/share/elasticsearch 目錄中。要修改配置或者添加檔案,都可以在将檔案放在主控端上,然後在 volumn 中配置,用于替換掉容器中的相應檔案。

部署elasticsearch-head

下載下傳鏡像

mobz/elasticsearch-head:5-alpine

編寫docker-compose.yml

eshead:
  image: mobz/elasticsearch-head:5-alpine
  ports:
    - 9100:9100
           

之後通路 9100 端口打開 elasticsearch-head 頁面,在裡面輸入 elasticsearch 位址,然後連接配接,就可以看到 elasticsearch 的各種資訊了。

docker-compose部署elasticsearch下載下傳鏡像編寫docker-compose.yml啟動elasticsearch部署elasticsearch-head部署kibana

注意:elasticsearch 的配置檔案中,必須增加如下兩個參數,才能被 elasticsearch-head 連接配接上,否則會産生跨域問題,無法連接配接。

  • http.cors.enabled: true 
  • http.cors.allow-origin: "*"

部署kibana

下載下傳鏡像

docker pull kibana:7.14.1

編寫docker-compose.yml

kibana:
  image: kibana:7.14.1
  ports:
    - 5601:5601
  environment:
    SERVER_NAME: 10.68.4.66
    ELASTICSEARCH_HOSTS: '["http://10.68.4.66:9201"]'
           

啟動kibana

docker-compose up -d --build es01

之後就可以通過 http://xx.xx.xx.xx:5601 來通路了。

進入首頁後,點選左側導航欄的 Management -> Dev Tools,進入操作 elasticsearch 的界面。

docker-compose部署elasticsearch下載下傳鏡像編寫docker-compose.yml啟動elasticsearch部署elasticsearch-head部署kibana

繼續閱讀