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

В этом руководстве используется набор данных New York City Taxi. Также вы можете использовать многие другие наборы данных из нашей документации.
Предварительные требования
Перед началом работы вам потребуется:
- 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
Скачайте JAR-файл драйвера ClickHouse JDBC и скопируйте его в каталог DB Connect Drivers по адресу:
Чтобы обеспечить доступность всех необходимых зависимостей для приложения DB Connect, загрузите один из следующих файлов:
Затем необходимо отредактировать конфигурацию типов подключений в файле $SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf, чтобы добавить сведения о классе драйвера JDBC для ClickHouse. Добавьте в db_connection_types.conf следующий раздел:
Перезапустите 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" включена:

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

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

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

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

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

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