Конфигурация Syslog-коллектора

Для редактирования конфигурационного файла выполните команду:

sudo nano /etc/echelon/komrad/komrad-syslog-collector.yaml
## schema: komrad/komrad-syslog-collector/4.1.33
# Идентификатор предприятия
tenant_id: 75
# Идентификатор установки
setup_id: komrad-production
# Метка безопасности, аналог Oracle Security Label
sl: 715
bus:
  servers:
  - nats://[ip_bus]:3490
  user: komrad
  password: pass
  user-credentials: ""
  tls:
    disable: false
    ServerName: ""
    TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
    Cert: /var/lib/echelon/komrad/certs/client.pem
    CertKey: /var/lib/echelon/komrad/certs/client-key.pem
    system-pool: false
    min-version: "1.3"
    client-auth: require-and-verify-client-cert
  tuning:
    # Возможность установить время ожидания при соединении.
    connect-timeout: 10s
    # Возможность установить максимальное количество попыток повторного подключения.
    max-reconnects: 1000000
    # Устанавливает максимальное количество времени, в течение которого мы будем ждать ответа.
    max-wait: 0s
    # Параметр для установки периода для клиентских команд ping.
    ping-interval: 2m
    # Возможность установить максимальное количество запросов ping,
    # которые могут остаться без ответа сервера, прежде чем закрыть соединение.
    max-pings-outstanding: 2
    # Устанавливает максимальное количество незавершенных асинхронных публикаций,
    # которые могут быть одновременно запущены.
    publish-async-max-pending: 0
    # Интервал переподключения.
    reconnect-interval: 5s
    # Возможность установить время ожидания между попытками повторного подключения.
    reconnect-wait: 1s
    # Устанавливает соединение в состояние повторного подключения, если оно не может подключиться.
    retry-on-failed-connect: false
# Таймаут между попытками рестарта коллектора во время неустойчивой связи с центральным сервером KOMRAD
restart-timeout: 1s
# local_ip: 10.0.0.1
# Настройки пакетного сбора данных - включает накопление событий в пакеты
# для оптимизации скорости передачи информации.
# Например, увеличение параметра timeout до 3s и limit до 20000 позволяет достигать 100 000 EPS.
batching:
  # предельный интервал времени накопления пакетов, по умолчанию 1 секунда
  timeout: 1s
  # предельный лимит событий в пакете, по умолчанию - 100
  limit: 1000
# Настройки write-ahead-log (WAL) - механизма записи на диск событий
# в случае разрыва соединения с сетью. События пишутся на диск в сжатом виде, в случае
# восстановления соединения с сетью сжатые пакеты событий направляются в шину событий KOMRAD.
# Рекомендуется контролировать объем свободного дискового пространства на узле с коллектором/агентом.
wal:
  # Путь до папки в которой будет храниться конфигурационная информация коллектора/агента.
  # Конфигурация хранится в сжатом, зашифрованном виде.
  # Если путь не указан, будет выбрана папка по-умолчанию:
  #   - для Windows:
  #          C:\Program Files\Echelon\komrad\<name>-collector\.wal
  #   - для Linux:
  #          /var/lib/echelon/komrad/<name>-collector/.wal
  #  В случае установки нескольких одинаковых коллекторов на один хост необходимо устанавливать
  #  раздельные пути до хранилища каждого коллектора, путь к хранилищу одного коллектора не должен
  #  быть вложенным в путь до хранилища другого коллектора.
  path: /var/lib/echelon/komrad/komrad-syslog-collector/.wal
  # no-copy -- когда равен true включается режим оптимизации работы с памятью,
  # изменять значение стоит лишь при рекомендации Службы Поддержки.
  no-copy: true
  # segment-size -- размер одного сегмента WAL, по умолчанию 4 Кб,
  # изменять значение стоит лишь при рекомендации Службы Поддержки.
  segment-size: 4MB
  # max-length - максимальная длина WAL, если равно 0 длина не ограничена.
  max-length: 0
# Настройки вывода логов приложения.
# Сервис может отправлять логи сразу в несколько целей -- файл, системный журнал ОС, консоль, syslog.
# Включить вывод логов в консоль для режима отладки приложения
#  - filename: stdout
#    format: color
#    filter: ""
#    levels: [all]
# Включить вывод логов в файл с ротацией.
# ВАЖНО: старые файлы с логами не удаляются, необходимо производить мониторинг использования диска.
# - filename: "/var/log/echelon/komrad/service.log"
#   format: json
# возможно задать выражение для фильтрации выводимых логов
#   filter: ""
#   levels: [info, error, warn, panic, fatal]
# Отправлять критические сообщения в Журнал Windows.
# ВНИМАНИЕ: не стоит включать levels (info, warn, debug, error) в windowseventlog , это может
# крайне негативно сказаться на быстродействии и доступности узла.
# - filename: windowseventlog
#   format: json
#   levels: [panic, fatal]
log:
- filename: systemd/journal
  format: json
  filter: ""
  levels:
  - info
  - error
  - panic
  - fatal
  - warn
# Настройки дискового хранилища конфигурационной информации коллектора/агента
storage:
  # Путь до папки в которой будет храниться конфигурационная информация коллектора/агента.
  # Конфигурация хранится в сжатом, зашифрованном виде.
  # Если путь не указан, будет выбрана папка по-умолчанию:
  #   - для Windows:
  #          C:\Program Files\Echelon\komrad\<name>-collector\.storage
  #   - для Linux:
  #          /var/lib/echelon/komrad/<name>-collector/.storage
  #  В случае установки нескольких одинаковых коллекторов на один хост необходимо устанавливать
  #  раздельные пути до хранилища каждого коллектора, путь к хранилищу одного коллектора не должен
  #  быть вложенным в путь до хранилища другого коллектора.
  path: /var/lib/echelon/komrad/komrad-syslog-collector/.storage
  compress: false
  # Включить режим синхронной записи каждого результата на диск, по-умолчанию отключено
  sync-writes: false
# Параметры для создания защищённых соединений с источниками событий
auth:
  # TLS для создания защищённого соединения с источниками событий
  tls:
    disable: true
    # Имя сервера
    server-name: ""
    # Корневой сертификат Центра Сертификации
    trusted-ca: ""
    # Сертификат TLS
    cert: ""
    # Приватный ключ сертификата TLS
    cert-key: ""
  ssh:
    # Путь до файла с приватным ключом сертификата
    private-key: ""
    # Парольная фраза для авторизации по SSH с помощью сертификата при включённой опции
    # использования парольной фразы.
    # Используется для установки SSH соединения с использованием сертификатов
    passphrase: ""
    # НЕБЕЗОПАСНО: включение данного флага позволяет игнорировать предупреждения
    # безопасности о незащищённом SSH соединении.
    allow-insecure: false
    # Таймаут SSH соединения, в секундах, по умолчанию 10.
    timeout: 10
  # Настройки для получения секретов и сертификатов из Hashicorp Vault (в komrad-vault)
  vault:
    # Адрес vault
    addr: null
    # Токен доступа к vault
    token: null
    tls: null
# Путь к базе данных GeoIP
geo-ip:
  path: /var/lib/echelon/komrad/komrad-syslog-collector/geoip/db.mmdb
  # Проверка на корректность базы данных geoIP при инициализации geodata.
  # Полезная опция, чтобы удостоверится, что база mmdb не содержит ошибок.
  # Однако верификация длится от 20 секунд до 2х минут в зависимости от ресурсов
  # и размера базы геоданных. По умолчанию опция отключена.
  verify-on-start: false
# Отключить запись исходного текста события в поле Raw.
# Большинство требований регулятора требуют сохранять текст исходного события.
# Сохранение исходного текста события влияет на размер БД для хранения событий,
# возможно повышение требований в 2-10 раз.
# Коллекторы WMI, SQL, SNMP, xFLOW всё, что получают от протоколов источников
# сбора сохраняют в нормализованные поля события. Поле Raw заполняется
# синтетическими данными -- нормализованные поля в формате JSON.
# Рекомендуется установить `disable-raw-field: true` для коллекторов типа WMI, SQL, SNMP, xFLOW
# для сохранения затрат на хранение избыточных данных.
# Коллекторы Syslog и File имеют доступ к исходному тексту события, отключать запись  в Raw
# для этих коллекторов невозможно.
disable-raw-field: false
# Использовать при работе только в локальном автономном режиме
offline: false
collector:
  type: syslog
  value:
    # Фильтр входящих соединений коллекторов по IP
    ip-filter:
      # действие фильтра -- разрешить соединения из интервалов и подсетей (`allow`) или запретить (`block`)
      # можно выбрать лишь одну стратегию фильтра - allow либо block.
      action: block
      # Интервалы IP адресов
      # Пример интервалов: ranges: "128.26.0.0-128.26.255.255,192.168.1.0/24,10.0.1.1"
      # Можно использовать разделители - запятая, перевод строки.
      ranges: ""
    # включённые парсеры сообщений Syslog
    parsers:
    - cef
    - rfc3164
    - rfc5424
    # Символ, используемый для разделения сообщений
    line-delimiter: "\\n"
    # Стратегия извлечения строк из потока данных - разделитель `delimiter` или
    # фреймы по RFC 6587 `rfc6587` (https://datatracker.ietf.org/doc/html/rfc6587)
    # `delimiter` использует символы, указанные в `line-delimiter` для разделения входящих событий.
    # `rfc6587` использует подсчёт октетов и непрозрачный фрейминг согласно RFC 6587
    # (https://datatracker.ietf.org/doc/html/rfc6587), при этом для разделения событий
    # в непрозрачном фрейминге также используется `line-delimiter`.
    framing: delimiter
    unix:
      # Путь до сокета Unix из которого коллектор будет ожидать события
      path: /var/lib/echelon/komrad/komrad-syslog-collector/komrad-syslog.sock
      # Группа в которой коллектор будет создавать сокет.
      # По-умолчанию это группа под которой запущен syslog-collector.
      # В Windows опция недоступна и игнорируется.
      group: null
      # Режим файла сокета который будет создавать коллектор.
      # Ожидаются атрибуты файла либо октет-срока. По-умолчанию 0755.
      mode: "0755"
      # Максимальный размер сообщения из сокета, по умолчанию 20 Мб
      max-message-size: 20971520
      # Период времени, за который неактивное соединение будет закрыто. По-умолчанию
      # 5 минут
      timeout: 30m
      # Максимальное число соединений, которые коллектор сможет создать на
      # выбранном сокете одновременно.
      max-connections: null
      # Символ, используемый для разделения сообщений
      line-delimiter: "\\n"
      # Указывает на то какой фрейминг использовать для разделения входящих сообщений.
      # Может быть `delimiter` или `rfc6587`.
      framing: delimiter
      # Тип сокета - stream или datagram
      socket-type: stream
    udp:
      # Таймаут разрыва неактивного соединения, по умолчанию 20 минут
      timeout: 30m
      # Максимальный размер одного сообщения syslog, по умолчанию 20 Мб
      max-message-size: 20971520
      # Опциональный размер буфера чтения, в килобайтах
      # При большой нагрузке на коллектор рекомендуется калибровать размер буфера чтения для
      # снижения доли пропущенных пакетов.
      read-buffer: 512
    tcp:
      # Таймаут разрыва неактивного соединения, по умолчанию 20 минут
      timeout: 30m
      # Максимальный размер одного сообщения syslog, по умолчанию 20 Мб
      max-message-size: 20971520
      # Ограничение максимального числа установленных соединений, если 0 - неограниченное число
      max-connections: 0
      # Режим работы защищённого соединения с источниками с использованием сертификатов TLS
      tls:
        enabled: false
        # Корневые сертификаты выпущенные внутренним либо внешним доверенным Центром Сертификации
        certificate-authorities:
        - /var/lib/echelon/komrad/komrad-server/certs/ca.pem
        certificate:
          # Сертификат, используемый для аутентификации TLS.
          certificate: /var/lib/echelon/komrad/komrad-syslog-collector/certs/server.pem
          # Приватный ключ сертификата TLS
          key: /var/lib/echelon/komrad/komrad-syslog-collector/certs/server-key.pem
          # Опциональная парольная фраза для расшифровки приватного ключа сертификата
          key-passphrase: null
        # Режим проверки -- 'none', 'full', 'strict', 'certificate'
        verification-mode: strict
        # Список поддерживаемых протоколов TLS, по умолчанию включены протоколы TLSv1.2 и TLSv1.3
        supported-protocols:
        - TLSv1.2
        - TLSv1.3
        # Методы шифрования передачи данных между источником и коллектором; доступны:
        #     ECDHE-ECDSA, ECDHE-ECDSA-AES-128-CBC-SHA, ECDHE-ECDSA-AES-128-CBC-SHA256
        #     ECDHE-ECDSA-AES-128-GCM-SHA256, ECDHE-ECDSA-AES-256-CBC-SHA
        #     ECDHE-ECDSA-AES-256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305
        #     ECDHE-ECDSA-RC4-128-SHA, ECDHE-RSA-3DES-CBC3-SHA, ECDHE-RSA-AES-128-CBC-SHA
        #     ECDHE-RSA-AES-128-CBC-SHA256, ECDHE-RSA-AES-128-GCM-SHA256
        #     ECDHE-RSA-AES-256-CBC-SHA, ECDHE-RSA-AES-256-GCM-SHA384
        #     ECDHE-RSA-CHACHA20-POLY1205, ECDHE-RSA-RC4-128-SHA, TLS-CHACHA20-POLY1305-SHA256
        #     RSA-RC4-128-SHA, RSA-3DES-CBC3-SHA, RSA-AES-128-CBC-SHA
        #     RSA-AES-128-CBC-SHA256, RSA-AES-128-GCM-SHA256, RSA-AES-256-CBC-SHA
        #     RSA-AES-256-GCM-SHA384, TLS-AES-128-GCM-SHA256, TLS-AES-256-GCM-SHA384
        cipher-suites: []
        # Типы кривых для ECDHE шифров
        curve-types: []
        # Аутентификация клиента -- `none`, `optional` or `required`
        # Когда установлен `certificate_authorities` -- будет по-умолчанию `required`, иначе
        # по умолчанию будет `none`.
        client-authentication: none
        # Список SHA-256 отпечатков сертификатов в формате base64 строки.
        # Включает дополнительную валидацию проверенной цепи сертификатов -- коллектор будет проверять,
        # что конкретный сертификат использован в цепи доверия.
        ca-sha256: null
events_file: ""

Проверка работоспособности коллектора Syslog

Проверить работу Syslog-коллектора можно с помощью утилиты netcat:

nc localhost 49000
test message

Последнее изменение 24.03.2023