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

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

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

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

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

Это их способ сделать это с помощью редактора Dashboard или для этого требуется некоторый json-скриптинг через Settings- > Objects- > Dashboards? Если это так, вы можете указать мне хорошую ссылку на этот (экранированный) синтаксис?

В Kibana 3 вы можете определить фильтры типа "либо". Эта функциональность существует в Kibana 4?

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

Ответ 1

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

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

Я нашел эту ссылку в документации, где описывается синтаксис AND, OR, NOT filter. После немного экспериментирования это помогло мне, например:

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

{
  "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
    }
  }
}

Ответ 2

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

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

Ответ 3

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

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

  • Нажав на круговую диаграмму под вкладкой визуализации (создайте новую визуализацию).
  • Выбор источника поиска - из нового поиска
  • Перейдите к разделенным фрагментам, выберите агрегацию в качестве фильтров. В разделе Query1 введите фильтр, который вы хотите применить, например запрос: ( "/path1" ИЛИ "/path2" ) Нажмите "Добавить фильтр" и добавьте Query2 как: request:( "/path2" ИЛИ "/path3" )
    1. Нажмите "Применить", чтобы просмотреть измененную круговую диаграмму в соответствии с фильтрами.
    2. Сохранить визуализацию, выбрав ее на панели инструментов (вторая опция рядом с панелью поиска).
    3. Перейдите в панель мониторинга и нажмите "Добавить панель" и выберите сохраненную визуализацию, которая будет отражать вашу круговую диаграмму.

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

Ответ 4

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

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

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