You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logstash:如何在Docker Compose中指定备用配置目录

Logstash 7.16.3 Docker Compose中PATH_SETTINGS环境变量无效的解决方法

问题原因

Logstash官方Docker镜像的启动脚本仅处理部分配置项的环境变量映射(比如path.logs对应PATH_LOGS、log.format对应LOG_FORMAT),但path.settings这类核心配置项并未被纳入环境变量覆盖逻辑,所以直接设置PATH_SETTINGS或PATH.SETTINGS都不会生效。

可行解决方案

方案一:通过启动命令指定--path.settings

直接在Docker Compose的command字段中传递Logstash的命令行参数,这是官方推荐的指定配置目录的方式,优先级最高。

示例配置:

version: '3.8'
services:
  logstash:
    image: docker.elastic.co/logstash/logstash:7.16.3
    environment:
      - PATH_LOGS=/custom/logs
      - LOG_FORMAT=json
    command: logstash --path.settings /custom/settings
    volumes:
      # 挂载包含自定义pipelines.yml的目录到容器内指定路径
      - ./your-local-settings-dir:/custom/settings
      # 挂载日志目录(对应PATH_LOGS)
      - ./your-local-logs-dir:/custom/logs

方案二:挂载自定义logstash.yml配置文件

如果不想修改启动命令,可以挂载自己的logstash.yml,在文件中显式设置path.settings指向目标目录。

示例配置:

version: '3.8'
services:
  logstash:
    image: docker.elastic.co/logstash/logstash:7.16.3
    environment:
      - PATH_LOGS=/custom/logs
      - LOG_FORMAT=json
    volumes:
      # 挂载自定义logstash.yml,替换容器默认配置
      - ./your-logstash.yml:/usr/share/logstash/config/logstash.yml
      # 挂载包含pipelines.yml的自定义配置目录
      - ./your-local-settings-dir:/custom/settings
      - ./your-local-logs-dir:/custom/logs

注意:自定义logstash.yml中需添加如下配置:

path.settings: /custom/settings

可以从容器内默认的/usr/share/logstash/config/logstash.yml复制基础配置后再修改该字段。

内容的提问来源于stack exchange,提问作者Stude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:02:07