Guys, my logstash configuration has multiply outputs, like this:
input{
syslog {
port => 514
}
}
output{
tcp {
host => "192.168.1.1"
port => 1517
codec => line { format => "%{message}" }
}
file {
path => "/log/fwhw/%{+yyyyMMdd}/%{host}/%{+HH}.log"
codec => line { format => "%{message}" }
}
}
My question is, if #1 tcp output is failed, for example, the machine is shutdown, is it possible to let #2 output continue to work? I ask this question because I found it seems, when the first tcpout failed , the second file output also doesn't work.
Logstash tried to ensure no data is lost, so will stop processing if any output fails so this is expected. What do you expect to happen when an output fails?
In my case, because the input is udp syslog, so if logstash stoped, i will lose more...
If I can choose, i perfer to ignore one of the output failure. for example, if tcp output is failed, then the syslog log will still write into log files.
If you can only need to handle temporary failures configuring s persistent queue can allow Logstash to buffer data. For longer outages it is more difficult and you may need to setup multiple pipelines with persistent queues or add some type of external buffering.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.