# Работа с балансировщиками

# Подключение агента KUMA через HA Proxy

Схема работы агента KUMA через промежуточный узел с использованием haproxy

[![Group 26.jpg](https://kb.kuma-community.ru/uploads/images/gallery/2025-10/scaled-1680-/GEdgroup-26.jpg)](https://kb.kuma-community.ru/uploads/images/gallery/2025-10/GEdgroup-26.jpg)

Для обращения агента KUMA к серверу Core используются порты 7210/tcp и 8429/tcp

**Правила МЭ для работы**

<table border="0" cellpadding="0" id="bkmrk-%E2%84%96%D0%BF%2F%D0%BF-%D0%9D%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D1%81" style="width: 100%;"><tbody><tr><td style="width: 6.31554%;">№п/п

</td><td style="width: 18.1125%;">Наименование источника

</td><td style="width: 16.2059%;">ip-адрес источника

</td><td style="width: 21.2107%;">Наименование получателя

</td><td style="width: 14.6568%;">ip-адрес получателя

</td><td style="width: 11.0833%;">Порты

</td><td style="width: 12.5106%;">Примечание

</td></tr><tr><td class="align-center" style="width: 6.31554%;">1

</td><td class="align-center" style="width: 18.1125%;">Агент KUMA

</td><td class="align-center" style="width: 16.2059%;">10.10.15.15

</td><td class="align-center" style="width: 21.2107%;">Хост с HA Proxy

</td><td class="align-center" style="width: 14.6568%;">10.10.15.15

</td><td class="align-center" style="width: 11.0833%;">7210/tcp

8429/tcp

</td><td class="align-center" style="width: 12.5106%;"> </td></tr><tr><td class="align-center" style="width: 6.31554%;">2

</td><td class="align-center" style="width: 18.1125%;">Хост с HA Proxy

</td><td class="align-center" style="width: 16.2059%;">10.10.15.15

</td><td class="align-center" style="width: 21.2107%;">Ядро KUMA

</td><td class="align-center" style="width: 14.6568%;">192.168.110.5

</td><td class="align-center" style="width: 11.0833%;">7210/tcp

8429/tcp

</td><td class="align-center" style="width: 12.5106%;">  
</td></tr></tbody></table>

**Для работы необходимо:**

1. В файле hosts на хосте, где планируется установить агент kuma прописать fqdn- имя core kuma и ip-адрес с установленным haproxy (какое-то другое имя не подойдет, так как между компонентами kuma аутентификация происходит по сертификатам)
2. На промежуточном хосте с коллекторами установить haproxy
3. Установить агент kuma на машину, как рекомендует вендор, с указанием fqdn имени core kuma

**Для нашего примера**

1. В файл hosts прописываем `10.10.15.15  core.kuma.example`
2. В конфигурации с haproxy в файле `/etc/haproxy/haproxy.cfg`

Добавить следующий конфиг

```
frontend core.kuma.example:7210
        bind            *:7210
        mode            tcp
        log             global
        default_backend core_kuma_api

frontend core.kuma.example:8429
        bind            *:8429
        mode            tcp
        log             global
        default_backend core_kuma_agent

backend core_kuma_api
        mode                    tcp
        log                         global
        balance                 roundrobin
        option          tcp-check
        server          core   192.168.110.5:7210

backend core_kuma_agent
        mode                    tcp
        log                         global
        balance                 roundrobin
        option          tcp-check
        server          core   192.168.110.5:8429
```

<span lang="EN-US"> </span>

<span lang="EN-US">3. </span>Установить агента<span lang="EN-US"> kuma</span>

`<span lang="EN-US">kuma.exe agent --core https://core.kuma.example:7210 --id 334b673f-b9a0-4dde-8398-45a7648ef767 --user </span>имя_машины<span lang="EN-US">\</span>имя_пользователя<span lang="EN-US"> --install</span>`

<span lang="EN-US"></span>

# VIP адрес для использования с балансировками (отказоустойчивость)

<p class="callout info">Информация, приведенная на данной странице, является разработкой community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

Чтобы настроить балансировку трафика между коллекторами KUMA:

1\. Установите<span style="background-color: rgb(255, 255, 255);"> nginx </span>на сервере, предназначенном для управления потоком событий (предпочтительно выделенные сервера, не менее двух)

- Команда для установки в Oracle Linux 8+: `$sudo dnf install keepalived`
- Команда для установки в Ubuntu 20.4: `$sudo apt-get install keepalived`

2\. Подготавливаем конфигурационный файл **/etc/keepalived/keepalived.conf** под свою задачу. **<span style="text-decoration: underline;">Обратите внимание, конфига два! Нужно раскидать конфиг по серверам ACTIVE\\BACKUP</span>**

```nginx
#CONFIG FOR MASTER SERVER

! Barebones conf File for keepalived
 
  global_defs {
     notification_email {
       your_mail@testmailcompany.ru
     }
     notification_email_from keepalived@testmailcompany.ru
     smtp_server mail.testmailcompany.ru
     smtp_connect_timeout 60
  }
 
  vrrp_instance VI_1 {
      state MASTER
      interface ens192 #меняем под свой интерфейс
      virtual_router_id 100
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 12345678 #меняем пароль!
      }
      virtual_ipaddress {
          10.10.10.10
      }
  }



#CONFIG FOR BACKUP SERVER

! Barebones conf File for keepalived
 
  global_defs {
     notification_email {
       your_mail@testmailcompany.ru
     }
     notification_email_from keepalived@testmailcompany.ru
     smtp_server mail.testmailcompany.ru
     smtp_connect_timeout 60
  }
 
  vrrp_instance VI_1 {
      state BACKUP
      interface ens192 #меняем под свой интерфейс
      virtual_router_id 100
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 12345678 #меняем пароль!
      }
      virtual_ipaddress {
          10.10.10.10
      }
  }
```

3\. Запускаем службу командой `sudo systemctl start keepalived` на двух серверах, при выводе ip -a можем наблюдать на MASTER сервере - дополнительный адрес - 10.10.10.10, для проверки "переезда" адреса можем остановить службу на MASTER сервере командой `sudo systemctl stop keepalived`, виртуальный адрес поднимется на BACKUP сервере.

4\. Настраиваем по [статье](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/balansirovka-udptcp-trafika-l3-l4-sredstvami-sluzby-nginx) балансировку средствами nginx и получается следующая отказоустойчивая схема приёма логов на коллекторах:

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

# Балансировка UDP/TCP трафика (L3-L4) средствами службы Nginx

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

<p class="callout info">Официальная документация по данному разделу приведена в Онлайн-справке на продукт: [Управление потоком событий с помощью nginx (kaspersky.com)](https://support.kaspersky.com/help/KUMA/3.0.1/ru-RU/238530.htm)</p>

Чтобы настроить балансировку трафика между коллекторами KUMA:

1\. Установите<span style="background-color: rgb(255, 255, 255);"> nginx </span>на сервере, предназначенном для управления потоком событий (предпочтительно выделенные сервера, не менее двух)

- Команда для установки в Oracle Linux 8.6: `$sudo dnf install nginx`
- Команда для установки в Ubuntu 20.4: `$sudo apt-get install nginx`
    
    При установке из sources, необходимо собрать с параметром `-with-stream`:  
    `$sudo ./configure -with-stream -without-http_rewrite_module -without-http_gzip_module`

2\. Подготавливаем конфигурационный файл nginx.conf, где блоки выделенные красным меняем (название\\ip адреса\\порт) под свою задачу.

{  
 upstream <span style="background-color: rgb(224, 62, 45);">back\_FW\_ASA</span> {  
 server <span style="background-color: rgb(224, 62, 45);">10.11.17.145:514</span>;  
 server <span style="background-color: rgb(224, 62, 45);">10.11.18.145:514</span>;  
 }

и

server {  
 listen <span style="background-color: rgb(224, 62, 45);">514 udp</span>;  
 proxy\_pass <span style="background-color: rgb(224, 62, 45);">back\_FW\_ASA</span>;  
 proxy\_bind $remote\_addr transparent;  
 }

При помощи данного файла nginx будет "прозрачно" для коллекторов пробрасывать оригинальный сетевой пакет трафика, позволяя передать реальный адрес\\имя устройства, которое передало лог. При необходимости прослушивания TCP убираем в 16 строке udp.

```nginx
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
stream {
        upstream back_FW_ASA {
        server 10.11.17.145:514;
        server 10.11.18.145:514;
        }
        server {
                listen 514 udp;
                proxy_pass back_FW_ASA;
                proxy_bind $remote_addr transparent;
        }
}

```

3\. Укажите адреса коллекторов KUMA и порт, в примере их адреса\\порты - <span lang="EN-US" style="font-size: 11.0pt; line-height: 107%; font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">10.11.17.145:514 и 10.11.18.145:514, балансировка отправки сообщений будет вестись в соотношении 50:50 (при доступности двух коллекторов).</span>

<div dir="auto" id="bkmrk-4.-%D0%A1%D0%BB%D1%83%D0%B6%D0%B1%D0%B0-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2">4. Служба балансировщика будет "прослушивать" 514 порт со всех IP адресов сервера, для большей отказоустойчивости служб предлагается использовать службу keepalived на двух серверах. Настройка [keepalived](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/vip-adres-dlia-ispolzovaniia-s-balansirovkami-otkazoustoicivost)</div>