簡體   English   中英

如何使用Elasticsearch 5.5-alpine更改為elasticsearch-oss:6.2.4?

[英]How to change using elasticsearch 5.5-alpine to elasticsearch-oss:6.2.4?

我正在使用elasticsearch5.5-alpine,但我想將其升級到elasticsearch-oss:6.2.4。 每當我從docker-compose文件升級時,都會出現elasticsearch無法訪問的錯誤,而且elasticsearch在localhost:9200上也不起作用。 我該如何解決這個問題?

這是我的docker-compose文件:

version: '3'

services:
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - 8888:80
    depends_on:
      - web
  web:
    build:
      context: .
      dockerfile: Dockerfile-flask
    ports:
        - 5000:5000
    volumes:
        - .:/code
    depends_on:
          - logstash

  logstash:
    image: docker.elastic.co/logstash/logstash-oss:6.2.4
    volumes:
      - ./logstash-simple.conf:/usr/share/logstash/pipeline/logstash.conf
    expose:
      - 5140/udp    
    depends_on:
      - elasticsearch
  elasticsearch:
    image: elasticsearch:5.5-alpine
    environment:
      - cluster.name=docker-clusters
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "5601:5601"
      - "9200:9200"
      - "5044:5044"

您需要刪除以下行:

- xpack.security.enabled=false

然后您需要修復引導檢查

elasticsearch_1  | ERROR: [1] bootstrap checks failed
elasticsearch_1  | [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

該指南告訴您如何解決:

Elasticsearch和Lucene使用mmap可以將索引的某些部分映射到Elasticsearch地址空間中,效果非常好。 這將某些索引數據保留在JVM堆之外,但保留在內存中,以實現快速訪問。 為了使此方法有效,Elasticsearch應該具有無限的地址空間。 虛擬內存的最大大小檢查要求Elasticsearch進程具有無限的地址空間,並且僅在Linux上強制執行。 要通過最大大小的虛擬內存檢查,您必須配置系統以允許Elasticsearch進程具有無限的地址空間。 可以通過/etc/security/limits.conf使用as設置為unlimited (請注意,您可能還必須增加root用戶的限制)來完成此操作。

此命令也可能有助於解決上述問題。

sudo sysctl -w vm.max_map_count=262144

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM