Я пытаюсь понять шаблон DATA
в grok plugin logstash. Согласно документации DATA
спичек следующим образом:Диаграмма данных в logstash - grok
DATA .*?
-> Я интерпретировал это как-нибудь с длиной 1 до п [Пожалуйста Поправьте меня, если я понимаю неправильно].
В моем сценарии он не может правильно разобрать мой ввод.
Logstash конф:
input{
file {
path => ["/home/osboxes/logstash_conf/mydir/test_logs/*"]
start_position => beginning
sincedb_path => "/home/osboxes/logstash_conf/mydir/.sincedb"
}
}
filter{
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:timeStamp},%{DATA:ID},%{DATA:somedata}" }
}
}
output {
stdout {
codec => json_lines
}
}
Вход:
2017-01-09 02:00:03.887,a,a
Выход:
{
"message": "2017-01-09 02:00:03.887,a,a",
"@version": "1",
"@timestamp": "2017-01-09T12:28:20.958Z",
"path": "/home/osboxes/logstash_conf/mydir/test_logs/data",
"host": "osboxes",
"timeStamp": "2017-01-09 02:00:03.887",
"ID": "a"
}
Я ожидал, что тег somedata
будет заполняться значением [как это сделал для тега ID
], но он не указан на выходе. Любой, пожалуйста, помогите мне понять поведение модели DATA
.
Благодарим вас за ответ. В этом случае, надежно ли иметь шаблон DATA или мне нужно искать другой шаблон? Как вы упомянули, оно может совпадать с нулевыми символами, в некоторых случаях оно может пропустить значения, которые мне действительно интересны ... –
@ G.S Вы должны быть добрым, если прекратите свой шаблон с помощью '$'. Это обеспечит, чтобы ваш второй 'DATA' __has__ соответствовал чему-то. – Fairy
Поймите. Я просто волнуюсь, если подобное поведение происходит для DATA в середине. '$' может использоваться только для последнего поля. Не уверен, что 'DATA' может выйти из строя для полей в середине. Просто чтобы убедиться, что он надежный –