Logstash输出csv特定的行



我有一个问题,一直困扰我在粘贴几天,我和我已经尝试了不同的方法,但似乎没有工作。

我试图写一些syslog输出在我的本地磁盘上的css文件。因此,在文档之后,我设置了这个输出:

output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash_index"
}
stdout {
codec => rubydebug
}
csv {
path => "path-to-filesyslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}

这工作得很好,即使它为每个syslog条目生成报头,但现在不是什么大问题。我在这里真正想要实现的是,我不希望将allsyslog写入css,而只希望将其写入特定行。

这里有一个例子来说明。

假设我有这个数据结构

timestamp.   message     id.      count
13.05.       hello 1.    01.        2
10.05        hello 2.    02.     
13.05.       hello 3.    03.  

在我的本地css文件中,我想保存only包含计数字段的行,如果count为空,将被忽略而不保存。

谁能帮我了解一下解决这个问题的最佳方法是什么?因为现在,输出保存了所有的长值,如果可能的话,我希望节省硬盘空间

非常感谢大家

可以在输出部分使用条件语句…

if [count] {
csv {
path => "path-to-filesyslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}

相关内容

  • 没有找到相关文章

最新更新