当无法访问splunk服务器时,docker日志在何处运行

时间:2017-12-06 10:07:18

标签: docker splunk

我试图从正在运行的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以及本地内部容器?

1 个答案:

答案 0 :(得分:3)

我是Splunk Logging Driver的作者。

如果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