Подключение Splunk к ClickHouse
Splunk — это популярная технология для обеспечения безопасности и наблюдаемости. Она также представляет собой мощный движок поиска и создания панелей мониторинга. Существует множество приложений Splunk, предназначенных для различных сценариев использования.
Для ClickHouse мы используем Splunk DB Connect App, который имеет простую интеграцию с высокопроизводительным JDBC-драйвером ClickHouse для прямого запроса таблиц в ClickHouse.
Идеальный сценарий использования этой интеграции заключается в том, что вы используете ClickHouse для работы с большими источниками данных, такими как NetFlow, бинарные данные Avro или Protobuf, логи потоков VPC, и другие логи OTEL, которые могут быть поделены с вашей командой в Splunk для поиска и создания панелей. Таким образом, данные не загружаются в индексный слой Splunk, а просто запрашиваются напрямую из ClickHouse, аналогично другим интеграциям визуализации, таким как Metabase или Superset.
Цель
В этом руководстве мы используем JDBC-драйвер ClickHouse для подключения ClickHouse к Splunk. Мы установим локальную версию Splunk Enterprise, но не будем индексировать никаких данных. Вместо этого мы будем использовать функции поиска через движок запросов DB Connect.
С помощью этого руководства вы сможете создать панель мониторинга, подключенную к ClickHouse, подобную этой:

В этом руководстве используется набор данных такси Нью-Йорка. Существует множество других наборов данных, которые вы можете использовать из нашей документации.
Предварительные требования
Перед тем как начать, вам потребуется:
- Splunk Enterprise для использования функций поискового узла
- Установленные требования к Java Runtime Environment (JRE) на вашей ОС или контейнере
- Splunk DB Connect
- Доступ администратора или через SSH к вашему экземпляру Splunk Enterprise
- Данные подключения к ClickHouse (см. здесь, если вы используете ClickHouse Cloud)
Установка и настройка DB Connect на Splunk Enterprise
Сначала необходимо установить Java Runtime Environment на ваш экземпляр Splunk Enterprise. Если вы используете Docker, вы можете использовать команду microdnf install java-11-openjdk
.
Запишите путь java_home
: java -XshowSettings:properties -version
.
Убедитесь, что приложение DB Connect установлено на Splunk Enterprise. Вы можете найти его в разделе Приложения веб-интерфейса Splunk:
- Залогиньтесь в Splunk Web и перейдите в Приложения > Найти больше приложений
- Используйте строку поиска, чтобы найти DB Connect
- Нажмите зеленую кнопку "Установить" рядом с Splunk DB Connect
- Нажмите "Перезапустить Splunk"
Если у вас возникли проблемы с установкой приложения DB Connect, пожалуйста, посмотрите по этой ссылке для получения дополнительных инструкций.
После проверки установки приложения DB Connect добавьте путь java_home в приложение DB Connect в Конфигурация -> Настройки и нажмите сохранить, затем сбросить.

Настройка JDBC для ClickHouse
Скачайте JDBC-драйвер ClickHouse в папку драйверов DB Connect, например:
Затем вам нужно отредактировать конфигурацию типов подключения в $SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf
, чтобы добавить детали класса JDBC-драйвера ClickHouse.
Добавьте следующий фрагмент в файл:
Перезапустите Splunk с помощью $SPLUNK_HOME/bin/splunk restart
.
Вернитесь в приложение DB Connect и перейдите в Конфигурация > Настройки > Драйверы. Вы должны увидеть зеленую галочку рядом с ClickHouse:

Подключение поиска Splunk к ClickHouse
Перейдите в Конфигурация приложения DB Connect -> Базы данных -> Идентификаторы: Создайте идентификатор для вашего ClickHouse.
Создайте новое соединение с ClickHouse из Конфигурация -> Базы данных -> Соединения и выберите "Новое соединение".

Добавьте детали хоста ClickHouse и убедитесь, что "Включить SSL" отмечено:

После сохранения соединения вы успешно подключились к ClickHouse из Splunk!
Если вы получили ошибку, убедитесь, что вы добавили IP-адрес вашего экземпляра Splunk в список доступных IP-адресов ClickHouse Cloud. Посмотрите документацию для получения дополнительной информации.
Выполнение SQL-запроса
Теперь мы выполним SQL-запрос, чтобы протестировать, что все работает.
Выберите ваши данные подключения в SQL Explorer из секции DataLab приложения DB Connect. Мы используем таблицу trips
для этой демонстрации:

Выполните SQL-запрос на таблице trips
, который возвращает общее количество всех записей в таблице:

Если ваш запрос успешен, вы должны увидеть результаты.
Создание панели мониторинга
Давайте создадим панель мониторинга, которая использует сочетание SQL и мощного языка обработки Splunk (SPL).
Перед тем как продолжить, вам нужно сначала деактивировать меры предосторожности DPL.
Запустите следующий запрос, который показывает нам 10 районов с наиболее частыми вызовами:
Выберите вкладку визуализации, чтобы увидеть созданный столбчатый график:

Теперь мы создадим панель мониторинга, нажав “Сохранить как” > “Сохранить на панель мониторинга”.
Добавим еще один запрос, который показывает среднюю стоимость поездки в зависимости от числа пассажиров.
На этот раз создадим визуализацию в виде столбчатой диаграммы и сохраним её на предыдущую панель мониторинга.

Наконец, добавим еще один запрос, который показывает зависимость между количеством пассажиров и расстоянием поездки:
Наша финальная панель мониторинга должна выглядеть так:

Данные временных рядов
Splunk имеет сотни встроенных функций, которые могут использоваться для визуализации и представления данных временных рядов на панелях мониторинга. Этот пример объединит SQL и SPL, чтобы создать запрос, который может работать с данными временных рядов в Splunk:
Узнайте больше
Если вы хотите узнать больше о Splunk DB Connect и о том, как создавать панели мониторинга, посетите документацию Splunk.