Docker-使用多台计算机和日志驱动程序json文件进行集中式日志记录的最简单方法?

时间:2019-06-21 10:44:18

标签: docker logging docker-compose

我有几台服务器,其中docker部署方法是docker-compose。

所有容器都只需登录到stdout / stderr,而docker logging驱动程序是默认的json-file驱动程序。

是否有一种简单的方法来集中记录所有容器?

1 个答案:

答案 0 :(得分:1)

告诉您如何设置完整的基础架构会有些困难且冗长。

这些是维护或从Docker容器获取日志的一些方法。对于弹性搜索,您可以通过Kibana进行一些搜索,以轻松了解如何设置。

Docker日志输出到JSON文件。因此,如果您的Docker环境较小,则可以使用Filebeat收集日志。但是,您也可以考虑使用其他方法。还有很多其他人

文件拍子

Filebeat属于Elastic的Beats日志传送者家族。 Filebeat用Go语言编写,是一种轻量级的托运人,可以跟踪特定文件,支持加密,并且可以配置为导出到Logstash容器或直接导出到Elasticsearch。

至少,您的Filebeat配置将需要指定JSON日志文件的路径(位于/ var / lib / docker / containers /…)以及目标的详细信息(通常是Logstash容器)。 / p>

示例配置:

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"]