docker - 无法通过gelf驱动程序将docker容器连接到logstash

标签 docker logstash docker-compose elastic-stack gelf

大家好,我在将服务器容器日志发送到 ELK 堆栈时遇到问题。没有输入发送到logstash,因此我无法设置用于收集日志的kibana 索引。我认为我的问题出在端口设置上。

这是 LAMP 堆栈的 docker-compose yml(仅服务器服务):

version: '3'

services:
  server:
    build: ./docker/apache
    links:
      - fpm
    ports:
      - 80:80 # HTTP
      - 443:443 # HTTPS
    logging:
      driver: "gelf"
      options:
        gelf-address: "udp://127.0.0.1:5000"
        tag: "server"

这是 ELK 堆栈的 docker-compose yml,基于 deviantony/docker-elk github project

version: '2'

services:

  elasticsearch:
    build: elasticsearch/
    volumes:
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk

  logstash:
    build: logstash/
    volumes:
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    ports:
      - "5000:5000"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    build: kibana/
    volumes:
      - ./kibana/config/:/usr/share/kibana/config
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:

  elk:
    driver: bridge

最佳答案

我发现错误了,我必须在logstash服务端口定义中指定UDP协议(protocol)。

logstash:
  build: logstash/
  volumes:
    - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
    - ./logstash/pipeline:/usr/share/logstash/pipeline
  ports:
    - "5000:5000/udp"
  environment:
    LS_JAVA_OPTS: "-Xmx256m -Xms256m"
  networks:
    - elk
  depends_on:
    - elasticsearch

关于docker - 无法通过gelf驱动程序将docker容器连接到logstash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050803/

相关文章:

linux - 错误 : Expected one of#, input, filter, output at line 34, column 1 (byte 1) after {:level=>:error} in logstash

mysql - 如何连接Mysql和logstash?

elasticsearch - "Mapping conflict!"Kibana 错误

docker - 如何使用域名连接到Docker容器

docker - 谷歌容器注册 golang moby 身份验证

apache - 如何将 Apache 日志重定向到 STDOUT 和 Apache 日志文件

docker - 在 gitlab 管道中安装私有(private) npm 包

docker - 无法使用前端dockerfile.v0解决:无法构建LLB:执行程序失败

postgresql - docker 中的 pg_dump 服务器和 pg_dump 版本不匹配

Docker-compose 异常