Skip to main content

Массовое обновление KUMA агентов

Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.

ДляДанный настройкимеханизм базовогоработает аудитас Clickhouseверсии понадобится:3.4 KUMA, т.к именно в ней добавилась поддержка ключа --accept-eula

С сервера, на котором будем запускать скрипт понадобятся сетевые доступы к серверам по 5985/TCP для запуска команд и 445/TCP для передачи файлов, также права локального администратора на сервере.

За основу берем скрипт

И заполняем в нём ключевые поля, а именно:

# Список серверов
$servers = @("server1.domain.local", "server2.domain.local")

# Задаем переменную версии
$version = "3.4.0.551"

# Локальный путь к файлу, который нужно скопировать
$localFilePath = "C:\Temp\kuma.exe"

# Путь на удаленном сервере, куда будет скопирован файл (если используется нестандартный путь для установки KUMA агента)
$remoteFilePath = "C$\Program Files\Kaspersky Lab\KUMA\kuma.exe"
Принцип работы скрипта:

1. ДляПодключаемся логированияк обычныхсерверу
запросов
2. Проверяем, томесть числели grant,служба create)KUMA включитьна логированиесервере
3. Остановка службы KUMA
4. Копируем обновленный файл kuma.exe в основномдиректорию KUMA
5. Правим файл с лицензионным соглашением (обновляем значение версии в файле

.license-version
/etc/clickhouse-server/config.xml
6.

Добавляем в секцииреестре, loggerв какслужбе минимумKUMA необходимоключ задать--accept-eula

формат
7. information

#########################################
<clickhouse>
    <logger>
        <level>information</level>
#########################################

2. Для логирования подключений, таких как:

  • вход пользователя
  • выход пользователя
  • неуспешный вход

потребуется создать отдельный файл 

/etc/clickhouse-server/config.d/session_log.xml

 с содержимым:

<clickhouse>
    <session_log>
        <database>system</database>
        <table>session_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    </session_log>
</clickhouse>

3. ПерезапуститьЗапускаем службу командой systemctl restart clickhouse-server

В базе system появится новая таблица со следующими колонками:

image.png

Создаём пользователя для подключения к БД для KUMA и выдаём ему необходимые права следующим командами:

###Создание пользователя для коллектора KUMA
CREATE USER kuma HOST IP '10.10.10.1/32' IDENTIFIED WITH sha256_password BY 'supersecretpassword';

####Создание VIEW для вывода нескольких запросов
CREATE VIEW combined_logs AS
SELECT event_time,
       user,
       query_kind,
       exception,
       client_hostname,
       client_name,
       http_user_agent,
       type,
       replace(toString(initial_address), '::ffff:', '') AS ipv4_address,
       query
FROM system.query_log ql
WHERE match(toString(initial_address), '^::ffff:') 
  AND query_kind IN ('Grant', 'Create', 'Drop')

UNION ALL

SELECT event_time,
       user,
       NULL AS query_kind,  -- Добавляем NULL для отсутствующего столбца `query_kind`
       NULL AS exception,   -- Добавляем NULL для отсутствующего столбца `exception`
       NULL AS client_hostname,  -- Добавляем NULL для отсутствующего столбца `client_hostname`
       NULL AS client_name,      -- Добавляем NULL для отсутствующего столбца `client_name`
       NULL AS http_user_agent,  -- Добавляем NULL для отсутствующего столбца `http_user_agent`
       type,
       replace(toString(client_address), '::ffff:', '') AS ipv4_address,
       NULL AS query  -- Добавляем NULL для отсутствующего столбца `query`
FROM system.session_log
WHERE `type` = '0';

####Назначение прав на VIEW
GRANT SELECT ON combined_logs TO kuma

 

Настройка инстанса завершена, можно приступать к подключению логов в KUMA.

агента

В KUMA необходимо создать коллектор с транспортом sql (плейсхолдер для Clickhouse - ?) и параметрами как на скриншоте:

image.png

Создаём нормализатор, мапим колонки БД в нужные нам поля KUMA и получаем лог.