在牧场主上有问题的(logging)服务发现

我想从一个rancher服务(例如my_service )发送日志到另一个rancher服务运行ELK堆栈与syslog驱动程序

我通过docker-compose设置我的堆栈,如下所示:

  elk-custom: # image: elk-custom build: context: . dockerfile: Dockerfile-elk ports: - 5601:5601 - 9200:9200 - 5044:5044 - 5151:5151 - 5152:5152 my_service: image: some_image_from_my_local_registry depends_on: - elk-custom logging: driver: syslog options: syslog-address: "tcp://elk-custom:514" 

但是,在堆栈仪表板上,对于my_service我得到:

 my_service (Expected state running but got error: Error response from daemon: failed to initialize logging driver: dial tcp: lookup elk-custom on 10.0.2.3:53: server misbehaving) 

有什么额外的需要,使特定的日志logging( elk-custom )服务可发现?

有几件事情是有问题的。 首先,如果你正在构build,你必须使用git或HTTP远程url或基于s3的上下文。

请参阅文档: http : //rancher.com/docs/rancher/v1.6/en/cattle/rancher-compose/#builds

通常,您将构build映像并将其作为服务进行部署。 构build更多的是一个发展,less用在事物的生产方面。

接下来的事情是,在多主机设置中,您将在Ranchernetworking上路由时遇到问题。 我build议在主机联网模式下在所有具有syslog入口的节点上部署Logstash收集器。 然后,您可以将日志logging驱动程序指向本地主机syslog目标。 每个logstash收集器然后将转发到另一个logstash进行过滤或Elastic cluster。