【发布时间】:2016-08-19 03:26:33
【问题描述】:
我正在使用 LogStash,它接受来自日志文件的数据,该文件具有不同类型的日志。
第一行表示自定义日志,第二行表示 JSON 格式的日志。
现在,我想编写一个过滤器,它将根据内容解析日志,最后将所有 JSON 格式的日志定向到一个名为 jsonformat.log 的文件中,并将其他日志定向到一个单独的文件中。
【问题讨论】:
标签: json logstash logstash-configuration
我正在使用 LogStash,它接受来自日志文件的数据,该文件具有不同类型的日志。
第一行表示自定义日志,第二行表示 JSON 格式的日志。
现在,我想编写一个过滤器,它将根据内容解析日志,最后将所有 JSON 格式的日志定向到一个名为 jsonformat.log 的文件中,并将其他日志定向到一个单独的文件中。
【问题讨论】:
标签: json logstash logstash-configuration
您可以利用json 过滤器并检查它是否失败来决定将事件发送到哪里。
input {
file {
path => "/Users/mysystem/Desktop/abc.log"
start_position => beginning
ignore_older => 0
}
}
filter {
json {
source => "message"
}
}
output {
# this condition will be true if the log line is not valid JSON
if "_jsonparsefailure" in [tags] {
file {
path => "/Users/mysystem/Desktop/nonjson.log"
}
}
# this condition will be true if the log line is valid JSON
else {
file {
path => "/Users/mysystem/Desktop/jsonformat.log"
}
}
}
【讨论】:
abc.log 文件中添加新行,或者在文件输入中添加sincedb_path => "/dev/null"。