我有几台服务器,其中docker部署方法是docker-compose。
所有容器都只需登录到stdout / stderr,而docker logging驱动程序是默认的json-file
驱动程序。
是否有一种简单的方法来集中记录所有容器?
答案 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"]