You need to enable JavaScript to run this app. 基于docker-elk部署的Logstash发PUT请求返回404如何解决
优惠活动
大模型
产品
解决方案
定价
更多

基于docker-elk部署的Logstash发PUT请求返回404如何解决

Logstash HTTP输入404问题修复方案

核心原因定位

从容器运行日志可直接提取两个关键事实:

  • 9600端口是Logstash内置的状态监控API端口,仅提供自身运行状态查询接口,不承载业务数据输入路由,对非监控类的PUT提交请求会直接返回404。
  • 配置的HTTP输入插件默认监听容器内8080端口,当前docker-compose配置未将该端口映射到宿主机,外部请求无法触达输入服务。

操作步骤

  • 修改docker-compose.yml中Logstash的端口映射段,新增8080端口映射:
    # 调整后的ports配置
    ports:
      - "5044:5044"
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
      - "8080:8080"
    
  • 重启Logstash使配置生效,执行命令:
    docker-compose up -d logstash
  • 校验服务启动状态,执行命令确认HTTP输入服务正常监听:
    docker-compose logs logstash | grep "http input listener"
    正常输出会显示8080端口的监听启动日志。
  • 发送测试请求:使用Postman向http://<服务部署地址>:8080发送PUT请求,请求体携带JSON格式测试数据,例如:
    {"message": "test output to stdout"}
    
  • 验证输出结果:执行docker-compose logs -f logstash,即可在标准输出中看到提交的测试消息。

补充说明

  • 9600端口保留原有配置即可:该端口的监控接口功能是Logstash内置逻辑,不要用于业务数据传输。
  • 如需自定义HTTP输入端口,可在logstash.conf的http配置块中新增port => 自定义端口参数,再在docker-compose中映射对应端口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 05:24:08