Предупреждение для новичков!
Я учусь использовать logstash в Windows для демонстрации команде. Пожалуйста, посмотрите следующие конфигурации и результаты:
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
config2:
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. и в обоих выходах нет тегов полей. Пожалуйста, помогите мне определить проблему.