Визуализируйте данные из Azure Data Explorer в Kibana с помощью коннектора с открытым исходным кодом K2Bridge
K2Bridge (мост Кибана-Кусто) позволяет использовать Azure Data Explorer в качестве источника данных и визуализировать эти данные в Kibana. K2Bridge — это контейнерное приложение с открытым исходным кодом. Он действует как прокси-сервер между экземпляром Kibana и кластером Azure Data Explorer. В этой статье описывается, как использовать K2Bridge для создания этого подключения.
K2Bridge переводит запросы Kibana на язык запросов Kusto (KQL) и отправляет результаты Azure Data Explorer обратно в Kibana.
K2Bridge поддерживает вкладки Discover (Обнаружение), Visualize (Визуализация) и Dashboard (Панель мониторинга) в Kibana.
Вкладка Discover (Обнаружение) позволяет выполнять следующее:
- искать и исследовать данные;
- отфильтровать результаты;
- добавить или удалить поля в таблице результатов;
- просматривать содержимое записи;
- сохранять поисковые запросы и делиться ими.
Вкладка Visualize (Визуализация) позволяет выполнять следующее:
- создание линейчатых и круговых диаграмм, таблиц данных, тепловых карт и других визуализаций;
- сохранение визуализаций.
Вкладка Dashboard (Панель мониторинга) позволяет выполнять следующее:
- создание панелей из новых или сохраненных ранее визуализаций;
- сохранение панели мониторинга.
На следующем изображении показан экземпляр Kibana, связанный с Azure Data Explorer с помощью K2Bridge. Пользовательский опыт в Kibana не изменился.
Необходимые компоненты
Прежде чем вы сможете визуализировать данные из Azure Data Explorer в Kibana, подготовьте следующее.
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer. Вам нужно знать URL-адрес кластера и имя базы данных.
- Helm версии 3, диспетчер пакетов Kubernetes.
- Кластер службы Azure Kubernetes (AKS) или любой другой кластер Kubernetes. Используйте версию 1.21.2 или более новую, и не менее трех узлов Службы Kubernetes Azure. Версия 1.21.2 полностью протестирована и проверена. Если вам нужен кластер AKS, узнайте, как развернуть кластер AKS с помощью Azure CLI или с помощью портала Azure.
- Субъект-служба Microsoft Entra, авторизованный для просмотра данных в Azure Data Explorer, включая идентификатор клиента и секрет клиента. Кроме того, можно использовать управляемое удостоверение, назначаемое системой.
Если вы решили использовать субъект-службу Microsoft Entra, необходимо создать субъект-службу Microsoft Entra. Для установки потребуются значения идентификатора клиента и секрета. Мы рекомендуем субъект-службу с разрешением просмотра и не рекомендуем вам использовать разрешения более высокого уровня. Сведения о назначении разрешений см. в статье "Управление разрешениями базы данных" в портал Azure или с помощью команд управления для управления ролями безопасности базы данных.
Если вы решили использовать назначенное системой удостоверение, вам потребуется получить идентификатор клиента управляемого удостоверения пула агентов (расположенный в созданной группе ресурсов "[MC_xxxx]".
Запустите K2Bridge в службе Azure Kubernetes (AKS)
По умолчанию диаграмма Helm K2Bridge ссылается на общедоступный образ, расположенный в Microsoft Container Registry (MCR). MCR не требует никаких учетных данных.
Загрузите необходимые карты Helm.
Добавьте в Helm зависимость Elasticsearch. Зависимость требуется, потому что K2Bridge использует небольшой внутренний экземпляр Elasticsearch. Экземпляр обслуживает запросы, связанные с метаданными, такие как запросы шаблонов индекса и сохраненные запросы. Этот внутренний экземпляр не сохраняет бизнес-данные. Вы можете рассматривать экземпляр как деталь реализации.
Чтобы добавить зависимость Elasticsearch в Helm, выполните следующие команды:
helm repo add elastic https://helm.elastic.co helm repo update
Чтобы получить диаграмму K2Bridge из каталога диаграмм репозитория GitHub:
Клонируйте репозиторий с GitHub.
Перейдите в каталог корневого репозитория K2Bridges.
Выполните следующую команду:
helm dependency update charts/k2bridge
Разверните K2Bridge.
Задайте для переменных правильные значения для вашей среды.
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.
При желании включите телеметрию Application Insights. Если вы впервые используете Application Insights, создайте ресурс Application Insights. Скопируйте ключ инструментария в переменную.
APPLICATION_INSIGHTS_KEY=[INSTRUMENTATION_KEY] COLLECT_TELEMETRY=true
Установите диаграмму 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]
В разделе Конфигурация вы можете найти полный набор параметров конфигурации.
Вывод предыдущей команды предлагает следующую команду 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
Используйте переадресацию портов для доступа к Kibana на локальном хосте.
kubectl port-forward service/kibana-kibana 5601 --namespace k2bridge
Подключитесь к Kibana, перейдя в http://127.0.0.1:5601.
Раскройте 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.
Настройте шаблоны индекса для доступа к вашим данным.
В новом экземпляре Kibana
- Откройте Kibana.
- Перейдите в раздел Управление.
- Выберите Шаблоны индекса.
- Создайте шаблон индекса. Имя индекса должно точно соответствовать имени таблицы или имени функции без звездочки (*). Вы можете скопировать соответствующую строку из списка.
Примечание.
Чтобы запустить K2Bridge на других поставщиках Kubernetes, измените значение Elasticsearch storageClassName в values.yaml, чтобы оно соответствовало предложенному поставщиком.
Обнаружение данных
Когда Azure Data Explorer настроен в качестве источника данных для Kibana, вы можете использовать Kibana для исследования данных.
В Kibana выберите вкладку Discover (Обнаружение).
В списке шаблонов индекса выберите подходящий шаблон индекса для исследуемого источника данных. В нашем примере используется шаблон индекса для таблицы Azure Data Explorer.
Если в ваших данных есть поле временного фильтра, вы можете указать временной диапазон. В правом верхнем углу страницы Обнаружить выберите временной фильтр. По умолчанию на странице отображаются данные за последние 15 минут.
В таблице результатов показаны первые 500 записей. Вы можете развернуть документ, чтобы изучить данные в его полях в формате JSON или таблицы.
Вы можете добавить определенные столбцы в таблицу результатов, выбрав add (добавить) рядом с именем поля. По умолчанию таблица результатов включает столбец _source и столбец Time, если существует поле времени.
В строке запроса можно использовать следующие методы.
- Ввод поискового запроса.
- Использование синтаксиса запросов Lucene. Например:
- Выполните поиск по запросу «ошибка», чтобы найти все записи, содержащие это значение.
- Выполните поиск по запросу «состояние: 200», чтобы получить все записи со значением статуса 200.
- Использование логических операторов AND, OR, и NOT.
- Использование подстановочных знаков звездочки (*) и вопросительного знака (?). Например, запрос «город назначения: L*» соответствует записям, в которых значение города назначения начинается с «L» или «l». (K2Bridge не чувствителен к регистру.)
Примечание.
Поддерживается только синтаксис Kibana для запросов Lucene. Не используйте параметр KQL, который означает "язык запросов Kibana".
Совет
В разделе Поиск можно найти дополнительные правила и логику поиска.
Чтобы отфильтровать результаты поиска, используйте список Available field (Доступные поля). В списке полей вы можете увидеть следующее.
- Пять лучших значений для поля.
- Количество записей, содержащих поле.
- Процент записей, содержащих каждое значение.
Совет
Используйте увеличительное стекло, чтобы найти все записи с определенным значением.
Вы также можете использовать лупу для фильтрации результатов и просмотра представления в формате таблицы результатов для каждой записи в таблице результатов.
Выберите Save (Сохранить) или Share (Поделиться), чтобы использовать этот запрос повторно.
Визуализация данных
Используйте визуализации Kibana для быстрого просмотра данных Azure Data Explorer.
Создание визуализации на вкладке Discover (Обнаружение)
Чтобы создать визуализацию с вертикальными столбцами, на вкладке Discover (Обнаружение) найдите боковую панель Available fields (Доступные поля).
Выберите имя поля, а затем нажмите кнопку Visualize (Визуализировать).
Откроется вкладка Visualize (Визуализация) и отобразится нужная визуализация. Чтобы изменить данные и метрики визуализации, воспользуйтесь разделом Создание визуализации на вкладке "Визуализация".
Создание визуализации на вкладке "Визуализация"
Перейдите на вкладку Visualize (Визуализация) и щелкните Create visualization (Создать визуализацию).
В окне New Visualization (Новая визуализация) выберите тип визуализации.
Когда визуализация будет создана, вы сможете изменить метрики собрать их в один контейнер.
Примечание.
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 в наглядных представлениях.
Чтобы создать панель мониторинга, выберите вкладку Dashboard (Панель мониторинга) и щелкните Create new dashboard (Создать панель мониторинга).
Откроется новая панель мониторинга в режиме редактирования.
Чтобы добавить новую панель визуализации, щелкните Create new (Создать).
Чтобы добавить ранее созданную визуализацию, щелкните Add an existing (Добавить существующую) и выберите визуализацию.
Чтобы переместить панели, упорядочить их по приоритету, изменить их размер и так далее, щелкните Edit (Изменить) и примените следующие возможности:
- чтобы переместить панель, щелкните заголовок панели и, удерживая его, перетащите в новое место;
- чтобы изменить размер панели, щелкните элемент изменения размера и перетащите его так, чтобы установить нужный размер.