Подключение Splunk к ClickHouse
Хотите сохранять журналы аудита ClickHouse в Splunk? См. руководство "Storing ClickHouse Cloud Audit logs into Splunk".
Splunk — популярная платформа для обеспечения безопасности и наблюдаемости. Это также мощный движок для поиска и построения дашбордов. Существуют сотни приложений Splunk для решения различных задач.
Специально для ClickHouse мы используем Splunk DB Connect App, который обеспечивает простую интеграцию с высокопроизводительным JDBC-драйвером ClickHouse для прямого выполнения запросов к таблицам в ClickHouse.
Идеальный сценарий использования этой интеграции — когда вы применяете ClickHouse для больших объёмов данных, таких как NetFlow, двоичные данные Avro или Protobuf, DNS, журналы трафика VPC и другие журналы OTel, которыми можно делиться с вашей командой в Splunk для поиска и построения дашбордов. При таком подходе данные не проходят приём в индексный слой Splunk, а запрашиваются напрямую из ClickHouse, аналогично другим интеграциям для визуализации, таким как Metabase или Superset.
Цель
В этом руководстве мы будем использовать JDBC-драйвер ClickHouse для подключения ClickHouse к Splunk. Мы установим локальный экземпляр Splunk Enterprise, но не будем индексировать какие-либо данные. Вместо этого мы будем использовать функции поиска через движок запросов DB Connect.
С помощью этого руководства вы сможете создать панель мониторинга, подключённую к ClickHouse, похожую на эту:

В этом руководстве используется набор данных такси города Нью-Йорк. В нашей документации есть и многие другие наборы данных, которые вы можете использовать.
Предварительные требования
Перед началом работы вам потребуется:
- Splunk Enterprise для использования функций поискового узла (search head)
- Установленный в вашей ОС или контейнере 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. Его можно найти в разделе Apps веб-интерфейса Splunk:
- Войдите в Splunk Web и перейдите в Apps > Find More Apps
- Используйте поле поиска, чтобы найти DB Connect
- Нажмите зелёную кнопку "Install" рядом с Splunk DB Connect
- Нажмите "Restart Splunk"
Если у вас возникают проблемы с установкой приложения DB Connect, обратитесь к этой странице за дополнительными инструкциями.
После того как вы убедились, что приложение DB Connect установлено, добавьте путь к java_home в приложение DB Connect в разделе Configuration -> Settings, затем нажмите "Save" и "Reset".

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

Подключение поиска Splunk к ClickHouse
Перейдите в DB Connect App Configuration -> Databases -> Identities и создайте Identity для вашего ClickHouse.
Создайте новое подключение к ClickHouse в Configuration -> Databases -> Connections и выберите «New Connection».

Добавьте параметры хоста ClickHouse и убедитесь, что установлен флажок «Enable SSL»:

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

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

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

Теперь создадим дашборд, нажав Save As > Save to Dashboard.
Добавим ещё один запрос, который покажет средний тариф в зависимости от числа пассажиров.
На этот раз давайте создадим визуализацию в виде столбчатой диаграммы и сохраним её в ранее созданную панель мониторинга.

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

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