Комбинированный вывод на нескольких logsta sh в соответствии с идентификатором документа - PullRequest
0 голосов
/ 20 января 2020

У меня есть json журнал от RabbitMq. В моем случае я использую три разных квеста с использованием трех разных сервисов logsta sh, и он будет выводить наasticsearch с использованием одного и того же индекса. Предположим, у нас есть log A, log B и log C. Структура этих журналов выглядит следующим образом:

Пример журнала A

Пример журнала B

Пример журнала C

Файл конфигурации для использования и отправки этих журналов в elasti c, такой же как:

Logsta sh .conf

Вопрос => Как объединить эти три разные базы журналов для document_id перед отправкой в ​​elasti c с тем же индексом?

Возможно, будет выглядеть вывод JSON как эти:

Результат

1 Ответ

1 голос
/ 23 января 2020

Вы можете использовать document_id для объединения журналов на стороне поиска elasti c, и вы можете использовать поиск обновлений elasti c для выполнения функции обновления так, чтобы она сливалась с существующей записью.

Следующий код проверит, есть ли документ при поиске elasti c с идентификатором документа, и если документа нет, он создаст новый документ. Если есть документ с идентификатором документа, он выполнит запрос на обновление.

Для уточнения обратитесь к docs-update-by-query

Попробуйте следующий код:



elasticsearch {

                hosts => [ "xxxxxx"]
                index => "combined"

                action => "update"

                doc_as_upsert => true

                document_id => "%{[header][serialNum]}"

}
...