Визуализируйте данные из 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 поддерживает вкладки Kibana: Discover, Visualize и Dashboard.

Вкладка 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_CLIENT_SECRET требуется только в том случае, если вы используете принципал службы 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 --version 7.17.3 -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. Для этого есть несколько способов. Используемый вами метод во многом зависит от вашего варианта использования.

      Например, вы можете предоставить доступ к сервису как к сервису типа LoadBalancer. Для этого добавьте параметр --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 не чувствителен к регистру.)

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

Примечание.

Поддерживается только синтаксис запросов Lucene в Kibana. Не используйте параметр 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.