簡體   English   中英

使用 Gelf 將 Docker 日志發送到本地安裝的 ELK 的配置

[英]Configuration for sending Docker logs to a locally installed ELK using Gelf

我將我的 ELK 部署在一個 ec2 實例上,並在另一個實例上運行了一個 dockerized 應用程序。 我正在嘗試使用 gelf 來收集不同的服務日志並發送到 logstash。 但是我當前的配置不起作用。

這是我的 docker.yaml 文件和我的 logstash conf 文件。 對於gelf address ,我使用了我運行 logstash 的實例的私有 ip - 在這個用例中我應該使用什么? 我錯過了什么?

version: '3'
services:
  app:
    build: .
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    links:
      - redis:redis
    depends_on:
      - redis
    logging:
      driver: gelf
      options:
        gelf-address: "udp://10.0.1.98:12201"
        tag: "dockerlogs"
  redis:
    image: "redis:alpine"
    expose:
      - "6379"
    logging:
      driver: gelf
      options:
        gelf-address: "udp://10.0.1.98:12201"
        tag: "redislogs"

這是我的 logstash conf:

input {
  beats {
    port => 5044
  }
  gelf {
    port:12201
    type=> "dockerLogs"
  }
}
output {
  elasticsearch {
    hosts => ["${ELK_IP}:9200"]
    index =>"logs-%{+YYYY.MM.dd}"
  }
}

驗證一次docker的版本,檢查語法是否正確。

Docker通過host's.network解析gelf地址所以地址需要是服務器的外部地址。

為什么不直接寫入 elasticsearch,因為您只發送應用程序日志而不使用 logstash 過濾器的好處?

另請參閱: 將 docker-compose 與 GELF 日志驅動程序一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM