我有一个场景,nginx
在一个容器中运行而fluentd
在另一个容器中,我将nginx
日志映射到var/logs/nginx
目录,但我无法使用fluentd
将日志检索到弹性搜索,请帮我解决此问题:
fluentd.conf
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<source>
@type tail
path /var/log/nginx/access_in_log
#pos_file /var/log/td-agent/nginx-access.log.pos
tag nginx.access
format nginx
</source>
<match nginx.access>
@type elasticsearch
logstash_format true
host elasticsearchkibana
port 9200
index_name nginxindex
type_name nginxlogtype
</match>
请让我知道我错过了什么。
答案 0 :(得分:1)
我使用nginx syslog驱动程序(http://nginx.org/en/docs/syslog.html)解决了这个问题。
在我的nginx.conf
内部的nginx容器中,我有以下设置:
http {
...
access_log syslog:server=<FLUENTD_HOST>:<FLUENTD_PORT>,tag=nginx_access;
error_log syslog:server=<FLUENTD_HOST>:<FLUENTD_PORT>,tag=nginx_error info;
在我的Fluentd容器中的fluent.conf
我有这个配置:
<source>
@type syslog
port 5141
tag "syslog"
</source>
日志看起来像这样: