0

新手警告!

我正在学习在 Windows 上使用 logstash 来向团队演示。请看以下配置和结果:

1)

 file content : 123

配置文件:

input {
file {
    path => "C:\Users\xyz\Desktop\Demo\WriteText.txt"
    start_position => "beginning"
    }
    }

filter {
grok {
match => { "@message" => "%{GREEDYDATA:data}"}
}
}
output {
stdout { codec => rubydebug }
}

我的命令行显示以下输出:

{
"path" => "C:\Users\xyz\Desktop\Demo\WriteText.txt",
"@timestamp" => 2017-06-20T16:18:33.956Z,
"@version" => "1",
"host" => "ABC",
"message" => "123"
}

// 上面的输出中没有显示数据字段

2)输入文本的内容:789

配置2:

grok {
 match => { "@message" => "%{NUMBER:data}"}
 }

命令行输出:

output
{
"path" => "C:\Users\xyz\Desktop\Demo\WriteText.txt",
"@timestamp" => 2017-06-20T16:22:56.167Z,
"@version" => "1",
"host" => "ABC",
"message" => "789",
"tags" => [
[0] "_grokparsefailure"
]
}

我收到简单数字输入的解析错误。所以我想知道问题是否与 Windows .txt 文件和编码或其他问题有关,因为 grok 能够将其解析为 GREEDYDATA 但不能解析为 NUMBER。并且两个输出中都没有字段标签。请帮助我确定问题。

4

1 回答 1

0

我的 grok 过滤器正在尝试解析 @message 字段。但是没有这样的字段。

match => [ "message","%{GREEDYDATA:data}"] 成功了。

于 2017-07-11T23:40:54.003 回答