ИЛИ фильтр на приборной панели в Kibana 4

Я хочу создать информационную панель, которая отображает информацию об ограниченном наборе значений запроса:

request:("/path1" OR "/path2" OR "/path3")

Что я пробовал до сих пор:

  • Я могу добавить фильтры на панель инструментов, щелкнув часть круговой диаграммы, но все эти фильтры применяются как фильтры И, а не ИЛИ. Этот способ работы также требует фактических данных для всех возможных значений запроса. Что не всегда происходит в тестовой среде.
  • в Discover я создал сохраненный поиск, но я не знаю, как применить его к своей панели инструментов, чтобы он стал частью определения панели инструментов.

Есть ли у них способ сделать это с помощью редактора панели инструментов или для этого требуется сценарий json через Настройки-> Объекты-> Панели мониторинга? Если да, можете ли вы указать мне хорошую ссылку на этот (экранированный) синтаксис?

В Kibana 3 вы можете определять фильтры типа «либо». Есть ли эта функциональность в Kibana 4?

Я использую Kibana 4.0.2


person Conffusion    schedule 02.06.2015    source источник


Ответы (4)


Я не уверен, что это ответ на ваш реальный вопрос, я все равно напишу его, так как кому-то может быть полезно, и я обнаружил, что примеры синтаксиса фильтра Kibana неуловимы при поиске в Google.

Я пытаюсь определить логический фильтр вместо логического запроса на моей вкладке «Обнаружение», чтобы не загромождать поле поиска и облегчить дальнейшую фильтрацию по ограниченному набору значений.

Я нашел эту ссылку на документацию, где И, ИЛИ, НЕ описан синтаксис фильтра. После небольшого экспериментирования это сработало для меня, например:

У меня есть поле с именем host, содержащее имя сервера, отправляющего запись журнала. Существует довольно много серверов, каждый из которых принадлежит к одной из нескольких групп резервирования. Чтобы фильтровать только записи журнала, созданные серверами «SERVER06 OR SERVER07 OR SERVER08», которые принадлежат к отдельной группе резервирования B-Servers, я могу сделать фильтр OR следующим образом:

{
  "bool": {
    "should": [
      {
        "query": {
          "match": {
            "host": {
              "query": "SERVER06",
              "type": "phrase"
            }
          }
        }
      },
      {
        "query": {
          "match": {
            "host": {
              "query": "SERVER07",
              "type": "phrase"
            }
          }
        }
      },
      {
        "query": {
          "match": {
            "host": {
              "query": "SERVER08",
              "type": "phrase"
            }
          }
        }
      }
    ]
  }
}

и сохраните его как поисковый запрос B-Servers. Теперь я получаю отфильтрованный список, в котором я могу выбрать сервер с дополнительным и более строгим фильтром. Раньше у меня были все серверы и quick count перечислял только пять главных записей, поэтому мне приходилось выбирать один, а затем редактировать фильтр вручную, если моей цели не было в списке.

Это должно быть полезно и для других полей строкового типа. Думаю, документация должна была включать еще пару примеров, чтобы установить контекст для размещения оператора bool, а не просто демонстрацию принципа.

Эта ссылка также была полезно для демонстрации того, как выполнять логические операции из поля поиска, а не в качестве фильтра.

[EDIT] Обновление для Kibana 5.2, так как мне не удалось заставить работать предыдущий синтаксис. Следующее помогло с 5.2, я использовал эту ссылку, чтобы разобраться:

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "host": "SERVER06"
          }
        },
        {
          "match": {
            "host": "SERVER07"
          }
        },
        {
          "match": {
            "host": "SERVER08"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}
person ErikE    schedule 16.02.2016

Kibana 4 полностью переработан, и, по-видимому, не все функции Kibana 3 еще реализованы. Я нашел билет "улучшения" в Github Kibana: https://github.com/elastic/kibana/issues/3693

На этом мой вопрос на данный момент закрыт.

person Conffusion    schedule 16.09.2015

Определенно вы можете добавить фильтры ИЛИ на свою панель инструментов. Поскольку панель инструментов создается из сохраненных визуализаций, в визуализацию вы можете добавить фильтр, содержащий ИЛИ, который будет отражать такие данные.

В соответствии с моим пониманием вашего вопроса я отправляю свой ответ (не стесняйтесь поправлять меня): -

  1. Щелкните круговую диаграмму на вкладке визуализации (Создать новую визуализацию).
  2. Выбор источника поиска - из нового поиска
  3. Go to Split Slices, select aggregation as filters. Under Query1 enter the filter you want to apply such as request:("/path1" OR "/path2") Click on add Filter and add Query2 as: request:("/path2" OR "/path3")
    1. Click on Apply to view the changed pie chart as per filters.
    2. Сохраните визуализацию, выбрав ее на панели инструментов (2-я опция рядом с панелью поиска).
    3. Перейдите в Dashboard и нажмите Add Dashboard и выберите сохраненную визуализацию, которая будет отражать вашу круговую диаграмму.

Надеюсь, он ответит на ваш вопрос :)

person Yuvraj Gupta    schedule 02.07.2015
comment
Спасибо за объяснение. Как я уже сказал Алену Коллинзу: мне не нужен фильтр для визуализации. Я хочу, чтобы фильтр был определен на панели инструментов. Таким образом, я могу создать несколько панелей мониторинга с разными фильтрами, но повторно использовать одни и те же визуализации. В Kibana 3 это было возможно. Судя по всему, в Kibana 4 этой функции пока нет. - person Conffusion; 26.07.2015
comment
@Conffusion У вас уже есть ответ на вопрос? Ищу то же самое. Еще не знаю, как это сделать. Пожалуйста, поделитесь своими мыслями. - person bozzmob; 07.08.2015

Синтаксис lucene - «ИЛИ» (верхний регистр), поэтому «foo OR bar».

Как только ваш запрос будет исправлен, вы можете сохранить результаты поиска на вкладке «Обнаружение» и обратиться к этому сохраненному поиску в своей визуализации.

Вы также можете вручную задать запрос в визуализации, если не хотите накладных расходов на его сохранение отдельно.

person Alain Collins    schedule 03.06.2015
comment
Спасибо за совет (я обновил вопрос), но на самом деле это не ответ на мой вопрос. - person Conffusion; 04.06.2015
comment
Идея состоит в том, чтобы иметь разные панели мониторинга, каждая из которых имеет разные критерии фильтрации, но повторно использует определения визуализации. Указание фильтра для визуализации означало бы, что мне нужно создать набор визуализаций для каждой информационной панели. Вот как это было сделано в «Кибане-3». - person Conffusion; 05.06.2015
comment
Вопрос был в том, чтобы сделать это с фильтром, поскольку производительность фильтра намного лучше. - person Bastian Voigt; 15.04.2016