当前位置: 首页 > 知识库问答 >
问题:

如何利用Docker和Compose提供的弹性堆栈(ELK)在logstash中运行多个流水线

阎知
2023-03-14

我正在使用this_repo开始使用Docker运行ELK。

我的问题是关于docker-compose文件中的logstash映像:

当我在本地运行时,我有3个文件

#general settings
logstash.yml
#pipeline setting
pipeline.yml
#a pipe line configuration
myconf.conf1
# Example of my pipeline.yml
- pipeline.id: my-first-pipeline
  path.config: "/etc/logstash/my-first-pipeline.config"
  pipeline.workers: 2
- pipeline.id: super-swell-pipeline
  path.config: "/etc/logstash/super-swell-pipeline.config"
  queue.type: persisted
  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        #can be either a host path or volume name.
        source: ./logstash/pipeline
        #is the container path where the volume is mounted
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

DockerFile:

ARG ELK_VERSION

# https://www.docker.elastic.co/
FROM docker.elastic.co/logstash/logstash:${ELK_VERSION}

# Add your logstash plugins setup here
# Example: RUN logstash-plugin install logstash-filter-json

logstash.yml

## Default Logstash configuration from Logstash base image.
## https://github.com/elastic/logstash/blob/master/docker/data/logstash/config/logstash-full.yml
#
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]

## X-Pack security credentials
#
xpack.monitoring.enabled: false
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changeme

共有1个答案

鞠通
2023-03-14

您还需要将pipelines.yml文件挂载到容器中。Logstash查找可能的pipelines.yml文件的默认位置是/usr/share/Logstash/config/(与您已经将Logstash.yml文件挂载到的文件夹相同)。

请注意,您还必须将当前的本地pipelines.yml文件更新为容器内管道的正确路径。准确地说,你需要改变

path.config:“/etc/logstash/my-first-pipeline.config”

另外,请查看这些关于使用Docker运行Logstash以及如何配置多个管道的官方指南:

>

  • https://www.elastic.co/guide/en/logstash/current/docker-config.html#docker-config

    https://www.elastic.co/guide/en/logstash/current/multiplelines.html

  •  类似资料:
    • 我已经有一个stack类在工作,但是现在我每次只能弹出一个元素,我希望能够同时弹出多个元素。无需多次使用推送和弹出。我试图创建两个函数来实现这一点。函数pushAll和popN。比如: 备注:输入参数all是一个数组,包含所有必须输入的元素。向量的最后一个元素必须在叠加后位于顶部。如果没有空间插入所有元素,则必须不插入任何元素,并且必须引发StackFullException异常。popN方法弹出

    • 问题内容: 我正在使用在3个不同的docker上运行的应用程序: 第一个是可通过REST API调用的服务器HTTP 第二个是rabbitmq 第三个是工人 整个应用程序使用 真的很简单:) 我想使其具有可伸缩性,并且独立于其他应用程序运行整个应用程序的多个实例(3个docker映像),然后放置一个负载平衡器,例如它将重定向到其中一个应用程序。 我看到我可以使用它,但是问题是可以缩放容器,但是我真

    • 问题: 如何设置日志塔什ELK堆栈的多个http输入 我已经拥有的: <李>工作麋鹿码头工人形象基于:https://github.com/deviantony/docker-elk < li >工作日志存储-输入-http-插件基于:https://www . elastic . co/blog/introducing-log stash-input-http-plugin < li >我的lo

    • 我对麋鹿栈没有太多的经验,我基本上只知道基础。 某些东西,即filebeat获取数据并将其发送到logstash Logstash 处理它并发送它 弹性搜索 Kibana 使用弹性搜索来可视化数据 (我希望这是正确的) 我需要创建一个elk系统,其中来自三个不同项目的数据被传递、存储和可视化。 项目号1。使用MongoDB,我需要将1个表中的所有信息放入kibana 项目2.也使用MongoDB,

    • 问题内容: 在使用以下方式部署此撰写文件的堆栈时: 生成的服务名称将为 myapp_service-name 我希望它由 my-custom-service-name 命名和引用 __ 问题答案: 对于服务之间的通信,如果两个服务都在同一网络中,则可以使用在撰写文件中定义的serviceName(在您的情况下,您的服务名称为service-name)。 完成后,堆栈名称将显示在每个服务之前。这样做

    • 但是如果使用docker compose作为下一个和docker-compose up,我们可以看到找不到容器,从我们可以看到它退出了。 问题:如何使用docker Compose实现?