2015-07-20 428 views
0

正在爲Logstash創建Docker圖像進行實驗,該圖像與自定義http進行交互。想知道如何設置Logstash將從中讀取的日誌位置的物流。 Logstash進程在EC2上運行,並將使用基於文件的輸入從Apache,HAProxy,Jboss應用程序讀取。 非常感謝,如果任何人都可以投入更多的光線。爲Docker Logstash設置日誌位置

回答

7

由Apache,HAProxy,Jboss和其他任何你想用你的Logstash Docker容器生成的日誌文件應該放在它們通常所在的位置,並且在docker run命令中特別引用。您獲得:

  1. 無需更改您當前的服務配置。
  2. 無需記住/查找主機上的日誌文件,以防出現問題,並且您需要直接訪問文件本身。他們將在你習慣的同一個地方。

您需要做的是將日誌文件從它們所在的位置映射到運行的docker容器。你可以這樣做到容器內的同一個目錄,或者分開目錄,這取決於你。如果您沒有任何文件名衝突,我會將所有文件映射到容器內的相同目錄。一個例子是這樣的:

docker run -v /var/log/haproxy/error.log:/host/logs/haproxy_error.log \ 
      -v /var/log/httpd/access_log:/host/logs/apache_access.log \ 
      -v /var/log/some_other_log.log:/host/logs/some_other_log.log \ 
my-logstash-docker-image:latest 

你將不得不確保泊塢窗容器內的Logstash配置查找文件在以下位置:

  • /主機/日誌/ haproxy_error的.log
  • /host/logs/apache_access.log
  • /host/logs/some_other_log.log

您可以查看我如何爲Docker映像的Logz.io log shipper映射執行類似操作。

+0

太棒了,謝謝! –