# Интеграция Grafana c событиями в KUMA

<p class="callout info">Интеграция является не официальной (не поддерживается)</p>

### Подключение по API KUMA

Для возможности обращения в KUMA предварительно необходимо создать пользователя с необходимыми правами (на этом же этапе задаём необходимую роль\\тенанты), переходим в KUMA – Access – Выбираем доменного пользователя, либо создаём локального.

Выбрать пользователя и переходим к Using KUMA via API, нажимаем Generate token и задаём время действия токена (в примере выбираем No expiration date).

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/wN4image.png)

Выбрать права для токена, затем нажать Generate:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/1hrimage.png)

Система выдаст токен которым мы воспользуемся при создании Data source в Grafana.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/bQNimage.png)

Переходим в Grafana. Устанавливаем плагин Infinity:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/iMkimage.png)

Переходим в Data sources и создаём новый. Ищем Infinity и создаём в формате как указано на скриншоте. Задаём ключевые параметры – адрес, токен (созданный на этапе 1).

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/RgOimage.png)

В Network выбираем "Skip TLS Verify":

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/q9qimage.png)

Нажимаем Save &amp; test, в случае успешного подключения получаем уведомление.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/sFLimage.png)

#### Дашборды и визуализация

Рассмотрим два примера дашбордов. 1-й с задаваемым уникальным запросом, 2-й со статичным запросом для построения дашбордов и вывода статистики.

Создаём дашборд Home – Dashboard – New – New Dashboard. И переходим в Dashboard Settings.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/aVOimage.png)

Далее Settings – Variables, мы задаём глобальную переменную на уровне дашборда.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/kgvimage.png)

И задаём следующие параметры:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/Xfuimage.png)

Нажимаем "Apply". Окно для запроса появится в верхнем левом углу с дефолтным значением (его можно не задавать).

#### Делаем базовый шаблон

Создаём панель и переходим ниже в раздел Query, выбираем Data source – Infinity. далее URL options и задаём Body Type (как на скриншоте):

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/EXAimage.png)

Берём пример с API и модифицируем под нашу задачу:

```json
{
  "period": {
    "from": "2025-09-06T00:00:00Z",
    "to": "2025-09-06T00:10:00Z"
  },
  "emptyFields": true,
  "rawTimestamps": true,
  "sql": "SELECT count(Timestamp) as TotalEvents FROM events LIMIT 1"
}
```

Нам нужно забирать время с дашборда Grafana и запрос берем также с переменной:

```json
{
  "period": {
    "from": "${__from:date:iso}",
    "to": "${__to:date:iso}"
  },
  "emptyFields": true,
  "rawTimestamps": true,
  "sql": "${sqlQuery:raw}"
}
```

Сохраняем – проверяем:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/jfgimage.png)

Далее создадим более дашборд с вшитым запросом. Допустим это будет статистика неуспешных авторизаций.

В теле будет:

```json
{
  "period": {
    "from": "${__from:date:iso}",
    "to": "${__to:date:iso}"
  },
  "emptyFields": true,
  "rawTimestamps": true,
  "sql": "SELECT count(ID) AS `Количество обращений`, DestinationAddress, DestinationCountry AS `Страна` FROM `events` WHERE EventOutcome = 'failed' AND DeviceEventClassID = 'USER_AUTH' GROUP BY DestinationAddress, DestinationCountry ORDER BY count(ID) DESC LIMIT 250" 
}
```

И вывод:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-06/scaled-1680-/hcXimage.png)

### Метод подключения напрямую в ClickHouse

<p class="callout warning">Не проверялось на версиях KUMA 4+</p>

Скачиваем и устанавливаем плагин:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/PqDimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/PqDimage.png)

Далее настраиваем в Connections (в старых версиях: Home - Administration - **Data sources)** по этому плагину:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/7nkimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/7nkimage.png)

Предварительно проверьте доступ к порту 8123, если доступа нет, обеспечьте его, например, проборосом портов.

<p class="callout info">URL: https://10.68.85.126:8123?allowMultiQueries=true (можете также указать хостнейм, в случае иcпользования **плагина Altinity**)</p>

Копируем содержимое ключевой информации в нужные секции:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/eArimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/eArimage.png)

<div id="bkmrk-%D0%9E%D0%BD%D0%B8-%D0%B1%D0%B5%D1%80%D1%83%D1%82%D1%81%D1%8F-%D0%B8%D0%B7-%D1%85%D1%80%D0%B0%D0%BD%D0%B8">Они берутся из хранилища по путям:</div><div id="bkmrk-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9-kuma-%D0%B4%D0%BE-4"><details><summary>для версий KUMA до 4</summary>

- /opt/kaspersky/kuma/clickhouse/certificates/cert.pem
- /opt/kaspersky/kuma/clickhouse/certificates/key.pem

</details></div><div id="bkmrk-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9-kuma-4%2B-%2F"><details><summary>для версий KUMA 4+</summary>

- /opt/kaspersky/kuma/storage/&lt;ID хранилища&gt;/certificates/internal.cert
- /opt/kaspersky/kuma/storage/&lt;ID хранилища&gt;/certificates/internal.key

</details></div><div id="bkmrk-%D0%97%D0%B0%D1%82%D0%B5%D0%BC-%D0%B2%D0%BD%D0%B8%D0%B7%D1%83-%D0%BD%D0%B0%D0%B6%D0%B8%D0%BC%D0%B0%D0%B5%D0%BC">Затем внизу нажимаем на кнопку **Save &amp; Test**.</div><div id="bkmrk--16">  
</div><div id="bkmrk-%D0%9F%D1%80%D0%B8-%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BD%D0%B0%D1%81">При корректности настроек и сетевых доступов должны получить следующее:</div>[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/PBFimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/PBFimage.png)

Создаем дашборд со своими панелями (виджетами), пример:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/bUHimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/bUHimage.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/1wjimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/1wjimage.png)

Пример запроса:

```sql
SELECT  count(ID), DestinationUserName FROM kuma.events_local_v2 WHERE $__timeFilter_ms(Timestamp) AND DeviceEventClassID='4624'GROUP BY DestinationUserName
```

Переменная **$\_\_timeFilter\_ms(Timestamp)** обеспечивает проброс промежутка времени из графаны в запрос:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/c7simage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/c7simage.png)

Чтобы поменять тип отображения можно выбрать другое представление тут:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/lDeimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/lDeimage.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/mJVimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/mJVimage.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/l6cimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/l6cimage.png)

Сохраняем и применяем панель/представление, далее подобным образом можно создать другие панели.