kon*_*dor 10 logging logstash docker
假设我在容器(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
Run Code Online (Sandbox Code Playgroud)
Logspout似乎是一个优雅的解决方案,用于在logstash中发送容器的STDOUT(使用syslog输入配置)
input {
syslog {
type => syslog
port => 5514
}
}
Run Code Online (Sandbox Code Playgroud)
但logspout不知道通过STDOUT发送的日志格式(或者我错过了什么?)
所以我必须做以下事情:
input {
syslog {
type => nginx-access
port => 5514
}
}
Run Code Online (Sandbox Code Playgroud)
但那么nginx错误日志呢?如果我通过STDOUT发送php-fpm日志怎么办?logspout如何管理这个?
另一个解决方案是运行rsyslog来设置容器并将收集的日志发送到logstatsh的输入...
你可以看到它对我来说并不是很清楚...我希望能够将nginx和php-fpm日志发送到logstash,这样它们就可以被解释为它们是什么......但我找不到"良好做法"......
你能帮我吗
wom*_*ble 10
你现在可以用一点意大利风格的管道来做到这一点.
在较新版本的Docker中,有一个GELF输出驱动程序,您可以配置它来发送日志.由于logstash具有GELF输入插件,因此您可以配置logstash以接收相同的日志消息,并对它们执行一些有用的操作.
另一种选择,如果你愿意,以避免GELF翻译往返,是使用logspout-logstash,一个logstash输出插件logspout,读取日志条目,因为他们出来泊坞窗.
我刚刚注意到最新版本的 nginx 可以配置为记录到网络系统日志守护进程。
从 1.7.1 版本开始,可以记录到 syslog。
使用它,您可以在logstash中的专用UDP端口上配置系统日志输入过滤器,然后您就可以开始比赛了。
不幸的是,距离官方仓库的 v1.7.1 还很遥远。你在某个地方需要一个原木运输商。
您有许多日志托运商可供选择,并且Logstash Book 中有专门讨论该主题的免费章节。
| 归档时间: |
|
| 查看次数: |
6180 次 |
| 最近记录: |