热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将docker容器日志发送到logstash的最佳方法

如何解决《将docker容器日志发送到logstash的最佳方法》经验,为你挑选了1个好方法。

假设我在容器(docker)中运行Nginx.
访问日志和错误日志通过Dockerfile中的STDOUT发送:

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log
RUN ln -sf /dev/stderr /var/log/nginx/error.log

Logspout似乎是一个优雅的解决方案,用于在logstash中发送容器的STDOUT(使用syslog输入配置)

input {
    syslog {
        type => syslog
        port => 5514
    }
}

但logspout不知道通过STDOUT发送的日志格式(或者我错过了什么?)

所以我必须做以下事情:

input {
    syslog {
        type => nginx-access
        port => 5514
    }
}

但那么nginx错误日志呢?如果我通过STDOUT发送php-fpm日志怎么办?logspout如何管理这个?

另一个解决方案是运行rsyslog来设置容器并将收集的日志发送到logstatsh的输入...

你可以看到它对我来说并不是很清楚...我希望能够将nginx和php-fpm日志发送到logstash,这样它们就可以被解释为它们是什么......但我找不到"良好做法"......

你能帮我吗



1> womble..:

你现在可以用一点意大利风格的管道来做到这一点.

在较新版本的Docker中,有一个GELF输出驱动程序,您可以配置它来发送日志.由于logstash具有GELF输入插件,因此您可以配置logstash以接收相同的日志消息,并对它们执行一些有用的操作.

另一种选择,如果你愿意,以避免GELF翻译往返,是使用logspout-logstash,一个logstash输出插件logspout,读取日志条目,因为他们出来泊坞窗.


推荐阅读
author-avatar
xiaojin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有