1

我正在尝试将docker-compose文件配置为使用 fluent-bit。在我的docker-compose文件中,我有以下 fluentbit 配置

fluentbit:
    image: fluent/fluent-bit:1.0.4
    command: /fluent-bit/bin/fluent-bit -c /fluent-bit/etc/fluent-bit.conf
    volumes:
      - ./docker_to_es.conf:/fluent-bit/etc/fluent-bit.conf
    networks:
      - monitor

我使用它运行它docker-compose up,一切看起来都很好。为了测试,我执行以下操作:

docker run --network=monitor --log-driver=fluentd --log-opt fluentd-address=192.168.XX.XX:24224 -t ubuntu echo "test logging"

测试成功,但我必须查找容器的 fluentd-address。在docker-compose文件中,我将无法以这种方式输入地址。

docker compose文件中,我添加了另一个服务。

my-service
  logging:
    driver: fluentd
    options:
      fluentd-address: fluentbit:24224
  networks:
    - monitor

我在这里使用 fluentbit 服务的名称作为hostname. 但这不起作用。

有谁知道如何让我的服务将日志推送到 fluentbit 中?

fluent_bit.conf文件

[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    debug

[INPUT]
    Name      forward
    Listen    fluentbit
    Port      24224

[OUTPUT]
    Name  es
    Match *
    Host  elasticsearch
    Port  9200
    Index fluentbit
    Type  docker
4

1 回答 1

2

Docker 日志在主机网络中工作,但是您在内部监控网络中运行 fluentbit ...您需要从 fluentbit 到主机进行端口转发并将日志驱动程序配置到 localhost,或者在 net_mode 中运行 fluentbit:主机

于 2019-09-20T07:33:54.270 回答