我的logstash输出定向到名为apache.log的文件。 这个文件需要每小时生成一次。
例如:apache-2018-04-16-10:00.log或类似的内容。
这是我的配置文件:
# INPUT HERE
input {
beats {
port => 5044
}
}
# FILTER HERE
filter {
if [source]=="/var/log/apache2/error.log"
{
mutate {
remove_tag => [ "beats_input_codec_plain_applied" ]
add_tag => [ "apache_logs" ]
}
}
if [source]=="/var/log/apache2/access.log"
{
mutate {
remove_tag => [ "beats_input_codec_plain_applied" ]
add_tag => [ "apache_logs" ]
}
}
}
# OUTPUT HERE
output {
if "apache_logs" in [tags] {
file {
path => "/home/ubuntu/apache/apache-%{+yyyy-mm-dd}.log"
codec => "json"
}
}
}
请帮忙解决。
答案 0 :(得分:0)
从joda-time文档(http://www.joda.org/joda-time/key_format.html)开始,您有H hour of day (0~23)
。因此输出配置可以解决您的问题:
output {
if "apache_logs" in [tags] {
file {
path => "/home/ubuntu/apache/apache-%{+yyyy-mm-dd-HH}.log"
codec => "json"
}
}
}