Настройка лог-коллектора
Общие данные
Настройка лог-коллектора заключается в конфигурировании программных компонентов лог-коллектора под особенности инфраструктуры организации.
Настройка выполняется в конфигурационном файле config.yaml
. Расположение конфигурационного файла:
- ОС Windows:
%ProgramFiles%\Log Collector\config.yaml
- ОС Linux:
/opt/pangeoradar/configs/logcollector/config.yaml
Лог-коллектор включает в себя следующие компоненты:
- Централизованное управление – управление конфигурацией лог-коллектора из веб-интерфейса Платформы Радар;
- Контроллер – управление всеми компонентами лог-коллектора;
- Сбор метрик – осуществляет сбор статистики по работе лог-коллектора;
- Секреты – это необходимые для работы/настройки значения, которые будут зашифрованы и вставлены в нужные места в файле конфигурации для сокрытия информации;
- API управление – предоставляет возможность удаленного управления лог-коллектором и мониторинга;
- Журналирование – осуществляет ведение журнала работы лог-коллектора;
- Активный/пассивный сбор событий – осуществляют сбор событий от источников;
- Отправка событий – осуществляют оправку событий согласно параметрам маршрутизации;
- Включение компонентов сбора – осуществляет включение всех компонентов сбора событий;
- Включение компонентов отправки – осуществляет включение всех компонентов отправки событий;
- Маршрутизация – особая секция конфигурационного файла лог-коллетора, отвечающая за взаимодействие сбора и отправки событий.
Централизованное управление
Описание: Компонент позволяет настроить параметры подключения лог-коллектора к веб-интерфейсу платформы.
Секция конфигурационного файла: 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"
Просмотр метрик: Выполните следующие действия:
- Перейдите в веб-интерфейс платформы через который может выполняться централизованное управление лог-колектором.
- Перейдите в раздел Администрирование → Мониторинг и из выпадающего списка выберите 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) | Метрика показывает изменение количества компонентов отправки с течением времени | ![]() |
Секреты
Описание: Секреты лог-колектора - это необходимые для работы/настройки значения, которые будут зашифрованы и вставлены в нужные места в файле конфигурации для сокрытия информации.
Секреты бывают двух видов:
- Глобальные – по умолчанию применяются ко всем коллекторам для удобства работы с ними;
- Локальные – переопределяют параметры глобальных секретов для конкретного экземпляра лог-коллектора.
Локальные секреты всегда имеют приоритет выше глобальных.
Создание секретов должно выполняться через веб-интерфейс платформы:
- Перейдите в раздел Администрирование → Кластер → вкладка Узлы.
- Откройте форму просмотра узла с ролью
agent
илиagent win
. -
В блоке секреты агента нажмите кнопку Создать секрет (см. рисунок 1).
Рисунок 1 – Форма просмотра узла. Блок "Секреты агента"
-
Откроется окно "Создать секрет" (см. рисунок 2).
Рисунок 1 – Окно "Создать секрет"
-
Укажите в окне следующую информацию:
- в поле Название секрета укажите наименование секрета;
- в поле Значение секрета укажите данные, которые необходимо зашифровать;
- если необходимо применить секрет ко всем лог-коллекторам, то включите параметр Глобальный.
Использование секретов в лог-коллекторе: Секрет добавляется в нужную строку конфигурационного файла в следующем виде: {{.<название_секрета>}}
.
Например, необходимо указать параметры подключения пользователя к базе данных.
Для этого необходимо создать два секрета:
- Для "Имени пользователя" создаем секрет с наименованием 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
и т.д. – уникальная ссылка для запуска компонента, которая указывается при настройке компонента сбора (см. раздел Добавление и идентификация компонентов сбора и отправки).
Маршрутизация событий
Для организации маршрутизации необходимо выполните следующие действия
-
Добавьте маршруты взаимодействия между компонентами сбора событий и компонентами отправки событий.
Пример настройки маршрута:
route_1: &route_1 collector_id: - "eventlog_collector" - "tcp_input" sender_id: - "tcp_output"
-
Включите маршруты в секции
routers
.Пример включения маршрута:
routers: - <<: *route_1
Внимание! Компоненты, используемые в маршрутах, обязательно должны быть настроены и включены в секциях
collectors
иsenders
.
Начиная с версии 3.7.2 в Платформе Радар доступен сервис Log-proxy, который значительно повышает производительность пересылки событий. Сервис имеет свои настройки маршрутизации. Подробнее см. раздел Настройка пересылки событий через сервис Log-proxy.