Перейти к содержанию

Настройка сервиса Log-proxy

Общие данные

Log-proxy – сервис, который отвечает за быструю пересылку событий, пришедших от лог-коллектора в сервис Kafka.

Основные характеристики сервиса:

  • используется только один порт для приема сообщений от всех лог-коллекторов (по умолчанию 1100);
  • реализовано сжатие данных при передаче от лог-коллекторов.

Начиная с версии 3.7.2 Платформы Радар сервис Log-proxy используется в качестве замены сервиса Rsyslog.

При включенном сервисе все события от лог-коллектора будут заворачиваться в websocket, который работает по аналогии с компонентами отправки событий (секция output), но в один порт. События будут отправляться по указанному URL из включенных TCP/UDP компонентов отправки событий (секция senders). К нормализованным и разобранным событиям будет добавляться поле с соответствующим id, который задается в конфигурации сервиса Log-proxy через веб-интерфейс платформы (см. раздел Включение пересылки событий через сервис Log-proxy).

Включение пересылки событий через сервис Log-proxy

Если Платформа Радар работает в обычной инфраструктуре, то сервис Log-proxy включен по умолчанию и не требует дополнительных настроек.

Если Платформа радар работает в инфраструктуре мультитенант или мультиарендность, необходимо настроить пересылку событий из подчиненных инстансов.

Для включения пересылки событий через сервис Log-proxy выполните следующие действия:

  1. В веб-интерфейсе платформы перейдите в раздел АдминистрированиеКластер → вкладка Управление конфигурацией.
  2. Проверьте настройки сервиса Log-proxy. Для этого в древовидном списке параметров сервисов выберите Logproxy (см. рисунок 1).

    Рисунок 1 – Управление конфигурацией сервиса Log-proxy

    При необходимости переопределите следующие параметры:

    • Порт приема сообщений – параметр определяет порт, который слушает сервис для приема сообщений от лог-коллектора. По умолчанию 1100;
    • Message ID приема событий верхнеуровневой корреляции – параметр определяет идентификатор (id) сообщения, которое отправляется в очередь нормализованных событий. По умолчанию 9999;
    • Message ID приема разобранных событий – параметр определяет идентификатор (id) сообщения, которое отправляется в очередь разобранных событий. По умолчанию 9998.
  3. Включите пересылку событий. Для этого в древовидном списке параметров сервисов выберите FlowBalancerHead и установите параметр Пересылать события в значение true (см. рисунок 2).

    Рисунок 2 – Управление конфигурацией сервиса FlowBalancer

    При необходимости переопределите следующие параметры:

    • Ip LogProxy – внешний IP-адрес сервиса Log-proxy;
    • Порт LogProxy – внешний порт сервиса Log-proxy;
    • ID события для нормализованных событий LogProxy – идентификатор (id) нормализованного события, пришедшего от сервиса (Logproxy.NormalizedMessageId);
    • ID события для разобранных событий LogProxy – идентификатор (id) разобранного события, пришедшего от сервиса (Logproxy.ParsedMessageId).
  4. После внесения изменений нажмите кнопку Записать конфигурацию.

  5. Создайте фильтры для пересылки событий.

    Внимание! Необходимо настроить фильтры для максимальной фильтрации событий. Чем больше событий будет отфильтровано, тем меньше будет нагрузка на устройство и тем больший поток сможет пройти.

Маршрутизация событий

Настройка выполняется в конфигурационном файле сервиса Log-proxyconfig.json.

Расположение файла: opt/pangeoradar/configs/logproxy/config.json.

Необходимо переопределить параметры маршрутизации событий (секция router) следующим образом:

router: 
    {"log_collector_id": 
        {
        "name":"input_name",
        "template":"template_name", 
        "broker":"URL KAFKA", 
        "topic": "topic_name"
        }
    }

Где:

  • log_collector_id – значение id от лог-коллектора;
  • name – наименование источника событий;
  • template – наименование шаблона для обработки сообщений;
  • broker – IP-адрес и порт сервиса Kafka;
  • topic – наименование топика, в который будет выполняться запись.

Для включения шаблона для обработки сообщений необходимо добавить секцию templates:

templates: 
    {"template_name": "output_template"},

Где:

  • template_name – наименование шаблона для обработки сообщений, которое указывается в параметрах секции router;
  • output_template – результирующая строка, в которую надо подставить значения от лог-коллектора с соответствующим преобразованием. В параметре используются следующие переменные:

    • %FROMHOST-IP% – IP-адрес лог-коллектора, отправившего запрос;
    • %timegenerated:::date-rfc3339% – дата приема сообщения в формате rfc3339;
    • %inputname% – имя источника из секции router.

Примечание: в настройках шаблона доступен для ввода только тип данных json и соответствующее преобразование: json-json.

Пример настройки:

router: 
    {"1519": 
        {
        "name": "1514-Microsoft-Windows-Eventlog",
        "template": "json-json", 
        "broker": "127.0.0.1:9092", 
        "topic": "1514-Microsoft-Windows-Eventlog"
        }
    }

templates: {
    "json-json":"{\"rs_relay_ip\":\"%FROMHOST-IP%\",\"rs_collector_ts\":\"%timegenerated:::date-rfc3339%\",\"__rs_module\":\"%inputname%\",%rawmsg:2:$:%",
    }

Настройка журналирования сервиса Log-proxy

Уровень детализации ведения журналов работы сервиса Log-proxy (pangeoradar-logproxy.service) настраивается параметром logLevel при запуске сервиса. Возможные значения:

  • 0 – журналирование отключено;
  • 1 – выводить только информационные сообщения;
  • 2 – выводить только предупреждения;
  • 3 – выводить только критические ошибки;
  • 4 – выводить информационные сообщения и предупреждения;
  • 5 – выводить информационные сообщения и критические ошибки;
  • 6 – выводить предупреждения и критические ошибки;
  • 7 – выводить все сообщения.

Значение по умолчанию: 3 – выводить только критические ошибки.

Примечание: аналогичные настройки журналирования используются в параметрах запуска сервиса Termite.