Docker - Самый простой способ иметь централизованное ведение журнала с несколькими компьютерами и драйвером json-файла? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть несколько серверов, где метод развертывания докера - docker-compose.

Все контейнеры просто регистрируются в stdout / stderr, и драйвер ведения журнала докера является драйвером json-file по умолчанию.

Есть ли простой способ централизованно регистрировать все контейнеры?

1 Ответ

1 голос
/ 21 июня 2019

Рассказать, как настроить полную инфраструктуру, будет немного сложно и долго.

Вот некоторые из способов ведения или получения журналов из контейнера Docker. Для упругого поиска, Kibana вы можете сделать поиск, который вы легко узнаете, как настроить.

Журналы Docker выводятся в файл JSON. Итак, если у вас небольшая среда Docker, вы можете использовать Filebeat для сбора логов. Однако вы также можете рассмотреть другой метод. Есть также много других

Filebeat

Filebeat принадлежит семейству Beats от Elastic. Filebeat, написанный на Go, - это легкий грузоотправитель, который отслеживает определенные файлы, поддерживает шифрование и может быть настроен для экспорта в ваш контейнер Logstash или напрямую в Elasticsearch.

Как минимум, вашей конфигурации Filebeat нужно будет указать путь к файлу журнала JSON (находится в / var / lib / docker / container /…) и сведения о месте назначения (обычно это контейнер Logstash).

Пример конфигурации:

prospectors:     
 - paths:        
   - /var/log/containers/<xxx>          
   document_type: syslog     
output:
 logstash:  
  enabled: true  
  hosts:   
      - elk:5044

Некоторые другие способы:

Использование драйвера журнала или Использование Logspout или logzio

Кроме того, настройте файл конфигурации filebeat для отправки журналов в logstash. для этого отредактируйте файл /etc/filebeat/filebeat.yml

# — — — — — — — — — — Logstash output — — — — — — — — — —
output.logstash:
# The Logstash hosts
hosts: ["192.168.xx.xx:5044"]
...