elasticsearch,docker-compose,kibana,elastic-stack,Docker,elasticsearch,Docker Compose,Kibana,Elastic Stack" /> elasticsearch,docker-compose,kibana,elastic-stack,Docker,elasticsearch,Docker Compose,Kibana,Elastic Stack" />

Docker ElasticSearch无法恢复连接:http://elasticsearch:9200/

Docker ElasticSearch无法恢复连接:http://elasticsearch:9200/,docker,elasticsearch,docker-compose,kibana,elastic-stack,Docker,elasticsearch,Docker Compose,Kibana,Elastic Stack,我试着用docker compose在Centos 8上运行ELK: 这里是我的docker compose.yml version: '3.1' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4 container_name: elasticsearch hostname: elasticsearch ports: - "9200:920

我试着用docker compose在Centos 8上运行ELK:

这里是我的
docker compose.yml

version: '3.1'

services:

  elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
   container_name: elasticsearch
   hostname: elasticsearch
   ports:
    - "9200:9200"
   expose:
    - "9200"
   volumes:
    - elasticsearch-data:/usr/share/elasticsearch/data
   networks:
    - docker-network

  kibana:
   image: docker.elastic.co/kibana/kibana:6.2.4
   container_name: kibana
   ports:
    - "5601:5601"
   expose:
    - "5601"
   environment:
    - SERVER_NAME=kibana.localhost
    - ELASTICSEARCH_URL=http://elasticsearch:9200
    - ELASTICSEARCH_USERNAME=elastic
    - ELASTICSEARCH_HOST=elasticsearch
    - ELASTICSEARCH_PORT=9200
    - ELASTIC_PWD=changeme
    - KIBANA_PWD=changeme
   depends_on:
    - elasticsearch
   networks:
    - docker-network

networks:
  docker-network:
    driver: bridge

volumes:
  elasticsearch-data:
但我面临着这个错误:

{“类型”:“日志”,“时间戳”:“2020-03-03T22:53:19Z”,“标记”:[“警告”,“弹性搜索”,“管理”],“pid”:1,“消息”:“无法” 要恢复连接:“}

当我检查时:

  • elasticsearch运行良好

  • docker exec kibana ping elasticsearch
    工作正常

  • kibana和elasticsearch都在同一个网络上,正如您在docker-compose.yml中看到的那样

  • 我检查了docker exec kibana curlhttp://elasticsearch:9200结果是:

  • 无法连接到elasticsearch:9200;没有到主机的路由


    我还检查了其他类似的问题及其解决方案,但没有一个有效。

    如果您在Docker内部运行ElasticSearch,则可能需要检查您是否为Docker分配了足够的内存限制。这可能会导致ElasticSearch速度减慢,甚至崩溃

    默认情况下,Docker Desktop设置为每个Docker允许2Gb的RAM,但在我自己的项目中,我发现4Gb阻止了崩溃,但5Gb产生了额外的性能加速。根据摄入的数据量,您的里程数可能会有所不同

    Docker桌面内存设置可通过以下方式设置:

    • Docker桌面->首选项->资源->内存
    检查Docker容器中的内存使用情况

    DOCKER_ID=`docker ps | tail -n1 | awk '{ print $1 }'`; docker exec -it $DOCKER_ID /bin/bash
    
    free -h  # repeatedly run to inspect changes over time
    

    请注意,ElasticSearch内存使用率在摄取和索引期间达到峰值,然后在索引和整合完成后最终稳定在略低的数字。因此,理想情况下,应在摄取期间测试内存峰值使用情况。

    您的ES可能会反复启动和停止(不会被ping捕获)。检查Es日志或登录到容器本身并检查流程(ps-aux)。另外,不需要暴露:和依赖于:,它们是过时的(当它在运行时丢失时,您不能依靠它重新连接)。也不需要
    端口:
    ,除非您想访问主机外部的ES。我想你宁愿从外面和基巴纳联系。这还可以使ES服务隐藏(安全)不受直接外部连接的影响。@Bernard我检查过elasticsearch运行正常。我检查了日志和测试,在我的案例中,当我将网络驱动程序从
    网桥
    更改为
    主机
    时,一切都很正常