【问题标题】:Log management on DockerDocker 上的日志管理
【发布时间】:2017-04-07 12:21:34
【问题描述】:

我想将标准输出日志从 Docker 容器发送到 fluentd。 但是,当一个容器输出访问日志和错误日志时,日志是混合的。

例子

# rails access log
2017-04-07 12:10:01 +0000 6a51e389e724: {"log":"I, [2017-04-07T12:10:01.825923 #7]  INFO -- : Started GET \"/users/new\" for 172.21.0.1 at 2017-04-07 12:10:01 +0000","container_id":"6a51e389e724c67be4e714402b69da192db4a304cbfdf638594de6cff9774c23","container_name":"/app","source":"stdout"}

# rails error log
2017-04-07 12:10:01 +0000 6a51e389e724: {"container_id":"6a51e389e724c67be4e714402b69da192db4a304cbfdf638594de6cff9774c23","container_name":"/app","source":"stdout","log":"E, [2017-04-07T12:10:01.830039 #7] ERROR -- : Invoke logger error"}

# rails access log
2017-04-07 12:10:03 +0000 6a51e389e724: {"log":"I, [2017-04-07T12:10:01.825923 #7]  INFO -- : Started POST \"/users/create\" for 172.21.0.1 at 2017-04-07 12:10:01 +0000","container_id":"6a51e389e724c67be4e714402b69da192db4a304cbfdf638594de6cff9774c23","container_name":"/app","source":"stdout"}

我可以为每种日志类型添加标签吗? 请告诉我您是否有好的解决方案。

谢谢你和最好的问候。

【问题讨论】:

    标签: docker fluent


    【解决方案1】:

    由于您的应用程序的访问和错误日​​志被发送到容器的 STDOUT,因此您无法通过记录驱动程序将它们分开。作为解决方案,您可以将访问日志发送到 STDOUT,将错误日志发送到容器的 STDERR,然后通过每个 json 消息的“源”字段区分日志(如果您将 fluentd 连接到 elasticsearch+kibana,则可以这样做)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多