Logstash 输出 csv 特定行
Logstash output csv specific rows
我有一个问题在过去几天一直困扰着我,我和我尝试了不同的方法,但似乎没有任何效果。
我正在尝试在本地磁盘上的 css 文件中写入一些系统日志输出。所以按照文档我设置了这个输出:
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash_index"
}
stdout {
codec => rubydebug
}
csv {
path => "path-to-file\syslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}
这工作得很好,即使它为每个系统日志条目生成 headers,但现在不是什么大问题。我真正想在这里实现的是,我不希望 all
将系统日志写入 css,而只希望写入特定行。
这里举个例子来说明。
假设我有这个数据结构
timestamp. message id. count
13.05. hello 1. 01. 2
10.05 hello 2. 02.
13.05. hello 3. 03.
在我的本地 css 文件中,我想保存 only
包含计数字段的行,如果 count
为空,则忽略不保存。
谁能帮助我了解解决此问题的最佳方法是什么?因为现在,输出保存了所有的 long,如果可能的话,我想在我的硬盘上保存 space
非常感谢你们
您可以在输出部分使用条件...
if [count] {
csv {
path => "path-to-file\syslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}
我有一个问题在过去几天一直困扰着我,我和我尝试了不同的方法,但似乎没有任何效果。
我正在尝试在本地磁盘上的 css 文件中写入一些系统日志输出。所以按照文档我设置了这个输出:
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash_index"
}
stdout {
codec => rubydebug
}
csv {
path => "path-to-file\syslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}
这工作得很好,即使它为每个系统日志条目生成 headers,但现在不是什么大问题。我真正想在这里实现的是,我不希望 all
将系统日志写入 css,而只希望写入特定行。
这里举个例子来说明。
假设我有这个数据结构
timestamp. message id. count
13.05. hello 1. 01. 2
10.05 hello 2. 02.
13.05. hello 3. 03.
在我的本地 css 文件中,我想保存 only
包含计数字段的行,如果 count
为空,则忽略不保存。
谁能帮助我了解解决此问题的最佳方法是什么?因为现在,输出保存了所有的 long,如果可能的话,我想在我的硬盘上保存 space
非常感谢你们
您可以在输出部分使用条件...
if [count] {
csv {
path => "path-to-file\syslogs-%{+yyyy.MM.dd}.csv"
csv_options => {
"write_headers" => true
"headers" => ["timestamp", "message", "count"]
}
fields => ["@timestamp", "message", "count"]
}
}