Визуализируйте данные из Azure Data Explorer в Kibana с помощью коннектора с открытым исходным кодом K2Bridge

K2Bridge (мост Кибана-Кусто) позволяет использовать Azure Data Explorer в качестве источника данных и визуализировать эти данные в Kibana. K2Bridge — это контейнерное приложение с открытым исходным кодом. Он действует как прокси-сервер между экземпляром Kibana и кластером Azure Data Explorer. В этой статье описывается, как использовать K2Bridge для создания этого подключения.

K2Bridge переводит запросы Kibana на язык запросов Kusto (KQL) и отправляет результаты Azure Data Explorer обратно в Kibana.

Подключение Kibana к Azure Data Explorer через K2Bridge.

K2Bridge поддерживает вкладки Discover (Обнаружение), Visualize (Визуализация) и Dashboard (Панель мониторинга) в Kibana.

Вкладка Discover (Обнаружение) позволяет выполнять следующее:

  • искать и исследовать данные;
  • отфильтровать результаты;
  • добавить или удалить поля в таблице результатов;
  • просматривать содержимое записи;
  • сохранять поисковые запросы и делиться ими.

Вкладка Visualize (Визуализация) позволяет выполнять следующее:

  • создание линейчатых и круговых диаграмм, таблиц данных, тепловых карт и других визуализаций;
  • сохранение визуализаций.

Вкладка Dashboard (Панель мониторинга) позволяет выполнять следующее:

  • создание панелей из новых или сохраненных ранее визуализаций;
  • сохранение панели мониторинга.

На следующем изображении показан экземпляр Kibana, связанный с Azure Data Explorer с помощью K2Bridge. Пользовательский опыт в Kibana не изменился.

Страница Kibana привязана к Azure Data Explorer.

Предварительные требования

Прежде чем вы сможете визуализировать данные из Azure Data Explorer в Kibana, подготовьте следующее.

Если вы решили использовать субъект-службу Microsoft Entra, необходимо создать субъект-службу Microsoft Entra. Для установки потребуются значения идентификатора клиента и секрета. Мы рекомендуем субъект-службу с разрешением просмотра и не рекомендуем вам использовать разрешения более высокого уровня. Сведения о назначении разрешений см. в статье Управление разрешениями базы данных в портал Azure или использование команд управления для управления ролями безопасности базы данных.

Если вы решили использовать удостоверение, назначаемое системой, необходимо получить управляемое удостоверение пула агентов ClientID (находится в созданнойгруппе ресурсов [MC_xxxx]).

Запустите K2Bridge в службе Azure Kubernetes (AKS)

По умолчанию диаграмма Helm K2Bridge ссылается на общедоступный образ, расположенный в Microsoft Container Registry (MCR). MCR не требует никаких учетных данных.

  1. Загрузите необходимые карты Helm.

  2. Добавьте в Helm зависимость Elasticsearch. Зависимость требуется, потому что K2Bridge использует небольшой внутренний экземпляр Elasticsearch. Экземпляр обслуживает запросы, связанные с метаданными, такие как запросы шаблонов индекса и сохраненные запросы. Этот внутренний экземпляр не сохраняет бизнес-данные. Вы можете рассматривать экземпляр как деталь реализации.

    1. Чтобы добавить зависимость Elasticsearch в Helm, выполните следующие команды:

      helm repo add elastic https://helm.elastic.co
      helm repo update
      
    2. Чтобы получить диаграмму K2Bridge из каталога диаграмм репозитория GitHub:

      1. Клонируйте репозиторий с GitHub.

      2. Перейдите в каталог корневого репозитория K2Bridges.

      3. Выполните следующую команду:

        helm dependency update charts/k2bridge
        
  3. Разверните K2Bridge.

    1. Задайте для переменных правильные значения для вашей среды.

      ADX_URL=[YOUR_ADX_CLUSTER_URL] #For example, https://mycluster.westeurope.kusto.windows.net
      ADX_DATABASE=[YOUR_ADX_DATABASE_NAME]
      ADX_CLIENT_ID=[SERVICE_PRINCIPAL_CLIENT_ID]
      ADX_CLIENT_SECRET=[SERVICE_PRINCIPAL_CLIENT_SECRET]
      ADX_TENANT_ID=[SERVICE_PRINCIPAL_TENANT_ID]
      

      Примечание

      При использовании управляемого удостоверения в качестве значения для ADX_CLIENT_ID используется идентификатор клиента управляемого удостоверения, расположенное в группе ресурсов [MC_xxxx]. Дополнительные сведения см. в статье Группах ресурсов MC_. ADX_SECRET_ID требуется только при использовании субъекта-службы Microsoft Entra.

    2. При желании включите телеметрию Application Insights. Если вы впервые используете Application Insights, создайте ресурс Application Insights. Скопируйте ключ инструментария в переменную.

      APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY]
      COLLECT_TELEMETRY=true
      
    3. Установите диаграмму K2Bridge. Визуализации и панели мониторинга поддерживаются только в версии Kibana 7.10. Для последних образов установлены теги 6.8_latest и 7.16_latest, и эти версии поддерживают Kibana 6.8 и Kibana 7.10, соответственно. Образ с тегом "7.16_latest" поддерживает версию Kibana OSS 7.10.2 и использует внутренний экземпляр Elasticsearch версии 7.16.2.

      Если использовался субъект-служба Microsoft Entra:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set settings.aadClientId="$ADX_CLIENT_ID" --set settings.aadClientSecret="$ADX_CLIENT_SECRET" --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=6.8_latest/7.16_latest] 
      [--set image.repository=$REPOSITORY_NAME/$CONTAINER_NAME] 
      [--set privateRegistry="$IMAGE_PULL_SECRET_NAME"] [--set settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      Если использовалось управляемое удостоверение:

      helm install k2bridge charts/k2bridge -n k2bridge --set settings.adxClusterUrl="$ADX_URL" --set settings.adxDefaultDatabaseName="$ADX_DATABASE" --set       settings.aadClientId="$ADX_CLIENT_ID" --set settings.useManagedIdentity=true --set settings.aadTenantId="$ADX_TENANT_ID" [--set image.tag=7.16_latest] [--set  settings.collectTelemetry=$COLLECT_TELEMETRY]
      

      В разделе Конфигурация вы можете найти полный набор параметров конфигурации.

    4. Вывод предыдущей команды предлагает следующую команду Helm для развертывания Kibana. При желании запустите эту команду:

      helm install kibana elastic/kibana -n k2bridge --set image=docker.elastic.co/kibana/kibana-oss --set imageTag=7.10.2 --set elasticsearchHosts=http://k2bridge:8080
      
    5. Используйте переадресацию портов для доступа к Kibana на локальном хосте.

      kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
      
    6. Подключитесь к Kibana, перейдя в http://127.0.0.1:5601.

    7. Раскройте Kibana для пользователей. Для этого есть несколько способов. Используемый вами метод во многом зависит от вашего варианта использования.

      Например, вы можете предоставить службу как службу балансировщика нагрузки. Для этого добавьте параметр --set service.type=LoadBalancer в предыдущую команду установки Kibana Helm.

      Затем запустите эту команду:

      kubectl get service -w -n k2bridge
      

      Выходные данные должны выглядеть так:

      NAME            TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      kibana-kibana   LoadBalancer   xx.xx.xx.xx    <pending>     5601:30128/TCP   4m24s
      

      Затем вы можете использовать появившееся сгенерированное значение EXTERNAL-IP. Используйте его для доступа к Kibana. Для этого откройте браузер и перейдите к <<EXTERNAL-IP>:5601.

  4. Настройте шаблоны индекса для доступа к вашим данным.

    В новом экземпляре Kibana

    1. Откройте Kibana.
    2. Перейдите в раздел Управление.
    3. Выберите Шаблоны индекса.
    4. Создайте шаблон индекса. Имя индекса должно точно соответствовать имени таблицы или имени функции без звездочки (*). Вы можете скопировать соответствующую строку из списка.

Примечание

Чтобы запустить K2Bridge на других поставщиках Kubernetes, измените значение Elasticsearch storageClassName в values.yaml, чтобы оно соответствовало предложенному поставщиком.

Обнаружение данных

Когда Azure Data Explorer настроен в качестве источника данных для Kibana, вы можете использовать Kibana для исследования данных.

Снимок экрана: вкладка

  1. В Kibana выберите вкладку Discover (Обнаружение).

  2. В списке шаблонов индекса выберите подходящий шаблон индекса для исследуемого источника данных. В нашем примере используется шаблон индекса для таблицы Azure Data Explorer.

    Снимок экрана: Список шаблона источника данных.

  3. Если в ваших данных есть поле временного фильтра, вы можете указать временной диапазон. В правом верхнем углу страницы Обнаружить выберите временной фильтр. По умолчанию на странице отображаются данные за последние 15 минут.

    Снимок экрана: фильтр выбора времени.

  4. В таблице результатов показаны первые 500 записей. Вы можете развернуть документ, чтобы изучить данные в его полях в формате JSON или таблицы.

    Снимок экрана: расширенная запись на вкладке

  5. Вы можете добавить определенные столбцы в таблицу результатов, выбрав add (добавить) рядом с именем поля. По умолчанию таблица результатов включает столбец _source и столбец Time, если существует поле времени.

    Снимок экрана: добавление столбцов.

  6. В строке запроса можно использовать следующие методы.

    • Ввод поискового запроса.
    • Использование синтаксиса запросов Lucene. Пример.
      • Выполните поиск по запросу «ошибка», чтобы найти все записи, содержащие это значение.
      • Выполните поиск по запросу «состояние: 200», чтобы получить все записи со значением статуса 200.
    • Использование логических операторов AND, OR, и NOT.
    • Использование подстановочных знаков звездочки (*) и вопросительного знака (?). Например, запрос «город назначения: L*» соответствует записям, в которых значение города назначения начинается с «L» или «l». (K2Bridge не чувствителен к регистру.)

    Снимок экрана: выполняющиеся запросы.

Примечание

Поддерживается только синтаксис Kibana для запросов Lucene. Не используйте параметр KQL, который означает "язык запросов Kibana".

Совет

В разделе Поиск можно найти дополнительные правила и логику поиска.

  1. Чтобы отфильтровать результаты поиска, используйте список Available field (Доступные поля). В списке полей вы можете увидеть следующее.

    • Пять лучших значений для поля.
    • Количество записей, содержащих поле.
    • Процент записей, содержащих каждое значение.

    Совет

    Используйте увеличительное стекло, чтобы найти все записи с определенным значением.

    Снимок экрана: список полей с выделенным значком поиска (лупа).

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

    Снимок экрана: список таблиц с выделенным значком поиска (лупа).

  2. Выберите Save (Сохранить) или Share (Поделиться), чтобы использовать этот запрос повторно.

    Снимок экрана: сохранение поиска в Kibana.

Визуализируйте данные

Используйте визуализации Kibana для быстрого просмотра данных Azure Data Explorer.

Создание визуализации на вкладке Discover (Обнаружение)

  1. Чтобы создать визуализацию с вертикальными столбцами, на вкладке Discover (Обнаружение) найдите боковую панель Available fields (Доступные поля).

    Снимок экрана: выбор поля среди доступных полей на вкладке

  2. Выберите имя поля, а затем нажмите кнопку Visualize (Визуализировать).

    Снимок экрана: создание визуализации и выбор поля.

  3. Откроется вкладка Visualize (Визуализация) и отобразится нужная визуализация. Чтобы изменить данные и метрики визуализации, воспользуйтесь разделом Создание визуализации на вкладке "Визуализация".

    Снимок экрана: изменение визуализации на вкладке

Создание визуализации на вкладке "Визуализация"

  1. Перейдите на вкладку Visualize (Визуализация) и щелкните Create visualization (Создать визуализацию).

    Снимок экрана: выбор вкладки

  2. В окне New Visualization (Новая визуализация) выберите тип визуализации.

    Снимок экрана: выбор типа визуализации.

  3. Когда визуализация будет создана, вы сможете изменить метрики собрать их в один контейнер.

    Снимок экрана: изменение метрик.

Примечание

K2Bridge поддерживает один контейнерный агрегат. Для некоторых агрегатов поддерживаются параметры поиска. Используйте синтаксис Lucene, но не KQL (язык запросов Kibana).

Важно!

  • Поддерживаются следующие визуализации: Vertical bar, Area chart, Line chart, Horizontal bar, Pie chart, Gauge, Data table, Heat map, Goal chart и Metric chart.
  • Поддерживаются следующие метрики: Average, Count, Max, Median, Min, Percentiles, Standard deviation, Sum, Top hits и Unique count.
  • Метрика Percentiles ranks не поддерживается.
  • Использование контейнерных агрегатов необязательно. Вы можете визуализировать данные без контейнерных агрегатов.
  • Поддерживаются следующие контейнеры: No bucket aggregation, Date histogram, Filters, Range, Date range, Histogram и Terms.
  • Контейнеры IPv4 range и Significant terms не поддерживаются.

Создавайте панели мониторинга

Вы можете создавать панели мониторинга с визуализациями Kibana для суммирования, сравнения и противопоставления данных Azure Data Explorer в наглядных представлениях.

  1. Чтобы создать панель мониторинга, выберите вкладку Dashboard (Панель мониторинга) и щелкните Create new dashboard (Создать панель мониторинга).

    Снимок экрана: выбор вкладки

    Откроется новая панель мониторинга в режиме редактирования.

  2. Чтобы добавить новую панель визуализации, щелкните Create new (Создать).

    Снимок экрана: добавление существующей визуализации на панель мониторинга.

  3. Чтобы добавить ранее созданную визуализацию, щелкните Add an existing (Добавить существующую) и выберите визуализацию.

  4. Чтобы переместить панели, упорядочить их по приоритету, изменить их размер и так далее, щелкните Edit (Изменить) и примените следующие возможности:

    • чтобы переместить панель, щелкните заголовок панели и, удерживая его, перетащите в новое место;
    • чтобы изменить размер панели, щелкните элемент изменения размера и перетащите его так, чтобы установить нужный размер.

    Снимок экрана: панели мониторинга с данными Azure Data Explorer.