【问题标题】:Where do docker logs go when splunk server is not reachable无法访问 splunk 服务器时 docker 日志在哪里
【发布时间】:2017-12-06 10:07:18
【问题描述】:

我正在尝试从正在运行的 docker 容器中获取 docker 日志。我已在 docker compose 中将 splunk 配置为日志记录驱动程序,并且我知道如果无法访问 splunk 服务器,则容器将无法启动。

  proxysecurity:
    image: test/image
    network_mode: host
    depends_on:
      - zookeeper
    ports:
      - '8083:8083'
    logging:
      driver: "splunk"
      options:
         splunk-url: "http://XX.X2.X3.X1:XXX7/"
         splunk-token: "XXXXX5-9CA1-44B8-B9E8-2XXX25"
         splunk-format: json
         tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"
    environment:
      XXXCONNECT: localhost:32181
      XXXXXRS: http://localhost:8083

现在,如果容器启动并运行时无法访问 splunk 服务器,是否有任何后备机制可以让 docker 容器在本地登录? 或者有什么方法可以记录到 splunk 以及本地容器内?

【问题讨论】:

    标签: docker splunk


    【解决方案1】:

    我是 Splunk 日志记录驱动程序的作者。

    如果 Splunk 不可用,驱动程序会在内存中保留小缓冲区并不断重试。缓冲区大小的配置记录在案,没有驱动程序的官方文档https://docs.docker.com/engine/admin/logging/splunk/

    SPLUNK_LOGGING_DRIVER_BUFFER_MAX If driver cannot connect to remote server, what is the maximum amount of messages it can hold in buffer for retries.

    不幸的是,这并不理想,考虑到这个缓冲区可以很快被填满,并且将缓冲区增加到更大的数字会影响您的容器。但这是大多数驱动程序的编写方式。

    我已经构建了另一个向 Splunk 提供日志和指标的解决方案。该解决方案包括带有收集器和Splunk Certified Application 的小图像。它建立在json-file 驱动程序之上,这意味着当 Splunk 不可用时,它将继续从日志文件的位置重试。日志文件可以有自己的轮换设置,可以使用dockerd daemon configuration 进行配置。您可以阅读我们的解决方案Comparing with Splunk Logging Driver 的另一个好处。以及如何开始使用Monitoring Docker

    【讨论】:

      猜你喜欢
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2021-04-10
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      相关资源
      最近更新 更多