【发布时间】:2015-05-05 07:18:01
【问题描述】:
假设我在容器 (docker) 中运行 Nginx。
访问日志和错误日志通过 STDOUT 发送,在 Dockerfile 中:
# 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,以便它们可以被解释为它们是什么......但我不知道找到一个“好的做法”...
你能帮帮我吗
【问题讨论】: