Elasticsearch DSL-запрос для фильтрации дубликатов документов (на основе фильтра) из журналов Kibana - PullRequest
0 голосов
/ 11 июня 2019

Я работаю над системой, которая доставляет электронную почту, SMS и т. Д. Я публикую журналы приложений в Kibana по конвейеру ELK.

Логи выглядят примерно так:

{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "ABC",
    "message": "delivered successfully",
}
{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "ABC",
    "message": "delivered successfully",
}
{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "XYZ",
    "message": "delivered successfully",
}
{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "DEF",
    "message": "delivered successfully",
}
{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "DEF",
    "message": "delivered successfully",
}
{
    "@timestamp": "2019-06-11T13:52:57.842914+00:00",
    "severity": "debug",
    "messageId": "DEF",
    "message": "delivered successfully",
}

Мое требование - создать фильтр Kibana для отображения всех сообщений, которые доставляются более одного раза (т. Е. «Доставлено успешно» сообщается для них более одного раза, как для идентификаторов «ABC» и «DEF» выше).

Я пытаюсь добавить фильтр, который может возвращать что-то вроде:

ABC - 2
DEF - 3

, а также для заданного временного диапазона, мы можем получить общее количество таких сообщений: что составляет 2 для приведенного выше случая.

Я пытался поэкспериментировать с использованием match с проверкой регулярных выражений вместе с aggs компонентом Elasticsearch DSL, но пока не достиг успеха.

Любая идея / примеры того, как это сделать, будут высоко оценены.

...