> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Подключение панелей мониторинга Splunk к ClickHouse

# Подключение Splunk к ClickHouse

export const ClickHouseSupportedBadge = () => {
  return <div className="ClickHouseSupportedBadge">
            <div className="ClickHouseSupportedIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M1.30762 1.39073C1.30762 1.3103 1.37465 1.22986 1.46849 1.22986H2.64824C2.72868 1.22986 2.80912 1.29689 2.80912 1.39073V14.4886C2.80912 14.5691 2.74209 14.6495 2.64824 14.6495H1.46849C1.38805 14.6495 1.30762 14.5825 1.30762 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M4.2832 1.39073C4.2832 1.3103 4.35023 1.22986 4.44408 1.22986H5.62383C5.70427 1.22986 5.7847 1.29689 5.7847 1.39073V14.4886C5.7847 14.5691 5.71767 14.6495 5.62383 14.6495H4.44408C4.36364 14.6495 4.2832 14.5825 4.2832 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M7.25977 1.39073C7.25977 1.3103 7.3268 1.22986 7.42064 1.22986H8.60039C8.68083 1.22986 8.76127 1.29689 8.76127 1.39073V14.4886C8.76127 14.5691 8.69423 14.6495 8.60039 14.6495H7.42064C7.3402 14.6495 7.25977 14.5825 7.25977 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M10.2354 1.39073C10.2354 1.3103 10.3024 1.22986 10.3962 1.22986H11.576C11.6564 1.22986 11.7369 1.29689 11.7369 1.39073V14.4886C11.7369 14.5691 11.6698 14.6495 11.576 14.6495H10.3962C10.3158 14.6495 10.2354 14.5825 10.2354 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M13.2256 6.6057C13.2256 6.52526 13.2926 6.44482 13.3865 6.44482H14.5662C14.6466 6.44482 14.7271 6.51186 14.7271 6.6057V9.27354C14.7271 9.35398 14.6601 9.43442 14.5662 9.43442H13.3865C13.306 9.43442 13.2256 9.36739 13.2256 9.27354V6.6057Z" fill="currentColor" />
                </svg>
            </div>
            Поддерживается в ClickHouse
        </div>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<Tip>
  Хотите сохранять журналы аудита ClickHouse Cloud в Splunk? Следуйте руководству ["Storing ClickHouse Cloud Audit logs into Splunk"](/ru/integrations/connectors/data-integrations/integrations/splunk).
</Tip>

Splunk — популярная платформа для безопасности и обсервабилити. Это также мощный движок для поиска и создания панелей мониторинга. Существуют сотни приложений Splunk для самых разных сценариев использования.

Для ClickHouse мы используем [Splunk DB Connect App](https://splunkbase.splunk.com/app/2686), который обеспечивает простую интеграцию с высокопроизводительным JDBC-драйвером ClickHouse и позволяет выполнять запросы к таблицам в ClickHouse напрямую.

Эта интеграция лучше всего подходит, когда ClickHouse используется для крупных источников данных, таких как NetFlow, бинарные данные Avro или Protobuf, DNS, журналы потоков VPC и другие журналы OTel, которыми можно делиться с командой через Splunk для поиска и создания панелей мониторинга. При таком подходе данные не поступают в слой индекса Splunk, а запрашиваются напрямую из ClickHouse — аналогично другим интеграциям для визуализации, таким как [Metabase](https://www.metabase.com/) или [Superset](https://superset.apache.org/).

<div id="goal">
  ## Цель​
</div>

В этом руководстве мы будем использовать JDBC-драйвер ClickHouse, чтобы подключить ClickHouse к Splunk. Мы установим локальную версию Splunk Enterprise, но не будем индексировать данные. Вместо этого воспользуемся функциями поиска через движок запросов DB Connect.

С помощью этого руководства вы сможете создать панель мониторинга, подключенную к ClickHouse, примерно такую:

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-1.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=cf043796679473ddc60b4c6761da8e12" size="lg" border alt="Панель мониторинга Splunk с визуализациями данных о такси Нью-Йорка" width="1600" height="879" data-path="images/integrations/splunk/splunk-1.png" />

<Note>
  В этом руководстве используется [набор данных New York City Taxi](/ru/get-started/sample-datasets/nyc-taxi). Вы также можете использовать множество других наборов данных из [нашей документации](http://localhost:3000/docs/getting-started/example-datasets).
</Note>

<div id="prerequisites">
  ## Предварительные требования
</div>

Перед началом работы вам потребуется:

* Splunk Enterprise для работы с функциями search head
* Установленная в ОС или контейнере [Java Runtime Environment (JRE)](https://docs.splunk.com/Documentation/DBX/3.16.0/DeployDBX/Prerequisites), соответствующая требованиям
* [Splunk DB Connect](https://splunkbase.splunk.com/app/2686)
* Роль Admin или SSH-доступ к ОС экземпляра Splunk Enterprise
* сведения о подключении к ClickHouse (см. [здесь](/ru/integrations/connectors/data-visualization/metabase-and-clickhouse#1-gather-your-connection-details), если вы используете ClickHouse Cloud)

<div id="install-and-configure-db-connect-on-splunk-enterprise">
  ## Установите и настройте DB Connect в Splunk Enterprise
</div>

Сначала необходимо установить Java Runtime Environment в вашем экземпляре Splunk Enterprise. Если вы используете Docker, можно воспользоваться командой `microdnf install java-11-openjdk`.

Запишите путь `java_home`: `java -XshowSettings:properties -version`.

Убедитесь, что в Splunk Enterprise установлено приложение DB Connect App. Его можно найти в разделе Apps в веб-интерфейсе Splunk:

* Войдите в Splunk Web и перейдите в Apps > Find More Apps
* Используйте поле поиска, чтобы найти DB Connect
* Нажмите зелёную кнопку "Install" рядом со Splunk DB Connect
* Нажмите "Restart Splunk"

Если у вас возникают проблемы с установкой DB Connect App, дополнительные инструкции см. [по этой ссылке](https://splunkbase.splunk.com/app/2686).

После того как вы убедитесь, что DB Connect App установлен, добавьте путь `java_home` в DB Connect App в разделе Configuration -> Settings, затем нажмите save и reset.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-2.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=a410aebac7ae10316d65da6978a20b7d" size="md" border alt="Страница настроек Splunk DB Connect с конфигурацией Java Home" width="1600" height="548" data-path="images/integrations/splunk/splunk-2.png" />

<div id="configure-jdbc-for-clickhouse">
  ## Настройка JDBC для ClickHouse
</div>

Скачайте [JAR-файл драйвера JDBC для ClickHouse](https://github.com/ClickHouse/clickhouse-java/releases/) и скопируйте его в папку DB Connect Drivers по адресу:

```bash theme={null}
$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers
```

Чтобы в DB Connect App были доступны все необходимые зависимости, скачайте один из следующих файлов:

```text theme={null}
- clickhouse-jdbc-<VERSION>-shaded-all.jar (if VERSION < 0.9.0)
- clickhouse-jdbc-<VERSION>-all-dependencies.jar (if VERSION >= 0.9.0)
```

Затем необходимо изменить конфигурацию типов подключений в `$SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf`, чтобы добавить сведения о классе JDBC-драйвера ClickHouse. Добавьте следующий блок в `db_connection_types.conf`:

```text theme={null}
[ClickHouse]
displayName = ClickHouse
serviceClass = com.splunk.dbx2.DefaultDBX2JDBC
jdbcUrlFormat = jdbc:ch://<host>:<port>/<database>
jdbcUrlSSLFormat = jdbc:ch://<host>:<port>/<database>?ssl=true
jdbcDriverClass = com.clickhouse.jdbc.ClickHouseDriver
ui_default_catalog = $database$
```

Перезапустите Splunk командой `$SPLUNK_HOME/bin/splunk restart`.

Вернитесь в DB Connect App и перейдите в Configuration > Settings > Drivers. Рядом с ClickHouse должен отображаться зеленый флажок:

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-3.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=9a8c87d2912b16866e1d90fa1a590928" size="lg" border alt="Страница драйверов Splunk DB Connect, где показано, что драйвер ClickHouse успешно установлен" width="1600" height="581" data-path="images/integrations/splunk/splunk-3.png" />

<div id="connect-splunk-search-to-clickhouse">
  ## Подключите поиск Splunk к ClickHouse
</div>

Перейдите в DB Connect App Configuration -> Databases -> Identities и создайте Identity для ClickHouse.

Создайте новое подключение к ClickHouse через Configuration -> Databases -> Connections и выберите "New Connection".

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-4.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=137bdc35ade41a616ee76a5ea4d5ae14" size="sm" border alt="Кнопка создания нового подключения в Splunk DB Connect" width="764" height="1168" data-path="images/integrations/splunk/splunk-4.png" />

<br />

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

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-5.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=e81b8e8ce196e4f15193de14fdf04645" size="md" border alt="Страница настройки подключения Splunk к ClickHouse" width="1254" height="990" data-path="images/integrations/splunk/splunk-5.png" />

После сохранения подключение ClickHouse к Splunk будет успешно настроено!

<Note>
  Если вы получаете ошибку, убедитесь, что IP-адрес вашего экземпляра Splunk добавлен в ClickHouse Cloud IP Access List. Подробнее см. в [документации](/ru/products/cloud/guides/security/connectivity/setting-ip-filters).
</Note>

<div id="run-a-sql-query">
  ## Выполните SQL-запрос
</div>

Теперь выполним SQL-запрос, чтобы проверить, что всё работает.

В SQL Explorer выберите сведения о подключении в разделе DataLab приложения DB Connect App. В этом примере мы используем таблицу `trips`:

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-6.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=bd2059ea0bd59ecc878c5fc222359895" size="md" border alt="SQL Explorer в Splunk: выбор подключения к ClickHouse" width="1600" height="866" data-path="images/integrations/splunk/splunk-6.png" />

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

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-7.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=042f016c0ca7d29e4e323242f6e5ef4b" size="md" border alt="Выполнение SQL-запроса в Splunk с отображением количества записей в таблице trips" width="1344" height="684" data-path="images/integrations/splunk/splunk-7.png" />

Если запрос выполнен успешно, вы увидите результаты.

<div id="create-a-dashboard">
  ## Создайте панель мониторинга
</div>

Давайте создадим панель мониторинга, в которой используется сочетание SQL и мощного языка Splunk Processing Language (SPL).

Прежде чем продолжить, необходимо сначала [отключить механизмы защиты DPL](https://docs.splunk.com/Documentation/Splunk/9.2.1/Security/SPLsafeguards?ref=hk#Deactivate_SPL_safeguards).

Запустите следующий запрос, который показывает 10 районов, где чаще всего забирают пассажиров:

```sql theme={null}
dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"
```

Выберите вкладку визуализации, чтобы увидеть созданную столбчатую диаграмму:

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-8.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=96c1088a2d468440608966436b75c79c" size="lg" border alt="Визуализация столбчатой диаграммы в Splunk, показывающая 10 районов с наибольшим числом посадок" width="1600" height="789" data-path="images/integrations/splunk/splunk-8.png" />

Теперь создадим панель мониторинга: нажмите Save As > Save to a Dashboard.

Давайте добавим ещё один запрос, который показывает среднюю стоимость поездки в зависимости от количества пассажиров.

```sql theme={null}
dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"
```

На этот раз давайте создадим столбчатую диаграмму и сохраним её на предыдущей панели мониторинга.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-9.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=e6d58efe62f076c9d38d1eb1685cf3d8" size="lg" border alt="Столбчатая диаграмма в Splunk, показывающая среднюю стоимость поездки в зависимости от количества пассажиров" width="1600" height="708" data-path="images/integrations/splunk/splunk-9.png" />

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

```sql theme={null}
dbxquery query="SELECT passenger_count, toYear(pickup_datetime) AS year,
round(trip_distance) AS distance, count(* FROM default.trips)
GROUP BY passenger_count, year, distance
ORDER BY year, count(*) DESC; " connection="chc"
```

Наша итоговая панель мониторинга должна выглядеть так:

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/splunk/splunk-10.png?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=c7566ed866d15a2a2017b1befb44fa2e" size="lg" border alt="Итоговая панель мониторинга Splunk с несколькими визуализациями данных о такси в Нью-Йорке" width="1600" height="734" data-path="images/integrations/splunk/splunk-10.png" />

<div id="time-series-data">
  ## Данные временных рядов
</div>

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

```sql theme={null}
dbxquery query="SELECT time, orig_h, duration
FROM "demo"."conn" WHERE time >= now() - interval 1 HOURS" connection="chc"
| eval time = strptime(time, "%Y-%m-%d %H:%M:%S.%3Q")
| eval _time=time
| timechart avg(duration) as duration by orig_h
| eval duration=round(duration/60)
| sort - duration:
```

<div id="learn-more">
  ## Подробнее
</div>

Если вы хотите узнать больше о Splunk DB Connect и создании панелей мониторинга, см. [документацию Splunk](https://docs.splunk.com/Documentation).
