版权声明:本文为博主yellowcong原创文章,未经博主允许不得转载。 https://blog.csdn.net/yelllowcong/article/details/80847718
将多个文件集合到一起,输出出来,但是这个地方有个问题,这个文件输出后,输出的自定义文件,只能输出到动态的文件夹,但是文件名可以是
%{+yyyy-MM-dd-HH}
这种格式,也可以是/path/to/%{+yyyy}/%{+MM}/%{+dd-HH}-%{host}.log
这种格式,需要注意的是,日期匹配,都需要加上+
。这个地方还支持gzip的,没有实验,更多可以查看官网https://www.elastic.co/guide/en/logstash/current/plugins-outputs-file.html
配置文件
input{
file {
path => "/usr/local/log_test/*.log"
start_position => "beginning"
}
}
output {
file {
path => "/path/to/%{+yyyy-MM-dd-HH}/%{host}.log"
}
stdout {
codec => rubydebug
}
}
可以看到日志输出到了/path/to/
的目录下了
可以看到输出的日志格式是json数据的
日志格式输出
这种格式输出的时候,%{message}
的数据必须是json的数据,不然输出不了
input{
file {
path => "/usr/local/log_test/*.log"
start_position => "beginning"
}
}
output {
file {
path => "/path/to/%{+yyyy}/%{+MM}/%{+dd-HH}-%{host}.log"
codec => line { format => "custom format: %{message}"}
}
stdout {
codec => rubydebug
}
}
输出结果
可以看到自定义的json数据输出到了目标上了。
参考文章
https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/output/file.html
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-file.html