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

Пример конфигурации лог-коллектора

#############################
#     Основные настройки    #
#############################

# Путь до файла лицензии
license_path: "./pgr-agent.lic"

# Централизованное управление
cluster:
  url: "http://<IP-адрес Платформы  Радар>:9000/cm/api/agent/"
  api_key: "<ключ API>"
  # Отключить проверку сертификата
  skip_verify: false
  # Количество попыток переподключения в случае ошибки (по умолчанию 1)
  max_try_count: 5
  # Время ожидания между переподключениями в секундах (по умолчанию 0)
  reconnect_interval_sec: 30

# Контроллер (обязательная секция)
controller:
  # Порт модуля, обязательный параметр
  port: 48000
  # Уровень логирования, если не указан используется указанный в модуле журналирования
  log_level: "ERROR"
  # Интервал проверки места на диске, по умолчанию 60 секунд
  disk_space_check_sec: 60

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

# Настройка пути до секретов
# Путь к файлу с секретом
secret_file: "secret"
# Путь к хранилищу секретов
secret_storage: "secret.storage"

# API управление (обязательная секция)
api_server:
  # Адрес сетевого интерфейса, используемого лог-коллектором, обязательный параметр
  address: ""
  # Порт, по которому будет выполняться API-взаимодействие, обязательный параметр
  port: 8080
  # Таймаут чтения(получение запроса), обязательный параметр
  read_timeout: 60
  # Таймаут записи(отправка запроса), обязательный параметр
  write_timeout: 60
  # Время ожидания окончания обработки запроса при получении сигнала на остановку приложения, обязательный параметр
  wait: 5
  # Включение https
  enable_tls: false
  # Путь для файла сертификатов, если enable_tls: false параметр не обязательный
  cert_file: "certs/server.crt"
  # Путь для файла ключей, если enable_tls: false параметр не обязательный
  key_file: "certs/server.key"
  # Пароль для расшифровки файла ключей, если не указан считаем что файл не зашифрован
  cert_key_pass: ""
  # Включение проверки клиентского сертификата, обязательный параметр
  require_client_cert: true
  # Путь до корневого сертификата, обязательный параметр
  ca_file: "certs/ca.crt"
  # Уровень логирования, если не указан используется указанный в модуле журналирования
  log_level: "ERROR"

# Журнал (обязательная секция)
journal:
  # Порт модуля, обязательный параметр
  port: 48003
  # Дефолтный уровень логирования. Возможные значения - DEBUG, INFO, WARN, ERROR. Обязательный параметр
  log_level: "WARN"
  # Путь к файлу логов, обязательный параметр
  log_path: "journal.log"
  # Порог ротации файла логов, указывается в мегабайтах, обязательны параметр
  rotation_size: 10
  # Порог количества файлов истории, если не указано файлы удаляться не будут
  max_backups: 10
  # Максимальное количество дней для хранения старых файлов журнала на основе метки времени, если не указано файлы удаляться не будут
  max_age: 28

###########################################
#     Компоненты сбора событий (input)    #
###########################################

# Компонент ETW
etw_settings: &etw
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "etw1"
  # Поставщик событий. Формат для указания поставщика может быть как имя, так и GUID.
  provider: "Windows Kernel Trace"
  # Конфигурация ядра
  kernel_args: [ "ALPC", "CSWITCH", "DBGPRINT", "DISK_FILE_IO", "DISK_IO", "DISK_IO_INIT", "DISPATCHER",
                 "DPC", "DRIVER", "FILE_IO", "FILE_IO_INIT", "IMAGE_LOAD", "INTERRUPT", "MEMORY_HARD_FAULTS",
                 "MEMORY_PAGE_FAULTS", "NETWORK_TCPIP", "NO_SYSCONFIG", "PROCESS", "PROCESS_COUNTERS",
                 "PROFILE", "REGISTRY", "SPLIT_IO", "SYSTEMCALL", "THREAD", "VAMAP", "VIRTUAL_ALLOC" ]
  # Уровень критичности событий, зарегистрированных поставщиком
  provider_level: "Critical"
  # Уровень журналирования компонента
  log_level: "DEBUG"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент Eventlog
event_log_settings: &event_log
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "test_event_log"
  # Имя канала, используется если не указан путь к файлу
  channel: ["Application"]
  # Запрос описывающий тип получаемого события. есть возможность указать
  # XPath 1.0 или структурированный XML запрос. Если XPath содержит более 20 параметров, следует
  # использовать структурированный XML запрос. Чтобы получить все параметры укажите "*"
  query: "*"
  # Полный путь к лог файлу
  # Поддерживаемые форматы: .evt, .evtx, .etl
  file:
  # Размер запроса
  batch_size: 31
  #  Таймаут запроса в секундах
  timeout: 3
  # Интервал между запуском запроса в секундах (default: 1)
  poll_interval: 1
  # Чтение с последней сохраненной позиции, (default: false)
  read_from_last: false
  # Конвертировать SID в имя.
  resolve_sid: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Количество параллельных воркеров (по умолчанию 1)
  worker_count: 1
  # Примерный размер буфера для сбора событий (по умолчанию 1000)
  # Корректируется к ближайшему значению кратному batch_size * worker_count
  buffer_size: 1000
  # Параметры удаленного подключения
  remote:
    # Включение удаленного соединения
    enabled: false
    # Имя пользователя, обязательно если enabled: true
    user: ""
    # Пароль пользователя, обязательно если enabled: true
    password: ""
    # Домен пользователя
    domain: ""
    # Адрес удаленного сервера
    remote_servers: ["localhost"]
    # Доступные методы авторизации: Negotiate, Kerberos, NTLM
    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: ""
    # Возможные значения: Information, Warning, Error
    level_text: ""
    # Пример: Service State Event
    task_text: ""
    # Пример: ServiceShutdown
    opcode_text: ""
    # Пример: System
    channel_text: ""
    # Пример: System
    provider_text: "System"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент Eventlog XP
eventlog_xp_input: &eventlog_xp_input
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "eventlog_xp_input"
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Имя канала
  channel: ['Application']
  # Интервал между запуском запроса в секундах (default: 1)
  poll_interval: 1
  # Чтение с последней сохраненной позиции, (default: false)
  read_from_last: false
  # Фильтрация по полям события, регулярные выражения
  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: ''
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент External_command
external_command: &ectest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "ectest"
  # Интервал между выполнениями команд (default: 1)
  poll_interval: 1
  # Команда bash/cmd
  command: "bash ./assets/bash/shortloop.sh"
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"

# Компонент File_reciver
file_settings: &filetest
  # Названия модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "filetest"
  # Интервал между чтениями файла, в секундах (default: 1)
  poll_interval: 1
  # Список файлов для чтения
  files: ["./assets/apache_logs"]
  # Использовать regexp для поиска файлов
  using_regexp: false
  # Начальный каталог для поиска файлов
  regexp_starting_dir: "."
  # Регулярное выражение для поиска файлов
  regexp_expression: "^.*_logs$"
  # Интервал поиска файлов в секундах, в дереве каталогов (default: 2)
  dir_check_interval: 2
  # Чтение файла с последней позиции в следующем тике или после перезапуска
  read_from_last: true
  # Создание "file watchers" для всех файлов
  enable_watcher: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Разделитель событий в файле для многострочных событий, по умолчанию "\n" (построчное чтение)
  event_delimiter: "\n"
  # Формат событий в файлах, допустимые значения: RAW, JSON, XML (по умолчанию RAW)
  file_type: "RAW"
  # Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
  no_delimiter: false
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент FTP
ftptest: &ftptest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "ftptest"
  # Адреса для ftp запросов, обязательный параметр
  remote_servers: ["localhost"]
  # Порт для ftp запросов, обязательный параметр
  port: 21
  # Ftp пользователь, обязательный параметр
  user: "testuser"
  # Пароль пользователя, обязательный параметр
  password: "testpass"
  # Интервал между сканированием файла в секундах (default: 1)
  poll_interval: 1
  # Список файлов для чтения, обязательный параметр
  files: ["apache_logs"]
  # Использовать регулярное выражение для поиска файлов
  using_regexp: true
  # Начальный каталог для поиска файлов
  regexp_starting_dir: "."
  # Регулярное выражение для поиска файлов
  regexp_expression: "^.*_logs$"
  # Интервал проверки файлов (в секундах) в дереве каталогов (default: 2)
  dir_check_interval: 2
  # Чтение файла с последней позиции в следующем тике или после перезапуска
  read_from_last: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Разделитель событий в файле для многострочных событий, по умолчанию "\n" (построчное чтение)
  event_delimiter: "\n"
  # Формат событий в файлах, допустимые значения: RAW, JSON, XML (по умолчанию RAW)
  file_type: "RAW"
  # Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
  no_delimiter: false
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент HTTP_collector
http_collector: &httpcollector
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "http"
  # Удаленный адрес для вызовов http (обязательно)
  remote_server: "localhost"
  # Удаленный порт (default: 80)
  port: 80
  # Имя пользователя для базовой авторизации, если пустое, считаем что авторизация выключена
  basic_auth_user: ""
  # Пароль для базовой авторизации
  basic_auth_password: ""
  # Ограничение по времени для запросов, сделанных http-клиентом в секундах (default: 10)
  timeout: 10
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Использовать tls клиент
  enable_tls: false
  # Путь к .key файлу, обязательно если enable_tls: true
  key_file: "certs/server.key"
  # Путь к .crt файлу, обязательно если enable_tls: true
  cert_file: "certs/server.crt"
  # Пароль к файлу сертификатов
  cert_key_pass: ""
  # Путь к файлу с набором корневых центров сертификации, обязательно если enable_tls: true
  ca_file: "certs/ca.crt"
  # Имя файла для получения по http
  file: ""
  # Чтение файла с последней позиции в следующем тике или после перезапуска (default: false)
  read_from_last: false
  # Интервал между http-вызовами в секундах (default: 3)
  poll_interval: 3
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент HTTP_request (HTTP_reciver)
http_receiver: &httptest
  # названия модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "http"
  # Хост на каком запустится сервер (default: localhost)
  host: "localhost"
  # Порт на каком запустится сервер (обязательное)
  port: 15484
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Включение TLS соединения на сервере (default: false)
  enable_tls: false
  # Файл с приватным ключом (обязательное поле при включенном TLS)
  key_file: "certs/server.key"
  # Файл с сертификатом должно быть подписанным сертификатом CA (обязательное поле при включенном TLS)
  cert_file: "certs/server.crt"
  # Файл с паролем если сертификат подписывался с паролем
  cert_key_pass: ""
  # Файл с сертификатом CA (обязательное поле при включенном TLS)
  ca_file: "certs/ca.crt"
  # Проверять ли сертификаты клиента (default: false)
  require_client_cert: false
  # Количество соединений которые может принять сервер
  connections_limit: 10
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент mseven6
# Используетсядля сбора событий по протоколу MS-EVEN6 с Windows Vista и выше
mseven6: &mseven6
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "test_mseven6"
  # Список источников для сбора событий
  sources:
    -
      # Адрес удаленного сервера, с которого будут собираться события
      host: "192.168.56.6"
      # домен
      domain: ""
      #  Имя пользователя
      user: "user"
      # Пароль пользователя
      password: "0000"
      # Список каналов
      channel: ["Application"]
      # Запрос описывающий тип получаемого события. есть возможность указать
      # XPath 1.0 или структурированный XML запрос. Если XPath содержит более 20 параметров, следует
      # использовать структурированный XML запрос. Чтобы получить все параметры укажите "*"
      query: "*"
      # Ограничение на время выполнения запроса в мсек, по умолчанию 1000,
      # -1 убирает ограничение
      timeout_msec: 1000
  # Размер запроса
  batch_size: 20
  # Интервал между подключениями в секундах (default: 1)
  poll_interval: 1
  # Чтение с последней сохраненной позиции, (default: false)
  read_from_last: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Путь для запуска python (лучше использовать venv, создается командой make mseven6venv)
  python_path: "./bin/mseven6venv/bin/python"
  # Порт для взаимодействия с python сервисом-прослойкой
  python_service_port: 9999
  # Если указано несколько источников или каналов, считает указанное число событий и переключится на следующий
  switch_count: 100
  # Время жизни записи в кэше рендеринга полей (в секундах), если не задано или 0, записи не удаляются
  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:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент Netflow (nf)
nf_receiver: &nftest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "netflow"
  # Хост на каком запустится сервер (default: localhost)
  host: "localhost"
  # Порт на каком запустится сервер (обязательное)
  port: 15487
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Размер буфера сообщений (если не задано то берется из SO_RCVBUF)
  sock_buf_size: 0

# Компонент ODBC
# Чтение данных из СУБД (MySQL, Oracle, MS SQL, PostgreSQL)
# postgres sql connection string example
# Driver={PostgreSQL};Server=IP address;Port=5432;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
# mssql connection string example
# Driver={ODBC Driver 17 for SQL Server};Server=myServerAddress;Database=myDataBase;UID=myUsername;PWD=myPassword;
# Driver={ODBC Driver 17 for SQL Server};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
# Oracle
# DRIVER={Oracle ODBC Driver};UID=Kotzwinkle;PWD=whatever;DBQ=instl_alias;DBA=W;
odbctest: &odbctest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "odbc_test"
  # Категория к которой относится данный input
  categories: "file"
  # Интервал между запуском запроса в секундах (default: 1)
  poll_interval: 1
  # Чтение с последней сохраненной позиции (default: false)
  read_from_last: false
  # Строка подключения, обязательный параметр
  connection_string: "server=localhost;port=3306;driver=MySQL ODBC 8.0 Driver;database=pangeo;user=root;password=example;"
  # SQL запрос, обязательный параметр
  sql: >
    SELECT id, message
    FROM pangeo.logs_table WHERE id > ?;
  # Поле, которое будет использоваться как закладка для сохранения позиции, обязательный параметр
  # Поле должно быть целочисленным
  # Поле должно быть указано в операторе SELECT
  bookmark_field: "id"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент Opsec_lea
opsec_lea: &opsec_lea
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "opsec_lea"
  # Директория расположения утилиты lea_client
  exec_path: "/pangeo_radar/opsec"
  # IP-адрес расположения утилиты lea_client
  agent_addr: "127.0.0.1"
  # Порт для подключения к утилите lea_client
  agent_port: 48181
  # Периодичность проверки наличия новых записей в журналах.
  poll_interval: 1
  #  Сохранение позиции последнего чтения из журнала (сохранение на диск), возобновление чтения с последней
  #  Сохраненной позиции
  read_from_last: false
  # Сервер для сбора событий
  remote_server: "192.168.1.254"
  # Порт для аутентификации
  auth_port: 18184
  # Аутентификация для OPSEC
  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"
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
   # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"

# Компонент SFTP
sftptest: &sftptest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "sftptest"
  # Адреса для sftp запросов, обязательный параметр
  remote_servers: ["localhost"]
  # Порт для sftp запросов, обязательный параметр
  port: 22
  # Пользователь ssh, обязательный параметр
  user: "foo"
  # Пароль ssh, обязательный параметр
  password: "pass"
  # Интервал между сканированием файла в секундах (default: 1)
  poll_interval: 1
  # Список файлов для чтения, обязательный параметр
  files: ["/upload/apache_logs"]
  # Если установлено - использовать регулярное выражение для поиска файлов
  using_regexp: true
  # Начальный каталог для поиска файлов
  regexp_starting_dir: "upload"
  # Регулярное выражение для поиска файлов
  regexp_expression: "^.*_logs$"
  # Интервал проверки файлов (в секундах) в дереве каталогов (default: 2)
  dir_check_interval: 2
  # Чтениние файла с последней позиции в следующем тике или после перезапуска
  read_from_last: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Разделитель событий в файле для многострочных событий, по умолчанию "\n" (построчное чтение)
  event_delimiter: "\n"
  # Формат событий в файлах, допустимые значения: RAW, JSON, XML (по умолчанию RAW)
  file_type: "RAW"
  # Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
  no_delimiter: false
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент SMB
smb: &smb
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "smb"
  # Аддреса подключения, обязательный параметр
  remote_servers: ["pdc.pangeo.test"]
  # Порт подключения (default: 445)
  port: 445
  # SMB share. sharename должен соответсвовать формату `<share>` или `\\<server>\<share>`, обязательный параметр
  share: "\\\\pdc.pangeo.test\\access"
  # Домен
  domain: "pangeo.test"
  # Имя пользователя, обязательный параметр
  user: "test1"
  # Пароль пользователя, обязательный параметр
  password: "1qaz2WSX"
  # Настройки аутентификации kerberos
  kerberos:
    # Включение авторизации kerberos
    enabled: false
    # Имя целевого сервиса (service principal name)
    target_spn: "pdc"
    # Kerberos realm
    realm: "PANGEO.TEST"
    # Путь до конфигурации kerberos
    config_path: "assets/krb5/krb5.conf"
  # Интервал между запуском сканирования файлов в секундах (default: 1)
  poll_interval: 1
  # Список файлов для чтения, обязательный параметр
  files: [ "hello.txt" ]
  # Использовать регулярное выражение для поиска файлов
  using_regexp: false
  # Начальный каталог для поиска файлов
  regexp_starting_dir: "."
  # Регулярное выражение для поиска файлов
  regexp_expression: "^hello1.txt$"
  # Интервал проверки файлов (в секундах) в дереве каталогов (default: 2)
  dir_check_interval: 2
  # Чтение файла с последней позиции в следующем тике или после перезапуска
  read_from_last: true
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Разделитель событий в файле для многострочных событий, по умолчанию "\n" (построчное чтение)
  event_delimiter: "\n"
  # Формат событий в файлах, допустимые значения: RAW, JSON, XML, EVTX (по умолчанию RAW)
  file_type: "RAW"
  # Отсутствие разделителя событий в файле, используется для чтения событий в форматах JSON и XML без явного разделителя (по умолчанию false)
  no_delimiter: false
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент SNMP
snmptraptest: &snmptraptest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "snmptraptest"
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Адресс snmp менеджера
  host: "localhost"
  # Порт для запуска snmp менеджера
  port: 22
  # Принимать только аутентифицированные SNMP v3 Traps
  allow_authenticated_only: false
  # Список директорий с .mib файлами для конвертации oid
  # Если не указаны, oid будут передаваться в сыром виде
  mib_dirs:
    - dir1
    - dir2
    - dir3
  # Параметры безопасности
  # методы аутентификации. Возможные значения:
  # - MD5
  # - SHA
  auth_proto: ""
  # Методы шифрования. Поддерживается только DES.
  encrypt_proto: ""
  # Имя SNMP пользователя
  user_name: ""
  # Пароль аутентификации. Используется с MD5 или SHA
  authentication_passphrase: ""
  # Пароль шифрования для DES
  privacy_passphrase: ""
  # Используется в SNMPv3 для идентификации сущностей.
  authoritative_engine_id: ""
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"

# Компонент SSH (ssh_collector)
sshtest: &sshtest
  # Названия модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "sshtest"
  # Имя пользователя для удаленного подключения, обязательный параметр
  user: "anduser"
  # Список хостов для подключения, обязательный параметр
  remote_servers: ["127.0.0.1"]
  # Порт для подключения (default: 22)
  port: 22
  # Путь к файлу с ssh ключами, обязательный параметр
  rsa: "~/.ssh/id_rsa"
  # Пароль от файла с ключами
  password: ""
  # Команда для выполнения по ssh, обязательный параметр
  command: "tail -F -n +$$$line$$$ /opt/pangeo/test.log"
  # Если установлено - файл будет читаться с последней позиции в следующем тике или после перезапуска (default: false)
  read_from_last: false
  # Интервал между выполнением команд(в секундах)
  ticker: 30
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент tcp_input (tcp_reciver)
tcp_receiver: &tcptest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "tcp"
  # Хост на каком запустится сервер (default: localhost)
  host: "localhost"
  # Порт на каком запустится сервер (обязательное)
  port: 15486
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Включение TLS соединения на сервере (default: false)
  enable_tls: false
  # Файл с приватным ключом (обязательное поле при включенном TLS)
  key_file: "certs/server.key"
  # Файл с сертификатом должно быть подписанным сертификатом CA (обязательное поле при включенном TLS)
  cert_file: "certs/server.crt"
  # Файл с паролем если сертификат подписывался с паролем
  cert_key_pass: ""
  # Файл с сертификатом CA (обязательное поле при включенном TLS)
  ca_file: "certs/ca.crt"
  # Проверять ли сертификаты клиента (default: false)
  require_client_cert: false
  # Нужна ли распаковка тела запроса, ожидается, что клиент упаковал тело запроса в архив (default: false)
  compression_enabled: false
  # Количество соединений которые может принять сервер
  connections_limit: 10
  # формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # размер буфера в байтах, по умолчанию 4096
  buf_size: 10000
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент udp_input (udp_reciver)
udp_receiver: &udptest
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "udp"
  # Хост на каком запустится сервер (default: localhost)
  host: "localhost"
  # Порт на каком запустится сервер (обязательное)
  port: 15485
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "INFO"
  # Размер буфера сообщений (если незаданные то берется из SO_RCVBUF)
  sock_buf_size: 0
  # Формат отправки сообщения - как есть(raw), с обогащением(json)
  format: "json"
  # Опции смены кодировки
  encoding:
    # Использовать кодировку в UTF-8
    change_to_utf8: false
    # Кодировка оригинала
    original_encoding: "cp1251"

# Компонент WMI
wmi_settings: &wmi_settings
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "test_wmi"
  # Интервал между запуском запроса в секундах (default: 1)
  poll_interval: 1
  # Список серверов к которым уйдет wmi запрос, обязательный параметр
  remote_servers:
    - "localhost"
  #  Имя пользователя, обязательно если это не локальный сбор
  user:
  #  Пароль пользователя, обязательно если это не локальный сбор
  password:
  # Чтение с последней сохраненной позиции, (default: false)
  read_from_last: false
  # Уровень логирования. Если не указан, то используется параметр, настроенный в секции "journal"
  log_level: "DEBUG"
  # Изменение кодировки входящего события, может быть прописана у любого коллектора
  encoding:
    # Включение изменения кодировки
    change_to_utf8: false
    # Оригинальная кодировка события, если оставить пустым, произойдет попытка определить кодировку
    # Нет 100% гарантии определения
    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: ""

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

# Запись в файл
out_file: &out_file
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "file_outputs"
  # Путь до файла куда будут записываться события, обязательный параметр
  file: "test_file.txt"
  # Порог ротации в мегабайтах, если указан ноль ил не указан совсем ротация не происходит (default: 0)
  rotation_size: 0
  # Уровень логирования, если не указан используется уровень модуля журналирования
  log_level: "INFO"

# Запись в сервис Kafka
kafka: &kafka
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "kafka1"
  # Включение проверки сертификата (default: false)
  require_cert: false
  # Включение ssl (default: false)
  ssl_enable: false
  # Путь для файла сертификатов, если ssl_enable: false параметр не обязательный
  cert_file: "certs/server.crt"
  # Путь для файла ключей, если ssl_enable: false параметр не обязательный
  key_file: "certs/server.key"
  # Пароль для расшифровки файла ключей, если не указан считаем что файл не зашифрован
  cert_key_pass: ""
  # Путь до корневого сертификата, если ssl_enable: false параметр не обязательный
  ca_file: "certs/ca.crt"
  # Таймаут отправки события в секундах, обязательный параметр
  timeout: 10
  # Топик в который попадет событие, обязательный параметр
  topic: "foo"
  # Уровень логирования, если не указан используется уровень модуля журналирования
  log_level: "DEBUG"
  # Kafka брокеры, обязательный параметр
  brokers:
    - "localhost:19092"
    - "localhost:29092"
    - "localhost:39092"
  # Максимальное количество сообщений в буфере
  # queue_length_limit: 3
  # Максимальное время жизни событий в очереди. в секундах
  # queue_time_limit: 3

# Отправка TCP трафика
tcp_sender: &tcp_sender
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "tcp_sender"
  # Адрес куда отправлять события, обязательный параметр (default: "0.0.0.0")
  target_host: "0.0.0.0"
  #  Порт куда отправлять события, обязательный параметр
  port: 15481
  # Включение batch режима (default: false)
  batch_mode_enable: false
  # Период отправки пакета в секунундах при включенном batch режиме (default: 5)
  batch_flush_interval: 5
  # Количество сообщений которые попадут в пакет при включенном batch режиме (default: 500)
  batch_flush_limit: 500
  # Включение сжатия, включение при выключенном batch режиме ощутимо замедляет отправку (default: false)
  ssl_compression: false
  # Включение проверки сертификата (default: false)
  require_cert: false
  # Включение ssl (default: false)
  ssl_enable: false
  # Путь для файла сертификатов, если enable_tls: false параметр не обязательный
  cert_file: "certs/server.crt"
  # Путь для файла ключей, если enable_tls: false параметр не обязательный
  key_file: "certs/server.key"
  # Пароль для расшифровки файла ключей, если не указан считаем что файл не зашифрован
  cert_key_pass: ""
  # Путь до корневого сертификата, если enable_tls: false не обязательный параметр
  ca_file: "certs/ca.crt"
  # Уровень логирования, если не указан используется уровень модуля журналирования
  log_level: "DEBUG"
  # Максимальное количество сообщений в буфере
  # queue_length_limit: 3
  # Максимальное время жизни событий в очереди. в секундах
  # queue_time_limit: 3

# Отправка UDP траффика
udp_sender: &udp_sender
  # Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  id: "udp_sender"
  # Адрес куда отправлять события (default: "0.0.0.0")
  target_host: "0.0.0.0"
  # Порт, на который отправлять события куда отправлять события, обязательный параметр
  port: 15483
  # Размер буфера для отправки, если не указан или равен нулю используется системное значение (default: 0)
  sock_buf_size: 0
  # Уровень логирования, если не указан используется уровень модуля журналирования
  log_level: "INFO"

###############################################################
#     Список всех запущеных компонентов сбора (collectors)    #
###############################################################

# Обязательная секция
collectors:
  log_level: "DEBUG"
  # opsec_lea коллектор
  opsec_lea:
   - <<: *opsec_lea
  # etw коллектор, работает только на windows
#  etw:
#    - <<: *etw
  # чтение из локального файла
#  files:
#    - <<: *filetest
  # коллектор выполняющий сторонней командой
#  external_command:
#    - <<: *ectest
  # wmi коллектор, работает только на windows
#  wmi:
#    - <<: *wmi_settings
  # event_log коллектор, работает только на windows vista и старше
#  event_log:
#    - <<: *event_log
  # odbc коллектор
#  odbc:
#    - <<: *odbctest
  # ssh коллектор
#  ssh:
#    - <<: *sshtest
  # smb коллектор
#  smb:
#    - <<: *smb
  # ftp коллектор
#  ftp:
#    - <<: *ftptest
  # sftp коллектор
#  sftp:
#    - <<: *sftptest
  # tcp коллектор, пассивный прием
#  tcp_receiver:
#    - <<: *tcptest
  # udp коллектор, пассивный прием
#  udp_receiver:
#    - <<: *udptest
  # netflow коллектор, пассивный прием
#  nf_receiver:
#    - <<: *nftest
  # http коллектор, пассивный прием
#  http_receiver:
#    - <<: *httptest
  # http коллектор, удаленный сбор событий
#  http_collector:
#    - <<: *httpcollector
  # snmp trap коллектор, пассивный прием
#  snmp_trap:
#    - <<: *snmptraptest
  # коллектор для сбора событий по протоколу MS-EVEN6 с Windows Vista и выше
  # mseven6:
  #   - <<: *mseven6
# тестовый коллектор, каждый период времени ticker генерирует сообщение
# test_loop:
#     # названия модуля, отображается в логах и метриках, уникальный обязательный параметр
#   - id: "loop_input_1"
#     # период генерации сообщений в секундах
#     ticker: 1
#     log_level: "DEBUG"
#  categories_rules:
    # Список категорий допустимых в input
#    - web
#    - database
#    - log
#    - file


###############################################################
#     Список всех запущеных компонентов отправки (senders)    #
###############################################################

# Обязательная секция
senders:
  # Порт модуля, обязательный параметр
  port: 48001
  # Уровень логирования, если не указан используется уровень логирования модуля журналирования
  log_level: "INFO"
  # Отправка в журнал
  # stdout:
  #  Название модуля, отображается в логах и метриках, уникальный обязательный параметр
  #   - id: "stdout"
  #     log_level: "DEBUG"
  # Запись в файл
  # out_file:
  #   - <<: *out_file
  # Отправка в сервис Kafka
  # kafka:
  #   - <<: *kafka
  # отправка по протоколу tcp
  tcp:
    - <<: *tcp_sender
  # отправка по протоколу udp
  # udp:
  #   - <<: *udp_sender

##########################################
#     Маршрутизация событий (routes)     #
##########################################

# Настройка маршрутов
# Обязательная секция
route_1: &route_1
  collector_id:
    - "opsec_lea"
  sender_id:
    - "tcp_sender"

# Включение маршрутов
# Обязательная секция
routers:
  - <<: *route_1

################################################
#     Пересылка событий в сервис Log-proxy     #
################################################

# Настройка подключения к сервису Log-proxy
log_proxy:
  # Включить пересылку событий в LogProxy
  enable: true
  # Url-сервиса для приема
  url: "ws://<ip адрес Платформы Радар>:1100/"
  # Отключить проверку сертификата
  skip_verify: true
  write_buffer_size: 10000
  read_buffer_size: 10000

# Маршрутизация событий
router: 
    # Значение id от лог-коллектора
    {"1519": 
        {
        # Наименование источника событий
        "name": "1514-Microsoft-Windows-Eventlog",
        # Наименование шаблона для обработки сообщений
        "template": "json-json",
        # IP-адрес и порт сервиса **Kafka**;
        "broker":"127.0.0.1:9092",
        # Наименование топика, в который будет выполняться запис
        "topic": "1514-Microsoft-Windows-Eventlog"
        }
    }

# Настройка шаблона для обработки сообщений
# templates: 
#   {"template_name": "output_template"},
# template_name – наименование шаблона для обработки сообщений, которое указывается в параметрах секции router
# output_template – результирующая строка, в которую надо подставить значения от лог-коллетора с соответствующим преобразованием. В параметре используются следующие переменные:
## %FROMHOST-IP% – IP-адрес лог-коллектора, отправившего запрос
## %timegenerated:::date-rfc3339% – дата приема сообщения в формате rfc3339
## %inputname% – имя источника из секции router
# Пример:

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