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

Настройка лог-коллектора

Общие данные

Настройка лог-коллектора заключается в конфигурировании программных компонентов лог-коллектора под особенности инфраструктуры организации.

Настройка выполняется в конфигурационном файле config.yaml. Расположение конфигурационного файла:

  • ОС Windows: %ProgramFiles%\Log Collector\config.yaml
  • ОС Linux: /opt/pangeoradar/configs/logcollector/config.yaml

Лог-коллектор включает в себя следующие компоненты:

Централизованное управление

Описание: Компонент позволяет настроить параметры подключения лог-коллектора к веб-интерфейсу платформы.

Секция конфигурационного файла: cluster.

Обязательность секции: Optional.

Параметры компонента:

Поле Обязательность Описание
url Optional URL-адрес по которому выполняется вход в Платформу Радар или адрес узла кластера, на котором развернута роль MASTER
api_key Optional Ключ API по которому будет выполняться взаимодействие с платформой. Обычно это ключ с наименованием global_api_key, который можно получить в настройках кластера Платформы Радар
skip_verify Optional Опция, которая позволяет пропустить проверку сертификата при безопасном соединении. Возможные значения:
- true – опция включена;
- false – опция выключена.
max_try_count Optional Количество попыток повторных подключений в случае ошибки. Значение по умолчанию: "1"
reconnect_interval_sec Optional Время ожидания между попытками подключения в секундах. Значение по умолчанию: "0"

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

# Централизованное управление
cluster:
  url: "http://<IP-адрес Платформы  Радар>:9000/cm/api/agent/"
  api_key: "<ключ API>"
  skip_verify: false
  max_try_count: 5
  reconnect_interval_sec: 30

Результат работы компонента: В веб-интерфейсе платформы, который доступен по указанному адресу, появится возможность управления следующими параметрами лог-коллектора:

  • Управление агентом;
  • Настройка секретов агента;
  • Конфигурация агента.

Также в разделе Мониторинг будет доступен рабочий стол отображающий метрики работы лог-коллетора.

Контроллер

Описание: Компонент осуществляет управление всеми компонентами лог-коллектора.

Секция конфигурационного файла: controller.

Обязательность секции: Required.

Параметры компонента:

Поле Обязательность Описание
port Required Порт компонента
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
disk_space_check_sec Optional Интервал проверки места на диске в секундах. Значение по умолчанию: "60"

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

# Контроллер (обязательная секция)
controller:
  port: 48000
  log_level: "ERROR"
  disk_space_check_sec: 60

Сбор метрик

Описание: Компонент осуществляет сбор статистики работы лог-коллектора.

Секция конфигурационного файла: metric_server.

Обязательность секции: Required.

Параметры компонента:

Поле Обязательность Описание
port Required Порт компонента
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Сбор метрик (обязательная секция)
metric_server:
  port: 48005
  log_level: "ERROR"

Просмотр метрик: Выполните следующие действия:

  1. Перейдите в веб-интерфейс платформы через который может выполняться централизованное управление лог-колектором.
  2. Перейдите в раздел АдминистрированиеМониторинг и из выпадающего списка выберите Log-collector.

Перечень виджетов приборной панели:

Метрика рус. Метрика англ. Назначение метрики Визуализация
Состояние лог-коллектора Log-collector status Метрика показывает текущее состояние лог-коллектора
Размер использования диска Disk: usage Метрика показывает объём памяти в мегабайтах, которые задействованы лог-коллектором
Процент использования диска Disk: usage Метрика показывает процент памяти, используемой лог-коллектором
Потребление процессора компонентами CPU consume by component Метрика показывает процент нагрузки центрального процессора компонентами лог коллектора:

- inputs_process_cpu_pct – процент нагрузки компонентами сбора событий
- outputs_process_cpu_pct – процент нагрузки компонентами отправки событий
- total consume – общее потребление всеми компонентами
Потребление памяти компонентами Memory consume by component Метрика показывает объем памяти потребляемый компонентами лог коллектора:

- inputs_process_memory_megabytes – потребление памяти компонентами сбора
- outputs_process_memory_megabytes –потребление памяти компонентам отправки событий
- total consume – общее потребление
Модули сбора событий Inputs modules Метрика показывает изменение количества компонентов сбора с течением времени
Модули отправки событий Out file (batches) Метрика показывает изменение количества компонентов отправки с течением времени

Секреты

Описание: Секреты лог-колектора - это необходимые для работы/настройки значения, которые будут зашифрованы и вставлены в нужные места в файле конфигурации для сокрытия информации.

Секреты бывают двух видов:

  • Глобальные – по умолчанию применяются ко всем коллекторам для удобства работы с ними;
  • Локальные – переопределяют параметры глобальных секретов для конкретного экземпляра лог-коллектора.

Локальные секреты всегда имеют приоритет выше глобальных.

Создание секретов должно выполняться через веб-интерфейс платформы:

  1. Перейдите в раздел АдминистрированиеКластер → вкладка Узлы.
  2. Откройте форму просмотра узла с ролью agent или agent win.
  3. В блоке секреты агента нажмите кнопку Создать секрет (см. рисунок 1).

    Рисунок 1 – Форма просмотра узла. Блок "Секреты агента"

  4. Откроется окно "Создать секрет" (см. рисунок 2).

    Рисунок 1 – Окно "Создать секрет"

  5. Укажите в окне следующую информацию:

    • в поле Название секрета укажите наименование секрета;
    • в поле Значение секрета укажите данные, которые необходимо зашифровать;
    • если необходимо применить секрет ко всем лог-коллекторам, то включите параметр Глобальный.

Использование секретов в лог-коллекторе: Секрет добавляется в нужную строку конфигурационного файла в следующем виде: {{.<название_секрета>}}.

Например, необходимо указать параметры подключения пользователя к базе данных.

Для этого необходимо создать два секрета:

  • Для "Имени пользователя" создаем секрет с наименованием User_DB и в значении указываем имя пользователя;
  • Для "Пароля пользователя" создаем секрет с наименованием User_DB_pwd и в значении указываем пароль пользователя.

В конфигурационном файле лог-коллектора указываем данные секретов в строке подключения к базе данных, например:

connection_string: "server=<IP-адрес лог-коллектора>;port=2604;driver={MySQL ODBC 8.0 Unicode Driver};database=kav;user={{.User_DB}};password={{.User_DB_pwd}};"

Секция конфигурационного файла: отсутствует.

Параметры компонента:

Поле Обязательность Описание
secret_file Optional Путь к файлу с секретом. Например:
– для Linux: "/opt/pangeoradar/configs/logcollector/secret"
– для Windows: "./secret"
secret_storage Optional Путь к хранилищу секретов. Например:
– для Linux: "/opt/pangeoradar/configs/logcollector/secret_storage"
– для Windows: "./secret.storage"

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

# путь к файлу с секретом
secret_file: "/opt/pangeoradar/configs/logcollector/secret"
# путь к хранилищу секретов
secret_storage: "/opt/pangeoradar/configs/logcollector/secret_storage"

API управление

Описание: компонент предоставляет возможность удаленного управления лог-коллектором и мониторинга.

Включение удаленного управления лог-коллектором приведено в разделе Включение API взаимодействия.

Секция конфигурационного файла: api_server.

Обязательность секции: Required.

Параметры компонента:

Поле Обязательность Описание
address Required Адрес сетевого интерфейса, используемого лог-коллектором
port Required Порт, по которому будет выполняться API-взаимодействие
read_timeout Required Максимальное время ожидания получения запроса в секундах
write_timeout Required Максимальное время ожидания отправки запроса в секундах
wait Required Время ожидания окончания обработки запроса при получении сигнала на остановку приложения в секундах
enable_tls Optional Опция, которая позволяет использовать протокол Transport Layer Security (TLS) для обеспечения безопасной передачи данных. Возможные значения:
- true – опция включена;
- false – опция выключена.
cert_file Optional Путь для файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
key_file Optional Путь для файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
require_client_cert Required Опция, которая включает проверку клиентского сертификата. Возможные значения:
- true – опция включена;
- false – опция выключена.
ca_file Required Путь до корневого сертификата
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# API управление (обязательная секция)
api_server:
  address: "<IP-адрес лог-коллектора>"
  port: 8080
  read_timeout: 60
  write_timeout: 60
  wait: 5
  enable_tls: false
  cert_file: "certs/server.crt"
  key_file: "certs/server.key"
  cert_key_pass: ""
  require_client_cert: true
  ca_file: "certs/ca.crt"
  log_level: "ERROR"

Журнал

Описание: компонент отвечает за ведение журналов работы лог-коллектора. Компонент поддерживает следующие уровни журналирования:

  • ERROR – записывать сообщения об ошибках; 
  • WARN – записывать предупреждающие сообщения, которые указывают на потенциальные проблемы или ситуации, которые могут привести к ошибкам в будущем;
  • INFO – записывать информационные сообщения, которые сообщают о нормальном функционировании приложения;
  • DEBUG – записывать отладочную информацию.

Секция конфигурационного файла: journal.

Обязательность секции: Required.

Параметры компонента:

Поле Обязательность Описание
port Required Порт компонента
log_level Required Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG.
log_path Required Путь к файлу журнала
rotation_size Required Параметр, который определяет максимальный размер файла журнала в мегабайтах, при достижении которого будет выполнена ротация журналов
max_backups Optional Порог количества файлов журнала, при достижении которого будут удалены устаревших файлов журнала. Если параметр не указан, о файлы удаляться не будут.
max_age Optional Параметр, который определяет максимальное количество дней для хранения старых файлов журнала. Отсчет ведется по метке времени создания файла журнала. Если параметр не указан файлы удаляться не будут

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

# Журнал (обязательная секция)
journal:
  port: 48003
  log_level: "WARN"
  log_path: "journal.log"
  rotation_size: 10
  max_backups: 10
  max_age: 28 

Для добавления компонентов сбора или отправки необходимо добавить настройки компонента в конфигурационный файл config.yaml. При этом в конфигурационный файл можно добавить несколько экземпляров компонентов сбора и отправки.

Чтобы лог-коллектор корректно работал с несколькими компонентами сбора и отправки, необходимо каждому компоненту присвоить следующие параметры:

  • Наименование настройки компонента, например ssh_collector;
  • Уникальная ссылка для запуска компонента, например @ssh_collector;
  • Уникальный идентификатор компонента, например ssh_collector_test.

В конфигурационном файле лог-коллетора идентификация компонентов сбора выглядит следующим образом:

<наименование настройки компонента>: &<уникальная ссылка для запуска>
  id: "<уникальное наименование компонента (идентификатор), которое будет отображено в метрикаъ и логах>"

Компоненты сбора событий

Описание: Компоненты сбора событий отвечают за сбор событий ИБ с конкретных источников. В зависимости от типа сбора событий компонент может работать в следующих режимах:

  • Активный – лог-коллектор, согласно настройкам компонента сбора событий, будет обращаться к источнику для сбора событий;
  • Пассивный – источник самостоятельно отправляет события в лог-коллектор.

Режимы работы компонента сбора также определяются по способу сетевого взаимодействия с источником:

  • Локальный – лог-коллетор располагается на источнике, а именно лог-коллектор устанавливается в системе в виде агента и производит чтение файлов журналов;
  • Удаленный – взаимодействие между лог-коллетором и источником выполняется по сети. Лог-коллектор устанавливается на выделенный сервер и осуществляет удаленный сбор событий. Также может быть установлен на конечном источнике событий, и осуществлять сбор не только с этого источника событий, но и с других систем.

Принцип настройки лог-коллектора подразумевает что для одного экземпляра лог-коллектора может быть настроено произвольное количество компонентов сбора. Необходимое количество компонентов сбора определяется количеством источников, с которых будет осуществляться сбор. Обычно:

1 источник = 1 компонент сбора (input)

Фильтрация. После обработки полученных событий компонентом сбора, они отправляются в очередь на отправку. В зависимости от типа данных (структурированные/неструктурированные), получаемых от источника, к ним можно применить фильтр для формирования очереди. Фильтры используют механизм черных и белых списков. Подробнее см. раздел Фильтрация.

Характеристики компонентов сбора. В зависимости от ОС, на которой функционирует лог-коллектор, поддерживаются следующие компоненты сбора:

Конмпонент Windows Linux Режим работы Фильтрация Описание
1 etw + локально активный Сбор событий через механизм ETW (низкоуровневое логирование Windows)
2 eventlog + локально/удаленно активный только по черному списку Сбор событий через Windows EventLog (механизм RPC)
3 eventlog_xp + локально/удаленно активный только по черному списку Cбор событий через Windows EventLog (механизм RPC) Только для Windows XP
4 external_command + + локально активный + Выполнение внешней команды в ОС
5 file_input (file_reciver) + + локально активный + Чтение локального файла
6 ftp + + удаленно активный + Чтение файла, доступного через FTP
7 http_collector + + удаленно активный + Чтение файла, доступного через HTTP/HTTPs
8 http_request (http_reciver) + + локально пассивный + Приём HTTP/HTTPs-запросов
9 mseven6 + удаленно активный только по черному списку Сбор событий через Windows EventLog (механизм RPC)
10 netflow (nf) + + локально пассивный + Прием NetFlow трафика
11 odbc + + удаленно активный Чтение данных из СУБД (MySQL, Oracle, MS SQL, PostgreSQL)
12 opsec_lea + удаленно активный + Сбор событий с источников Checkpoint
13 sftp + + удаленно активный + Чтение файла, доступного через SFTP
14 smb + + удаленно активный + Чтение файла, доступного через SMB
15 snmp + + локально пассивный + Приём SNMP Traps
16 ssh (ssh_collector) + + удаленно активный + Выполнение внешней команды через SSH
17 tcp_input (tcp_reciver) + + локально пассивный + Приём TCP трафика
18 udp_input (udp_reciver) + + локально пассивный + Приём UDP трафика
19 wmi + локально/удаленно активный только по черному списку Cбор событий через механизм WMI

Фильтрация

Описание: Фильтры применяются к собранным событиям от источников перед формированием очереди на отправку. Фильтр представляет из себя массив регулярных выражений которые реализуют механизм черных и белых списков:

  • Белый список – события, которые соответствуют регулярному выражению, попадают в очередь на отправку.
  • Черный список – события, которые соответствуют регулярному выражению, блокируются и не попадают в очередь на отправку.

Сначала проверяется белый список, а затем черный.

Фильтры применяются к компоненту сбора путем добавления секции filters, в которой указывается два массива:

  • whitelist – массив регулярных выражений, формирующий белый список;
  • blacklist – массив регулярных выражений, формирующий черный список.

Возможность применения фильтра к компоненту сбора обуславливается типом собираемых данных: структурированные или неструктурированные. Например, данные собираемые от источников wmi, eventlog, odbc, etw являются структурированными, а от остальных источников – неструктурированные.

Список компонентов сбора, которые поддерживают фильтрацию, приведен в разделе Компоненты сбора событий.

Пример фильтрации по белому и черному списку:

filters:
  whitelist:
     - "^localhost.*$"
  blacklist:
     - "^.*[0-9]$"

Пример фильтрации только по черному списку:

filters: blacklist: ["^M.*", "^D.*", "^L.*", "^\s+.*"]

Пример добавления фильтра в компонент сбора:

# Компонент сбора ssh
ssh_collector: &ssh_collector
  id: "ssh_collector"
  user: "user"
  remote_servers: ["<ip адрес удаленного узла>", "<имя удаленного узла>"]
  port: 22
  rsa: "./ssh"
  password: "password"
  command: "tail -F -n +$$$line$$$ /var/log/sshfile.txt"
  read_from_last: true
  ticker: 30
  format: "raw"
  log_level: "INFO"

# Фильтрация 
  filters:
    whitelist:
      - "^localhost.*$"
    blacklist:
      - "^.*[0-9]$"

Кодировка собираемых данных

Описание: Лог-коллектор позволяет настроить кодировку данных, собираемых от источников. Для этого в параметрах компонентов сбора используется секция encoding со следующими параметрами:

  • original_encoding – кодировка исходника. Если значение не указано, то лог-коллектор попытается определить кодировку самостоятельно;
  • change_to_utf8 – опция, позволяющая изменить кодировку исходника в utf8. Возможные значения:

    • true – опция включена;
    • false – опция выключена.

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

# Смена кодировки 
encoding: 
change_to_utf8: false 
original_encoding: "cp1251"

Пример настройки в компоненте сбора

# Компонент сбора eventlog_collector
eventlog_collector: & eventlog_collector
  id: "eventlog_collector"
  channel: ['Application']
  query: "*[System[Provider[@Name='Имя экземпляра СУБД>']]]"
  batch_size: 31
  timeout: 3
  poll_interval: 1
  read_from_last: false
  resolve_sid: false
  log_level: "INFO"
  worker_count: 1
  remote:
    enabled: true
    user: "<user_name>"
    password: "<password>"
    domain: "."
    remote_servers: ["<IP-адрес сервера с СУБД>"]
    auth_method: "Negotiate"

# Кодировка
  encoding:
    change_to_utf8: true
    original_encoding: "cp1251"

Формат отправки данных

Описание: Лог-коллетор позволяет настроить для компонентов сбора формат отправки сообщений. Для этого в параметрах компонентов сбора используется поле format, которое может иметь следующие значения:

  • raw – данные отправляются в том виде, в котором пришли;
  • json – пришедшие данные обогащаются дополнительной технической информацией и упаковываются в пакет json.

Данная настройка применима только к неструктурированным данным (кроме eventlog, wmi, odbc, etw).

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

external_command: &external_command
  id: "external_command"
  poll_interval: 1
  command: "bash ./assets/bash/shortloop.sh"
  log_level: "DEBUG"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"
  # Формат отправки сообщения
  format: "json"

Параметры чтения многострочных событий

Для компонентов сбора file, ftp, sfpt, smb добавлены параметры чтения многострочных событий:

  • event_delimiter. Символ разделения событий. Поддерживаются любые строки (один и несколько символов), также поддерживаются файлы в не-utf-8 кодировке. Если event_delimiter не указан, файлы будут читаться построчно.
  • remove_delimiter. Признак удаления разделителя. По умолчанию строка разделителя удаляется из прочитанных событий, но можно это переключить, прописав remove_delimiter: false.

При использовании event_delimiter автоматическое определение кодировки может срабатывать неправильно и разделение событий по разделителю не будет работать. Поэтому для файлов в кодировке отличной от utf-8 рекомендуется указывать параметр original_encoding.

Если указан разделитель, конец файла не считается концом события. Т.е. Если указан ';' прочитаны будут все события до последнего ';'. Остаток файла после него читаться не будет, т.к. событие получается неполное.

В секции конфигурации инпуты file, sftp, smb, ftp добавлены параметры чтения из файлов формата JSON и XML:

  • file_type - формат событий в файлах, допустимые значения: RAW, JSON, XML (по умолчанию RAW).
  • no_delimiter - отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false).

Например, для включения чтения JSON-событий нужно указать

file_type: "JSON"
no_delimiter: true

Аналогично, включается чтение XML-событий.

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

Компонент ETW

Описание: Сбор событий через механизм ETW (низкоуровневое логирование Windows).

Поддержка OC: Только Windows.

Поддержка фильтрации: Отсутствует.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
provider Required Поставщик событий. Формат для указания поставщика может быть как имя, так и GUID. Например, для получения списка поставщиков в системе можно использовать команду
# etw_get_providers
А чтобы сопоставить имя поставщика с его GUID, можно применить команду
# etw_get_provider_guid

Некоторые примеры GUID поставщиков ETW:

- Microsoft-Windows-Kernel-EventTracing. GUID: B675EC37-BDB6-4648-BC92-F3FDC74D3CA2;
- Microsoft-Windows-Kernel-General. GUID: A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D;
- Microsoft-Windows-Threat-Intelligence. GUID: F4E1897C-B85D-5668-F1D8-040F4D8DD344.
kernel_args Required Конфигурация ядра
provider_level Required Уровень критичности событий, зарегистрированных поставщиком. Возможные значения:
- Critical (критический);
- Error (ошибки);
- Warning (предупреждения);
- Information (информационные).
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент сбора etw
etw_settings: &etw_settings
  id: "etw_settings"
  provider: "Microsoft-Windows-Networking-Correlation"
  kernel_args: [ "0xFFFFFFFFFFFFFFFF" ]
  provider_level: "Information"
  log_level: "DEBUG"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент Eventlog

Описание: Сбор событий через Windows EventLog по механизму RPC.

Поддержка OC: Только Windows.

Поддержка фильтрации: Только по черному списку.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
channel Optional Наименование канала, из которого нужно собирать события. Поле указывается в случае, если не указано поле file
query Required Запрос для фильтрации событий для чтения с помощью выражения XPath. Возможные значения:
- структурированный XML запрос, например <QueryList><Query><Select Path=\"Security\">*[System[(EventID=42) and (Level=2)]]</Select></Query></QueryList>
- * - все параметры
file Optional Путь к файлу журнала. Поддерживаемы форматы .evt, .evtx, .etl
batch_size Required Размер запроса , который определяет количество событий, загружаемых за один раз
timeout Required Таймаут отправки запроса в секундах.
poll_interval Required Интервал, через который файл (или канал) проверяется на наличие новых записей лога.
read_from_last Optional Опция, которая позволяет продолжить чтение журнала с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
resolve_sid Optional Опция, которая позволяет конвертировать значения SID в имена пользователей. Возможные значения:
- true – опция включена;
- false – опция выключена.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
worker_count Required Количество воркеров, задействованных для обработки событий
buffer_size Required Размер буфера, который используется при получении событий. Значение по умолчанию: 1000. Для определения оптимального размера буфера используется следующая формула: batch_size * worker_count, где результат корректируется до ближайшего значения, кратного результатам умножения.
Изменить параметр вручную нельзя.
reconnect_min_timeout Optional Минимальное время ожидания переподключения к источнику в минутах (при недоступности источника). Значение по умолчанию: 1.
reconnect_max_timeout Optional Максимальное время ожидания переподключения к источнику в минутах (при недоступности источника). Значение по умолчанию 15. Максимальное значение: 30.
remote Optional Параметры удаленного подключения
remote{enabled} Optional Опция, которая управляет состоянием удаленного подключения. Возможные значения:
- true – удаленное подключение включено;
- false – удаленное подключение выключено.

Если значение указано в true, то все последующие поля обязательные для заполнения (Required)
remote{user} Optional Имя пользователя
remote{password} Optional Пароль пользователя
remote{domain} Optional Домен пользователя
remote{remote_servers} Optional Адрес удаленного сервера
remote{auth_method} Optional Способ авторизации. Доступные значения:
- Negotiate,
- Kerberos,
- NTLM

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

# Компонент Eventlog
eventlog: &event_log
  id: "event_log"
  channel: ["Application"]
  query: "*"
  file:
  batch_size: 31
  timeout: 3
  poll_interval: 1
  read_from_last: false
  resolve_sid: true
  log_level: "INFO"
  worker_count: 1
  buffer_size: 1000
  remote:
    enabled: false
    user: ""
    password: ""
    domain: ""
    remote_servers: ["localhost"]
    auth_method: "Negotiate"
  # Фильтрация по полям события, регулярные выражения
    filters:
    # Фильтры по времени
    # формат 2020-08-13 10:02:55.9689259 +0000 UTC
    created: ""
    # Числовые фильтры
    # Пример: ^([5-9]\d|\d{3,})$
    event_id: ""
    qualifiers: ""
    record_id: ""
    process_id: ""
    thread_id: ""
    version: ""
    # Строковые фильтры
    # Пример: DESKTOP-IDCMV6G
    computer_name: ""
    msg: ""
    # Возможные значения
    # Пример для level_text: Information, Warning, Error
    level_text: ""
    # Пример для task_text: Service State Event
    task_text: ""
    # Пример для opcode_text: ServiceShutdown
    opcode_text: ""
    # Пример для channel_text: System
    channel_text: ""
    # Пример для provider_text: System
    provider_text: "System"

  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент Eventlog XP

Описание: Сбор событий через Windows EventLog по механизму RPC.

Поддержка OC: Только Windows XP.

Поддержка фильтрации: Только по черному списку.

Параметры компонента сбора:

Поле Обязательность Описание
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
id Required Уникальный идентификатор компонента
channel Required Наименование канала, из которого нужно собирать события
poll_interval Required Интервал, через который канал проверяется на наличие новых записей лога.
read_from_last Required Опция, которая позволяет продолжить чтение журнала с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.

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

# Компонент Eventlog XP
eventlog_xp_input: &eventlog_xp_input
  log_level: "DEBUG"
  id: "eventlog_xp_input"
  channel: ['Application']
  poll_interval: 1
  read_from_last: false

Компонент External_command

Описание: Выполнение внешней команды в ОС.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
poll_interval Required Интервал между выполнением команд в секундах
command Required Исполняемая команда в формате bash/cmd для OC Linux/Windows соответственно
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент External_command
external_command: &external_command
  id: "external_command"
  poll_interval: 1
  command: "bash ./assets/bash/shortloop.sh"
  log_level: "DEBUG"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"
  # формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"

Компонент File_reciver

Описание: Сбор событий из локального файла.

Предварительно необходимо создать файл из которого будет идти чтение, например /var/log/logcollector/test_logs.txt.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
poll_interval Optional Интервал между чтением файлов, в секундах
files Required Список файлов для чтения
using_regexp Optional Опция, позволяющая использовать regexp (регулярные выражения) для поиска файлов. Возможные значения:
- true – опция включена;
- false – опция выключена.
regexp_starting_dir Optional Начальный каталог для поиска файлов
regexp_expression Optional Выражение для поиска файлов
dir_check_interval Optional Интервал поиска файлов в дереве каталогов. Значение указывается в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
Eсли read_from_last: false, то компонент каждый тик будет читать файл заново.
enable_watcher Optional Опция, позволяет включить мониторинг всех файлов с помощью file watchers. Возможные значения:
- true – опция включена;
- false – опция выключена.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
file_type Required Формат событий в файлах, допустимые значения:
- RAW;
- JSON:
- XML
Значение умолчанию RAW
no_delimiter Optional Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
event_delimiter Optional Символ разделения событий. Поддерживаются любые строки (один и несколько символов), также поддерживаются файлы в не-utf-8 кодировке. Если event_delimiter не указан, файлы будут читаться построчно.
remove_delimiter Optional Признак удаления разделителя. По умолчанию строка разделителя удаляется из прочитанных событий, но можно это переключить, прописав remove_delimiter: false.

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

# Компонент File_reciver
file_settings: &filetest
  id: "filetest"
  poll_interval: 1
  files: ["/var/log/logcollector/test_logs.txt"]
  using_regexp: false
  regexp_starting_dir: "."
  regexp_expression: "^.*_logs$"
  dir_check_interval: 2
  read_from_last: false
  enable_watcher: true
  log_level: "DEBUG"
  format: "json"
  event_delimiter: "\n"
  file_type: "RAW"
  no_delimiter: false
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент FTP

Описание: Чтение файла, доступного через FTP сервер. Предварительно необходимо создать файл из которого будет идти чтение.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
remote_servers Required Адреса для ftp запросов
port Required Порт для ftp запросов
user Required Имя пользователя для доступа к ftp-серверу
password Required Пароль пользователя
poll_interval Optional Интервал между чтением файла, в секундах
files Required Список файлов для чтения
using_regexp Optional Опция, позволяющая использовать regexp (регулярные выражения) для поиска файлов. Возможные значения:
- true – опция включена;
- false – опция выключена.
regexp_starting_dir Optional Начальный каталог для поиска файлов
regexp_expression Optional Выражение для поиска файлов
dir_check_interval Optional Интервал поиска файлов в дереве каталогов. Значение указывается в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
Eсли read_from_last: false, то компонент каждый тик будет читать файл заново.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
file_type Required Формат событий в файлах, допустимые значения:
- RAW;
- JSON:
- XML
Значение умолчанию RAW
no_delimiter Optional Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
event_delimiter Optional Символ разделения событий. Поддерживаются любые строки (один и несколько символов), также поддерживаются файлы в не-utf-8 кодировке. Если event_delimiter не указан, файлы будут читаться построчно.
remove_delimiter Optional Признак удаления разделителя. По умолчанию строка разделителя удаляется из прочитанных событий, но можно это переключить, прописав remove_delimiter: false.

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

# Компонент FTP
ftp_input: &ftp_input
  id: "ftp_input"
  remote_servers: ["localhost"]
  port: 21
  user: "testuser"
  password: "testpass"
  poll_interval: 1
  files: ["apache_logs"]
  using_regexp: true
  regexp_starting_dir: "."
  regexp_expression: "^.*_logs$"
  dir_check_interval: 2
  read_from_last: true
  log_level: "DEBUG"
  event_delimiter: "\n"
  file_type: "RAW"
  no_delimiter: false
  # Опция настройки формата отправки сообщения
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент HTTP_collector

Описание: Чтение файла, доступного через HTTP/HTTPs. Предварительно необходимо создать файл из которого будет идти чтение.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
remote_server Required Адрес для http запросов
port Required Порт для http запросов
basic_auth_user Optional Имя пользователя для базовой авторизации на http сервере. Если значение не указано, то считается что авторизация выключена
basic_auth_password: Optional Пароль пользователя
timeout Optional Ограничение времени обработки запросов, сделанных http клиентом. Значение указывается в секундах.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
enable_tls Optional Опция, которая позволяет использовать протокол Transport Layer Security (TLS) для обеспечения безопасной передачи данных. Возможные значения:
- true – опция включена;
- false – опция выключена.
key_file Optional Путь для файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_file Optional Путь для файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
ca_file Optional Путь до корневого сертификата
file Required Наименование файла для получения по HTTP
read_from_last Optional Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
poll_interval Optional Интервал между чтением файла, в секундах

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

# Компонент HTTP_collector
http_collector: &httpcollector
  id: "http"
  remote_server: "localhost"
  port: 80
  basic_auth_user: ""
  basic_auth_password: ""
  timeout: 10
  log_level: "INFO"
  enable_tls: false
  key_file: "certs/server.key"
  cert_file: "certs/server.crt"
  cert_key_pass: ""
  ca_file: "certs/ca.crt"
  file: ""
  read_from_last: false
  poll_interval: 3
  # Формат отправки данных - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки 
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент HTTP_request (HTTP_reciver)

Описание: Приём HTTP/HTTPs-запросов.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
host Required Адрес http сервера
port Required Порт http сервера
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
enable_tls Optional Опция, которая позволяет использовать протокол Transport Layer Security (TLS) для обеспечения безопасной передачи данных. Возможные значения:
- true – опция включена;
- false – опция выключена.
key_file Optional Путь для файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_file Optional Путь для файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
ca_file Optional Путь до корневого сертификата
require_client_cert Optional Опция, которая включает проверку клиентских сертификатов. Возможные значения:
- true – опция включена;
- false – опция выключена.
connections_limit Optional Лимит соединений с сервером

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

# Компонент HTTP_request (HTTP_reciver)
http_receiver: &http_receiver
  id: "http_receiver"
  host: "localhost"
  port: 15484
  log_level: "INFO"
  enable_tls: false
  key_file: "certs/server.key"
  cert_file: "certs/server.crt"
  cert_key_pass: ""
  ca_file: "certs/ca.crt"
  require_client_cert: false
  connections_limit: 10
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент MSEVEN6

Описание: Коллектор для сбора событий по протоколу MS-EVEN6 с Windows Vista и выше.

Поддержка OC: Linux.

Поддержка фильтрации: Только по черному списку.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
sources Required Список источников для сбора событий
sources{host} Required Адрес удаленного сервера, с которого будут собираться события
sources{domain} Required Наименование домена источника
sources{user} Required Имя пользователя для доступа к удаленному серверу
sources{password} Required Пароль пользователя
sources{channel} Required Наименование канала, из которого нужно собирать события
sources{query} Required Запрос для фильтрации событий для чтения с помощью выражения XPath. Возможные значения:
- структурированный XML запрос, например <QueryList><Query><Select Path=\"Security\">*[System[(EventID=42) and (Level=2)]]</Select></Query></QueryList>
- * - все параметры
sources{timeout_msec} Required Ограничение на время выполнения запроса в миллисекундах, по умолчанию 1000. Для снятия ограничения укажите значение -1
batch_size Required Размер запроса , который определяет количество событий, загружаемых за один раз
poll_interval Required Интервал между запросами в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение запроса с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
python_path Required Путь для запуска python. Рекомендуется использовать venv, создается командой
# make mseven6venv
python_service_port Required Порт для взаимодействия с python сервис-прослойкой
switch_count Optional В случае, если указано несколько источников или каналов, опция считает число событий и при достижении указанного значения, переключается на чтение следующего источника
render_cache_ttl Optional Время жизни записи в кэше рендеринга полей (в секундах), если не задано или 0, записи не удаляются
request_interval_msec Required Интервал между запросами событий в милисекундах

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

# Компонент mseven6
mseven6: &mseven6
  id: "test_mseven6"
   sources:
    -
      host: "192.168.56.6"
      domain: ""
      user: "user"
      password: "0000"
      channel: ["Application"]
      query: "*"
      timeout_msec: 1000
  batch_size: 20
  poll_interval: 1
  read_from_last: true
  log_level: "DEBUG"
  python_path: "./bin/mseven6venv/bin/python"
  python_service_port: 9999
  switch_count: 100
  render_cache_ttl: 600
  request_interval_msec: 100
  # Блок фильтрации по регулярным выражениям
  filters:
    # Время
    # формат 2020-08-13 10:02:55.9689259 +0000 UTC
    created: ""
    # Числовые фильтры
    # Пример для числовых фильтров - ^([5-9]\d|\d{3,})$
    event_id: ""
    qualifiers: ""
    record_id: ""
    process_id: ""
    thread_id: ""
    version: ""
    # Строковые фильтры
    # пример: DESKTOP-IDCMV6G
    computer_name: ""
    msg: ""
    # Возможные значения: Information, Warning, Error
    level_text: ""
    # Пример: Service State Event
    task_text: ""
    # Пример: ServiceShutdown
    opcode_text: ""
    # Пример: System
    channel_text: ""
    # Пример: System
    provider_text: "System"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент Netflow (nf)

Описание: Прием NetFlow трафика.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
host Required Адрес Netflow сервера
port Required Порт Netflow сервера
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
sock_buf_size Optional Размер буфера сообщений. Если параметр не задан, то значение берется из параметра Netflow сервера SO_RCVBUF

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

# Компонент Netflow (nf)
nf_input: &nf_input
  id: "nf_input"
  host: "localhost"
  port: 15487
  log_level: "INFO"
  sock_buf_size: 0

Компонент ODBC

Описание: Чтение данных из СУБД (MySQL, Oracle, MS SQL, PostgreSQL).

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Нет.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
categories Optional Категория к которой относится данный компонент сбора
poll_interval Optional Интервал между запуском запроса в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
connection_string Required Строка подключения к базе данных
sql Required SQL запрос к базе данных
bookmark_field Required Поле, которое будет использоваться как закладка для сохранения позиции, обязательный параметр
Поле должно быть целочисленным
Поле должно быть указано в операторе SELECT sql запроса

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

  # Компонент ODBC
  id: "odbc_test"
  categories: "file"
  poll_interval: 1
  read_from_last: false
  connection_string: "server=localhost;port=3306;driver=MySQL ODBC 8.0 Driver;database=pangeo;user=root;password=example;"
  sql: >
    SELECT id, message
    FROM pangeo.logs_table WHERE id > ?;
  bookmark_field: "id"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент Opsec_lea

Описание: Сбор событий с источников Checkpoint Firewall (opsec).

Поддержка OC: Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
exec_path Required Директория расположения утилиты lea_client
agent_addr Optional IP-адрес расположения утилиты lea_client
agent_port Optional Порт для подключения к утилите lea_client
poll_interval Required Интервал проверки наличия новых записей в журналах. Значение задается в секундах
read_from_last Required Сохранение позиции последнего чтения из журнала (сохранение на диск), возобновление чтения с последней сохраненной позиции.
remote_server Required IP-адрес лог-коллектора
auth_port Required Порт для аутентификации на лог-коллектора
auth_type Required Способ аутентификации для OPSEC
opsec_sic_name Required Официальное имя приложения OPSEC, которое является полным именем приложения, определённым сервером
opsec_sslca_file Required Путь к файлу, который содержит цифровой сертификат приложения OPSEC
opsec_entity_sic_name Required DN сервера Checkpoint
opsec_sic_policy_file Required Путь к файлу политики SIC
log_filename Required Наименование файла журнала
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент Opsec_lea
opsec_lea: &opsec_lea
  id: "opsec_lea"
  exec_path: "/pangeo_radar/opsec"
  agent_addr: "127.0.0.1"
  agent_port: 48181
  poll_interval: 1
  read_from_last: false
  remote_server: "192.168.1.254"
  auth_port: 18184
  auth_type: "sslca"
  opsec_sic_name: "CN=SyslogClient,O=sms.local.gc95e2"
  opsec_sslca_file: "/home/user/opsec.p12"
  opsec_entity_sic_name: "CN=cp_mgmt,O=sms.local.gc95e2"
  opsec_sic_policy_file: ""
  log_filename: "fw.log"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"

Компонент SFTP

Описание: Чтение файла, доступного через SFTP.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
remote_servers Required Адрес sftp сервера
port Required Порт подключения к sftp серверу
user Required Имя пользователя ssh
password Required Пароль пользователя ssh
poll_interval Optional Интервал между сканированием файла журнала. Значение задается в секундах
files Required Список файлов журналов
using_regexp Optional Опция, позволяющая использовать regexp (регулярные выражения) для поиска файлов. Возможные значения:
- true – опция включена;
- false – опция выключена.
regexp_starting_dir Optional Начальный каталог для поиска файлов
regexp_expression Optional Выражение для поиска файлов
dir_check_interval Optional Интервал поиска файлов в дереве каталогов. Значение указывается в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
Eсли read_from_last: false, то компонент каждый тик будет читать файл заново.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
file_type Required Формат событий в файлах, допустимые значения:
- RAW;
- JSON:
- XML
Значение умолчанию RAW
no_delimiter Optional Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
event_delimiter Optional Символ разделения событий. Поддерживаются любые строки (один и несколько символов), также поддерживаются файлы в не-utf-8 кодировке. Если event_delimiter не указан, файлы будут читаться построчно.
remove_delimiter Optional Признак удаления разделителя. По умолчанию строка разделителя удаляется из прочитанных событий, но можно это переключить, прописав remove_delimiter: false.

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

# Компонент SFTP
sftptest: &sftptest
  id: "sftptest"
  remote_servers: ["localhost"]
  port: 22
  user: "foo"
  password: "pass"
  poll_interval: 1
  files: ["/upload/apache_logs"]
  using_regexp: true
  regexp_starting_dir: "upload"
  regexp_expression: "^.*_logs$"
  dir_check_interval: 2
  read_from_last: true
  log_level: "DEBUG"
  event_delimiter: "\n"
  file_type: "RAW"
  no_delimiter: false
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
     change_to_utf8: false
     original_encoding: "cp1251"

Компонент SMB

Описание: Чтение файла, доступного через SMB.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
remote_servers Required Адрес SMB сервера
port Required Порт SMB сервера
share Required Путь к папкам и файлам, открытым к свободному доступу  на сервере, использующем протокол SMB. должен соответствовать формату <share> или \\<server>\<share>
domain Required Домен SMB сервера
user Required Имя пользователя для подключения к SMB серверу
password Required Пароль пользователя
kerberos Optional Настройки аутентификации kerberos
kerberos{enabled} Optional Опция, позволяющая использовать для подключения к SMB серверу аутентификацию с помощью kerberos. Возможные значения:
- true – опция включена;
- false – опция выключена.
kerberos{target_spn} Optional Имя целевого сервиса (service principal name)
kerberos{realm} Optional Область сети, используемая kerberos. Параметр регистрозависимый, обычно пишется в верхнем регистре и совпадает с именем домена
kerberos{config_path} Optional Путь до конфигурации kerberos
poll_interval Required Интервал между запуском сканирования файлов. Значение указывается в секундах
files Required Список файлов журналов
using_regexp Optional Опция, позволяющая использовать regexp (регулярные выражения) для поиска файлов. Возможные значения:
- true – опция включена;
- false – опция выключена.
regexp_starting_dir Optional Начальный каталог для поиска файлов
regexp_expression Optional Выражение для поиска файлов
dir_check_interval Optional Интервал поиска файлов в дереве каталогов. Значение указывается в секундах
read_from_last Optional Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
Eсли read_from_last: false, то компонент каждый тик будет читать файл заново.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
file_type Required Формат событий в файлах, допустимые значения:
- RAW;
- JSON:
- XML
Значение умолчанию RAW
no_delimiter Optional Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
event_delimiter Optional Символ разделения событий. Поддерживаются любые строки (один и несколько символов), также поддерживаются файлы в не-utf-8 кодировке. Если event_delimiter не указан, файлы будут читаться построчно.
remove_delimiter Optional Признак удаления разделителя. По умолчанию строка разделителя удаляется из прочитанных событий, но можно это переключить, прописав remove_delimiter: false.

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

# Компонент SMB
smb: &smb
  id: "smb"
  remote_servers: ["pdc.pangeo.test"]
  port: 445
  share: "\\\\pdc.pangeo.test\\access"
  domain: "pangeo.test"
  user: "test1"
  password: "1qaz2WSX"
  kerberos:
    enabled: false
    target_spn: "pdc"
    realm: "PANGEO.TEST"
    config_path: "assets/krb5/krb5.conf"
  poll_interval: 1
  files: [ "hello.txt" ]
  using_regexp: false
  regexp_starting_dir: "."
  regexp_expression: "^hello1.txt$"
  dir_check_interval: 2
  read_from_last: true
  log_level: "DEBUG"
  event_delimiter: "\n"
  file_type: "RAW"
  no_delimiter: false
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент SNMP

Описание: Приём SNMP Traps.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
host Required Адрес SNMP сервера
port Required Порт SNMP сервера
allow_authenticated_only Required Опция, которая включает прием только аутентифицированных SNMP v3 Traps. Возможные значения:
- true – опция включена;
- false – опция выключена.
mib_dirs Required Список директорий с .mib файлами для конвертации oid
Если не указаны, oid будут передаваться в сыром виде
auth_proto Required Методы аутентификации. Возможные значения:
- MD5
- SHA
encrypt_proto Required Метод шифрования. Поддерживается только DES.
user_name Required Имя SNMP пользователя
authentication_passphrase Required Пароль аутентификации. Используется с MD5 или SHA
privacy_passphrase Required Пароль шифрования для DES
authoritative_engine_id Required Используется в SNMPv3 для идентификации сущностей.

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

# Компонент SNMP
snmptrap: &snmptrap
  id: "snmptrap"
  log_level: "INFO"
  host: "localhost"
  port: 22
  allow_authenticated_only: false
  mib_dirs:
    - dir1
    - dir2
    - dir3
  auth_proto: ""
  encrypt_proto: ""
  user_name: ""
  authentication_passphrase: ""
  privacy_passphrase: ""
  authoritative_engine_id: ""
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент SSH (ssh_collector)

Описание: Выполнение внешней команды через SSH.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
user Required имя пользователя для удаленного подключения
remote_servers Required Список хостов для подключения
port Required Порт для подключения
rsa Required Путь к файлу с ssh ключами
password Required Пароль от файла с ключами
command Required Команда для выполнения по ssh
read_from_last Required Опция, которая позволяет продолжить чтение файла с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
Eсли read_from_last: false, то компонент каждый тик будет читать файл заново.
ticker Required Интервал между выполнением команд. Значение указывается в секундах
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент SSH
ssh_collector_input: &ssh_collector_input
  id: "ssh_collector_input"
  user: "anduser"
  remote_servers: ["127.0.0.1"]
  port: 22
  rsa: "~/.ssh/id_rsa"
  password: ""
  command: "tail -F -n +$$$line$$$ /opt/pangeo/test.log"
  read_from_last: false
  ticker: 30
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент tcp_input (tcp_reciver)

Описание: Приём TCP трафика

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
host Required IP-адрес сервера, с которого будут приниматься события
port Required Порт сервера
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
enable_tls Optional Опция, которая позволяет использовать протокол Transport Layer Security (TLS) для обеспечения безопасной передачи данных. Возможные значения:
- true – опция включена;
- false – опция выключена.
key_file Optional Путь для файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_file Optional Путь для файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
ca_file Optional Путь до корневого сертификата
require_client_cert Optional Опция, которая включает проверку клиентских сертификатов. Возможные значения:
- true – опция включена;
- false – опция выключена.
compression_enabled Required Нужна ли распаковка тела запроса, ожидается, что клиент упаковал тело запроса в архив. Возможные значения:
- true – опция включена;
- false – опция выключена.
connections_limit Required Количество соединений которые может принять сервер
buf_size Required Размер буфера сообщений

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

# Компонент tcp_input (tcp_reciver)
tcp_input: &tcp_input
  id: "tcp_input"
  host: "localhost"
  port: 15486
  log_level: "INFO"
  enable_tls: false
  key_file: "certs/server.key"
  cert_file: "certs/server.crt"
  cert_key_pass: ""
  ca_file: "certs/ca.crt"
  require_client_cert: false
  compression_enabled: false
  connections_limit: 10
  buf_size: 16384
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент udp_input (udp_reciver)

Описание: Приём UDP трафика.

Поддержка OC: Windows, Linux.

Поддержка фильтрации: Есть.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
host Required IP-адрес сервера, с которого будут приниматься события
port Required Порт сервера
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
sock_buf_size Required Размер буфера сообщений. Если значение не задано, то будет использовано значение параметра сокета SO_RCVBUF

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

# Компонент udp_input (udp_reciver)
udp_receiver: &udp_receiver
  id: "udp_receiver"
  host: "localhost"
  port: 15485
  log_level: "INFO"
  sock_buf_size: 0
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"

Компонент WMI

Описание: Cбор событий через механизм WMI.

Поддержка OC: Windows.

Поддержка фильтрации: Только по черному списку.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
poll_interval Required Интервал между запуском wmi запроса. Значение указывается в секундах
remote_servers Required Список серверов к которым будет образаться wmi запрос
user Required Имя пользователя, выполняющего запрос. Если запрос выполняется локально, то параметр необязательный (Optional)
password Required Пароль пользователя. Если запрос выполняется локально, то параметр необязательный (Optional)
read_from_last Optional Опция, которая позволяет продолжить чтение с последней сохраненной позиции после перезапуска. Возможные значения:
- true – опция включена;
- false – опция выключена.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
start_from_date Optional Опция, которая позволяет указать момент, с которого необходимо начать собирать событий. Значение указывается в формате timestamp, например 2025-01-24T00:00:00+03:00
logfiles Optional Список журналов, из которых собираются события (Application, System и т.п.). Если параметр не задан, то будут собираться все журналы

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

# Компонент WMI
wmi: &wmi
  id: "wmi"
  poll_interval: 1
  remote_servers:
    - "localhost"
  user:
  password:
  read_from_last: false
  log_level: "DEBUG"
  encoding:
    change_to_utf8: false
    original_encoding: "cp1251"
  # Собирать события начиная с заданного момента
  start_from_date: "2022-03-24T00:00:00+03:00"
  # Список журналов, из которых собираются события (Application, System и т.п.). Если пустой или не указан, собираются все события
  logfiles: ["Application"]
  # блэклист фильтры по полям события, используются регулярные выражения - https://wiki.andersenlab.com/pages/viewpage.action?pageId=153062062
  wmi_filters:
    # числовые поля
    category: "0+"
    event_code: ""
    event_identifier: ""
    event_type: ""
    record_number: ""
    # строковые поля
    computer_name: ""
    message: ""
    source_name: ""
    type: ""
    user: ""
    time_generated: ""
    time_written: ""

Компоненты отправки событий

Описание: Компоненты отправки событий отвечают за пересылку событий в Платформу Радар. Обычно принимает события от лог-коллектора сервис Log-proxy, но при необходимости можно настроить отправку событий напрямую в сервис Kafka. А для реализации взаимодействия со внешними системами все события можно отправить в файл.

Список компонентов отправки событий:

  • file_output – запись в файл;
  • kafka_output – запись в сервис Kafka;
  • tcp_output – отправка TCP трафика;
  • udp_output – отправка UDP трафика.

Компоненты отправки событий работают только в активном режиме.

По принципу сетевого взаимодействия все компоненты отправки могут работать как локально, так и удаленно. За исключением компонента file_output, который работает только локально.

Компонент записи в файл

Описание: Компонент отправляет получаемый поток событий в локальный файл.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
file Required Путь до файла, в который будут записываться события
rotation_size Optional Параметр, который определяет максимальный размер файла в мегабайтах, при достижении которого будет выполнена ротация файла.
Если параметр не указан или указано значение 0, то ротация не выполняется.
Значение по умолчанию: 0.
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент записи событий в локальный файл
out_file: &out_file
  id: "file_outputs"
  file: "test_file.txt"
  rotation_size: 0
  log_level: "INFO"

Компонент записи в сервис Kafka

Описание: Компонент отправляет получаемый поток событий в сервис Kafka.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
require_cert Optional Опция, включающая проверку сертификатов. Возможные значения:
- true – опция включена;
- false – опция выключена.
ssl_enable Optional Опция, включающая SSL
cert_file Optional Путь до файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
key_file Optional Путь до файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
ca_file Optional Путь до корневого сертификата
timeout Optional Таймаут отправки событий. Значение указывается в секундах
topic Required Наименование топика, в который будут попадать события
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
brokers Required Брокеры сервиса Kafka
queue_length_limit Optional Максимальное количество сообщений в буфере
queue_time_limit Optional Максимальное время жизни событий в очереди. Значение указывается в секундах

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

# Компонент kafka_outputs
kafka: &kafka
  id: "kafka1"
  require_cert: false
  ssl_enable: false
  cert_file: "certs/server.crt"
  key_file: "certs/server.key"
  cert_key_pass: ""
  ca_file: "certs/ca.crt"
  timeout: 10
  topic: "foo"
  log_level: "DEBUG"
  brokers:
    - "localhost:19092"
    - "localhost:29092"
    - "localhost:39092"
  #queue_length_limit: 3
  #queue_time_limit: 3

Компонент отправки по TCP траффику

Описание: Компонент отправляет получаемый поток событий в сервис Log-proxy по tcp траффику.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
target_host Required IP-адрес Платформы Радар/или балансера
port Required Порт, на который отправлять события. Для каждого источника в платформе предусмотрен свой порт. В характеристиках каждого источника приведен необходимый порт для настройки компонента, например для источника Checkpoint Firewall (opsec) должен быть указан порт 2510
batch_mode_enable Optional Опция. включающая batch режим. Возможные значения:
- true – опция включена;
- false – опция выключена.
batch_flush_interval Optional Интервал отправки пакета в секундах
batch_flush_limit Optional Максимальное количество сообщений которые попадут в пакет
ssl_compression Optional Опция, позволяющая включить сжатие,
Не рекомендуется использовать без включенного batch режима, иначе ощутимо замедлится отправка пакетов
require_cert Optional Опция, включающая проверку сертификатов. Возможные значения:
- true – опция включена;
- false – опция выключена.
ssl_enable Optional Опция, включающая SSL. Возможные значения:
- true – опция включена;
- false – опция выключена.
cert_file Optional Путь для файла сертификата. Если опция enable_tls: true, то параметр обязательный (Required)
key_file Optional Путь для файла ключей. Если опция enable_tls: true, то параметр обязательный (Required)
cert_key_pass Optional Пароль для расшифровки файла ключей, если параметр не указан, считается что файл не зашифрован
ca_file Optional Путь до корневого сертификата
log_level Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal
queue_length_limit Optional Максимальное количество сообщений в буфере
queue_time_limit Optional Максимальное время жизни событий в очереди. Значение указывается в секундах

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

# Компонент отправки по TCP траффику 
tcp_sender: &tcp_sender
  id: "tcp_sender"
  target_host: "0.0.0.0"
  port: 15481
  batch_mode_enable: false
  batch_flush_interval: 5
  batch_flush_limit: 500
  ssl_compression: false
  require_cert: false
  ssl_enable: false
  cert_file: "certs/server.crt"
  key_file: "certs/server.key"
  cert_key_pass: ""
  ca_file: "certs/ca.crt"
  log_level: "DEBUG"
  #queue_length_limit: 3
  #queue_time_limit: 3

Компонент отправки по UDP траффику

Описание: Компонент отправляет получаемый поток событий в сервис Log-proxy по udp траффику.

Параметры компонента сбора:

Поле Обязательность Описание
id Required Уникальный идентификатор компонента
target_host Required IP-адрес Платформы Радар/или балансера
port Required Порт, на который отправлять события. Для каждого источника в платформе предусмотрен свой порт. В характеристиках каждого источника приведен необходимый порт для настройки компонента, например для источника Checkpoint Firewall (opsec) должен быть указан порт 2510
sock_buf_size Required Размер буфера сообщений. Если значение не задано, то будет использовано значение параметра сокета SO_RCVBUF
log_level Optional Уровень журналирования компонента. Возможные значения:
- ERROR;
- WARN;
- INFO;
- DEBUG
Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

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

# Компонент отправки по UDP траффику
udp_sender: &udp_sender
  id: "udp_sender"
  target_host: "0.0.0.0"
  port: 15483
  sock_buf_size: 0
  log_level: "INFO"

Включение компонентов сбора (collectors)

Описание: Компонент включает все настроенные компоненты сбора.

Секция конфигурационного файла: collectors.

Обязательность секции: Required.

Пример включения компонентов сбора:

collectors:
  log_level: "DEBUG"
  opsec_lea:
   - <<: *opsec_lea
  etw:
   - <<: *etw
  files:
   - <<: *filetest
  external_command:
   - <<: *ectest
  wmi:
   - <<: *wmi_settings
  event_log:
   - <<: *event_log
  odbc:
   - <<: *odbctest

Где:

  • log_level – уровень журналирования компонента. Возможные значения:

    • ERROR;
    • WARN;
    • INFO;
    • DEBUG

    Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

  • opsec_lea, event_log и т.д. – наименование настройки компонента сбора;

  • <<: *opsec_lea, <<: *etw и т.д. – уникальная ссылка для запуска компонента, которая указывается при настройке компонента сбора (см. раздел Добавление и идентификация компонентов сбора и отправки).

Включение компонентов отправки (senders)

Описание: Компонент включает все настроенные компоненты отправки.

Секция конфигурационного файла: senders.

Обязательность секции: Required.

Пример включения компонентов отправки:

senders:
  port: 48001
  log_level: "INFO"
  stdout:
    - id: "stdout"
    - log_level: "DEBUG"
  out_file:
    - <<: *file_output
  kafka:
    - <<: *kafka_output
  tcp:
    - <<: *tcp_output
  udp:
    - <<: *udp_output

Где:

  • log_level – уровень журналирования компонента. Возможные значения:

    • ERROR;
    • WARN;
    • INFO;
    • DEBUG

    Если параметр не указан, то для ведения журнала работы компонента будет использоваться параметр, настроенный в секции journal

  • stdout – параметр, позволяющий настроить отправку событий в журнал;

  • out_file, kafka и т.д. – наименование настройки компонента сбора;
  • <<: *file_output, <<: *kafka_output и т.д. – уникальная ссылка для запуска компонента, которая указывается при настройке компонента сбора (см. раздел Добавление и идентификация компонентов сбора и отправки).

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

Для организации маршрутизации необходимо выполните следующие действия

  1. Добавьте маршруты взаимодействия между компонентами сбора событий и компонентами отправки событий.

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

    route_1: &route_1
    collector_id:
        - "eventlog_collector"
        - "tcp_input"
    sender_id:
        - "tcp_output"
    
  2. Включите маршруты в секции routers.

    Пример включения маршрута:

    routers:
    - <<: *route_1
    

Внимание! Компоненты, используемые в маршрутах, обязательно должны быть настроены и включены в секциях collectors и senders.

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