Я хочу запускать свой конвейер только для файлов, путь к журналу которых содержит определенное ключевое слово. Как мне это сделать в конвейере?
Конвейер (удалил мой шаблон и шаблоны, так как он не актуален):
{
"description" : "...",
"processors": [
{
"grok": {
"if": "ctx['log']['file']['path'].value.contains('keyword')",
"field": "message",
}
}
]
}
В Kibana я вижу, что у меня есть log.file.path, доступный в качестве метаданных, и я просто хочу запустить конвейер, если он содержит ключевое слово, но я получаю ошибку времени выполнения из-за моего оператора if.
Спасибо за вашу помощь!
Обновлено: я думаю, что проблема заключается в том, как я пытаюсь получить доступ к полю log.file.path, поскольку я не знаю, как правильно ссылаться на него отсюда.
Вы, вероятно, можете использовать процессор Drop https://www.elastic.co/guide/en/elasticsearch/reference/current/drop-processor.html
"drop": {
"if": "ctx.log.file.path.contains('keyword');"
}
Вы можете найти более сложные примеры здесь: https://www.elastic.co/guide/en/elasticsearch/reference/master/ingest-conditional-complex.html
хорошо, просто не обрабатывается процессором grok? Если да, можете ли вы попробовать тот же синтаксис «если» в IF вашего процессора Grok?
Я думал, что обработчик перетаскивания предотвращает индексацию документа, если он пропущен? Я бы хотел, чтобы он индексировался, а не проходил через мой конвейер.