配置如下:
output组件中,配置数据源和stdout。这样就可以输出运行日志。
但是,有时候我们还是无法看到日志。为什么呢?
output{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "test_%{+YYYY-MM-dd}"
user => "elastic"
password => "123456"
retry_on_conflict => 5
codec => plain { charset => "UTF-8" }
}
stdout { codec => rubydebug }
}
我们的启动命令:
nohup /data/core/logstash7/bin/logstash >/dev/null 2>&1 &
使用上面命令启动logstash
的啥时候,是无法在logstash-plain.log
文件中看到日志的。
其实,stdout日志本身就是不输出到logstash-plain.log
文件的。
stdout日志,是标准输出,我们现在用nohup命令后台启动程序
那么,就必须指定程序日志输出的文件位置。
上面这个命令,将日志重定向到/dev/null
这里,其实,就是丢弃日志。
所以,启动命令改一下:
nohup /data/core/logstash7/bin/logstash > /data/core/logstash7/log/default.out 2>&1 &
这样,就可以在/data/core/logstash7/log/default.out
这里看到全量日志了。
所以,这个问题本质是我们用法不对。