2017-09-27 120 views
0

我想從一個rancher服務(如my_service)日誌發送到另一個rancher服務與syslog司機有問題的(記錄)服務的牧場主

我通過docker-compose爲建立我的堆棧運行ELK堆棧發現如下或多或少:

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) 

是否還需要其他任何東西才能使特定的日誌記錄(elk-custom)服務可被發現?

+0

假設堆棧名稱爲'ELK',請嘗試'ELK.elk-custom'或'elk-custom.ELK' –

+0

,你的意思是在'syslog-address'字段中。 'syslog-address:「tcp://ELK.elk-custom:5151」'? – pkaramol

+0

嘗試了上述,現在變得'沒有這樣的主機' – pkaramol

回答

0

有些事情發生在那裏有問題。首先,如果您正在構建,則必須使用git或HTTP遠程URL或基於s3的上下文。

請參閱文檔:http://rancher.com/docs/rancher/v1.6/en/cattle/rancher-compose/#builds

通常情況下,建立一個圖像,並將其部署爲服務。構建更像是一個開發項目,不太用於事物的生產方面。

接下來就是在多主機設置中,您將在Rancher網絡上路由時遇到問題。我建議在主機聯網模式下在所有具有syslog入口的節點上部署Logstash收集器。然後您可以將日誌記錄驅動程序指向本地主機syslog目標。每個logstash收集器都會轉發到另一個logstash進行過濾或Elastic cluster。