Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用docker compose将Elasticsearch请求/查询记录到docker实例的标准输出_Docker_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logging_Docker Compose - Fatal编程技术网 elasticsearch,logging,docker-compose,Docker,elasticsearch,Logging,Docker Compose" /> elasticsearch,logging,docker-compose,Docker,elasticsearch,Logging,Docker Compose" />

使用docker compose将Elasticsearch请求/查询记录到docker实例的标准输出

使用docker compose将Elasticsearch请求/查询记录到docker实例的标准输出,docker,elasticsearch,logging,docker-compose,Docker,elasticsearch,Logging,Docker Compose,我正在尝试使用dockerhub上的普通docker容器在本地运行Elasticsearch(出于开发目的) 当我在本地运行实例时,我希望看到所有查询都转储到stdout/console,这样我就可以很容易地看到我的弹性SDK客户端创建/编写/执行了哪些查询 我在这个地方看到一些评论,建议可以通过定制各种设置来实现,比如: index.search.slowlog.threshold.query.debug: 0s index.search.slowlog.threshold.fetch.deb

我正在尝试使用dockerhub上的普通docker容器在本地运行Elasticsearch(出于开发目的)

当我在本地运行实例时,我希望看到所有查询都转储到stdout/console,这样我就可以很容易地看到我的弹性SDK客户端创建/编写/执行了哪些查询

我在这个地方看到一些评论,建议可以通过定制各种设置来实现,比如:

index.search.slowlog.threshold.query.debug: 0s
index.search.slowlog.threshold.fetch.debug: 0s
index.indexing.slowlog.threshold.index.debug: 0s
但我不知道如何通过docker compose做到这一点

我尝试了以下操作,但ES在启动时崩溃:

version: '3.5'

services:

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
    container_name: my-elasticsearch
    networks:
      - my-network
    ports:  
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node
      - index.indexing.slowlog.threshold.index.deb=0s
      - index.search.slowlog.threshold.fetch.debug=0s
      - index.search.slowlog.threshold.query.debug=0s
有办法吗?

对于低于5.X的Elasticsearch版本(这些是索引特定的设置,不推荐使用ES版本5.X) Elasticsearch.yml Docker-compose.yml内容 编辑:根据OPs评论

  • 您可以将elasticsearch.yml保存在localhost中的任何位置,但需要在“卷”部分下正确引用,最好将其保存在docker compose文件旁边,然后使用./这表示基于*nix的系统中的当前文件夹
  • 是的,需要使用此处给出的内容创建docker-compose.yml,并更改卷部分,以便使用本地文件中的
    elasticsearch.yml
    文件创建具有本地主机配置文件中提到的相同设置和配置的elasticsearch docker
  • 用于此compose文件中elasticsearch的Docker
    *nix
    ,因此无需更改卷中
    部分之后的卷部分,但在此之前它是本地主机文件系统,因此需要相应地更改它
  • 如果您遇到任何问题,请与我联系,并乐意提供进一步帮助。

    为版本等于或大于5.X添加另一个答案,
  • 这些是当前正在使用的主要版本
  • Elasticsearch 5.X中不推荐使用有问题的设置,在
    Elasticsearch.yml
    中使用这些设置会引发以下错误:
  • elasticsearch |{“类型”:“服务器”,“时间戳”: “2020-04-04T10:18:57720Z”,“级别”:“警告”,“组件”: “o.e.c.s.SettingsModule”、“cluster.name”:“ami es”、“node.name”: “e35893907d50”,“消息”: “\n************************************************************************************************************************************************************************************************\n节点级配置上的索引级别设置非常丰富。\n\n重要性” 无法在节点上设置elasticsearch 5.x索引级别设置 \n配置,如elasticsearch.yaml,在系统属性或 命令行\n要升级所有索引,请选择设置 必须通过\n/${index}/\u设置API更新。除非所有设置 如果是动态的,则必须关闭所有索引\n才能应用 将来创建的升级索引应使用索引模板\n 设置默认值。\n\n请确保更新了所有必需的值 在所有索引上执行:\n\ncurl-XPUT ''-d'{\n \“index.index.slowlog.threshold.index.debug\”:“0ms\”,\n \“index.search.slowlog.threshold.fetch.debug\”:“0ms\”,\n \“index.search.slowlog.threshold.query.debug\”: \“0ms\”\n}'\n*********************************************************************************************************************************************************************************************************************************************************************\n”}

    基本上是为了解决这个问题,而不是在
    elasticsearch.yml
    中提到它们,只需点击下面的API就可以了。

    放置http://{{hostname}}:{{es port}}/{{index name}}/\u设置

    {
        "index.indexing.slowlog.threshold.index.warn": "0s",
        "index.indexing.slowlog.threshold.index.info": "0s",
        "index.indexing.slowlog.threshold.index.debug": "0s",
        "index.indexing.slowlog.threshold.index.trace": "0s",
        "index.indexing.slowlog.level": "info",
        "index.indexing.slowlog.source": "1000"
    }
    

    谢谢你的回复。所以,让我弄清楚这一点,首先我需要1)创建一个
    elasticsearch.yml
    文件,并将其放置在本地主机的某个位置。2) 将
    docker compose.yml
    文件更改为上述格式。3) 更改
    部分,以便ES使用我的本地主机文件(在容器实例之外)作为配置。旁注:我在windows电脑上,所以我想音量必须不同。哦,对不起。。我忘了还要问。。。你能给我发一个我应该创建的
    elasticsearch.yml
    文件的快速示例吗?这实际上是一个包含这三个设置的空文件?@Pure.Krome,请给我一些时间,我会提供this@Pure.Krome,正如我承诺的那样,我提供了我的答案:),很抱歉耽搁了,但工作很忙,最后在周末抽出时间来处理,但涉及到复制问题,调试etcSo我必须使用API打开设置,而不是使用一些环境变量或启动设置?@Pure.Krome,是的,根据docker compose中的弹性版本,您需要打开这些设置,好消息是这些设置是动态的,因此您可以立即验证。非常感谢您接受答案:D,希望你也已经投了赞成票:p
    version: '2.2'
    
    services:
      #Elasticsearch Docker Images: https://www.docker.elastic.co/
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0
        container_name: elasticsearch
        environment:
          - xpack.security.enabled=false
          - discovery.type=single-node
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        cap_add:
          - IPC_LOCK
        volumes:
          - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
        ports:
          - 9200:9200
          - 9300:9300
    
    volumes:
      elasticsearch-data:
        driver: local
    
    {
        "index.indexing.slowlog.threshold.index.warn": "0s",
        "index.indexing.slowlog.threshold.index.info": "0s",
        "index.indexing.slowlog.threshold.index.debug": "0s",
        "index.indexing.slowlog.threshold.index.trace": "0s",
        "index.indexing.slowlog.level": "info",
        "index.indexing.slowlog.source": "1000"
    }