docker - Filebeat监控容器内多个容器的日志

标签 docker logging logstash containers filebeat

我有一个问题,有没有办法传送日志文件位于容器内的每个容器的日志。实际上,当前流程将有助于发送位于默认路径(var/lib/docker/containers//.log)中的日志文件。我想自定义 filebeat.yaml 将日志从每个容器发送到logstash,而不是默认路径。

最佳答案

如果您可以将容器设置为记录到 stdout 而不是文件,则 filebeat 看起来有一个 autodiscover mode它将捕获每个容器的docker日志

ELK 世界中的另一个常见设置是在主机上配置 Logstash,并设置 Docker 的日志记录选项以将容器的 stdout 上的所有输出发送到 Logstash。这使得 docker log 无法工作,但所有日志输出都可以通过 Kibana 获得。

如果您的容器进程始终写入日志文件,您可以使用 docker run -v 选项或 Docker Composevolumes: 选项将主机目录挂载到单个容器的 /var/log 目录。然后日志文件将在主机上可见,您可以使用任何基于文件的收集器来捕获它们。这是例行更改的范围,需要您在使用不同选项启动现有容器之前停止并删除它们。

关于docker - Filebeat监控容器内多个容器的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195475/

相关文章:

ruby-on-rails - docker-compose 上的 Ruby on Rails

azure - 在azure中公开非http端点

docker - 错误 "The input device is not a TTY"

java - Log4j2 编程配置不滚动文件

python - 为什么我在构建 docker 镜像时遇到这个错误?

logging - 在服务器上部署 Shiny 应用程序时,如何将标准输出写入日志文件?

windows - 记录电源/电池事件

logstash - 为什么 Logstash 每次重新启动时都会导入相同的文件?

aggregate - Logstash与Collected集成

elasticsearch - Logstash:突变过滤器不起作用