Конфигурация Syslog-коллектора
Для редактирования конфигурационного файла выполните команду:
sudo nano /etc/echelon/komrad/komrad-syslog-collector.yaml
tenant_id: 75 (1)
setup_id: komrad-local (2)
sl: 715 (3)
messenger: (4)
bus-url: nats://localhost:3490 (5)
cluster-name: polygon (6)
request-timeout: 50000000000 (7)
reconnect-timeout: 1000000000 (8)
wal-flush-timeout: 1000000000 (9)
restart-timeout: 1000000000 (10)
1 | идентификатор предприятия; |
2 | идентификатор установки; |
3 | метка безопасности, аналог Oracle Security Label; |
4 | настройка связи с интеграционной шиной; |
5 | адрес интеграционной шины КОМРАД; |
6 | имя кластера КОМРАД; |
7 | таймаут запросов конфигурации в центральном сервере КОМРАД; |
8 | таймаут перед повторными попытками соединиться с центральным сервером Комрад; |
9 | таймаут перед выгрузкой накопленных событий в WAL; |
10 | таймаут между попытками рестарта коллектора во время неустойство сети с центральным сервером КОМРАД; |
Настройка пакетного сбора данных
Накопление событий в пакеты для оптимизации скорости передачи информации.
batching:
timeout: 1000000000 (1)
limit: 100 (2)
1 | предельный интервал времени накопления пакетов, по умолчанию 1 секунда; |
2 | предельный лимит событий в пакете, по умолчанию - 100; |
Настройка write-ahead-log (WAL)
Механизм записи на диск событий в случае разрыва соединения с сетью. События пишутся на диск в сжатом виде, в случае восстановления соединения с сетью сжатые пакеты событий направляются в шину событий КОМРАД. Рекомендуется контролировать объём свободного дискового пространства на узле с коллектором/агентом.
wal:
path: /var/lib/echelon/komrad/.wal (1)
no-copy: true (2)
segment-size: 4MB (3)
max-length: 0 (4)
1 | путь до папки в которой будет храниться конфигурационная информация коллектора/агента. Конфигурация хранится в сжатом, зашифрованном виде. Если путь не указан, будет выбрана папка по умолчанию:
|
2 | true: включает режим оптимизации работы с памятью; |
3 | размер одного сегмента WAL, по умолчанию 4 Кб; |
4 | максимальная длина WAL, если равна 0 длина не ограничена; |
Настройки выводов логов приложения
Сервис может отправлять логи сразу в несколько целей: файл, системный журнал ОС, консоль, syslog.
log:
- filename: stdout
format: color
filter: ""
levels:
- all
Включить вывод логов в консоль для режима отладки приложения:
log:
- filename: stdout
format: color
filter: ""
levels: [all]
Настройка дискового хранилища
Конфигурационная информация коллектора/агента
storage:
path: /var/lib/echelon/komrad/syslog-collector/.storage (1)
compress: false (2)
verify-value-checksum: true (3)
verify-value-checksum-strict: true (4)
index-cache-size: 0 (5)
block-cache-size: 0 (6)
sync-writes: false (7)
1 | путь до папки в которой будет храниться конфигурационная информация коллектора/агента. Конфигурация хранится в сжатом, зашифрованном виде. Если путь не указан, будет выбрана папка по умолчанию:
|
2 | сжимать ли сохраняемые данные, по умолчанию нет; |
3 | проверять ли контрольные суммы на каждом чтении параметра, по умолчанию отключено; |
4 | проверять ли контрольные суммы на каждой операции, по умолчанию отключено; |
5 | устанавливает жёсткий лимит для кэша ключей, в инсталляции с ограниченным объёмом памяти можно устанавливать это значение в байтах; |
6 | размер кэша для блоков в байтах, рекомендуется устанавливать если включена компрессия данных (флаг compression); |
7 | включить режим синхронной записи каждого результата на диск, по умолчанию отключено; |
Параметры защищённых соединений с источниками событий
auth:
tls: (1)
disable: true
server-name: "" (2)
trusted-ca: "" (3)
cert: "" (4)
cert-key: "" (5)
ssh:
private-key: "" (6)
passphrase: "" (7)
allow-insecure: false (8)
timeout: 10 (9)
vault: (10)
addr: null (11)
token: null (12)
tls: null
1 | TLS для создания защищённого соединения с источниками событий; |
2 | имя сервера; |
3 | корневой сертификат Центра Сертификации; |
4 | сертификат TLS; |
5 | приватный ключ сертификата TLS; |
6 | путь до файла с приватным ключом сертификата; |
7 | парольная фраза для авторизации по SSH с помощью сертификата при включённой опции использования парольной фразы. Используется для установки SSH соединения с использованием сертификатов; |
8 | включение данного флага позволяет игнорировать предупреждения безопасности о незащищённом SSH соединении; |
9 | таймаут SSH соединения, в секундах, по умолчанию 10; |
10 | настройки для получения секретов и сертификатов из Hashicorp Vault (в komrad-vault); |
11 | адрес vault; |
12 | токен доступа к vault; |
Путь к базе данных GeoIP
geo-ip:
path: /home/user/echelon/polygon/komrad/build/syslog-collector/db.mmdb
disable-raw-field: false (1)
offline: false (2)
1 | отключить запись исходного текста событий в поле Raw. Большинство регуляторов требуют сохранять текст исходного события. Сохранения исходного текста события влияет на размер БД для хранения событий, возможно повышение требований в разы. Коллекторы WMI, SQL, SNMP, xFLOW всё, что получают от протоколов источников сбора сохраняют в нормализованные поля события. Поля Raw заполняется синтетическими данными - нормализованные поля в формате JSON. Рекомендуется установить disable-raw-field: true для коллекторов типа WMI, SQL, SNMP, xFLOW. Коллекторы Syslog и File имеют доступ к исходному тексту события, отключать запись в Raw для этих коллекторов невозможно; |
2 | использовать при работе только в локальном автономном режиме; |
collector:
type: syslog
value:
ip-filter: (1)
action: block (2)
ranges: "" (3)
parsers: (4)
- cef
- rfc3164
- rfc5424
line-delimiter: "\\n" (5)
framing: delimiter (6)
unix:
path: /home/user/echelon/polygon/komrad/build/syslog-collector/komrad-syslog.sock (7)
group: null (8)
mode: "0755" (9)
max-message-size: 20971520 (10)
timeout: 300000000000 (11)
max-connection: null (12)
line-delimiter: "\\n" (13)
framing: delimiter (14)
socket-type: stream (15)
udp:
timeout: 1200000000000 (16)
max-message-size: 20971520 (17)
read-buffer: 512 (18)
tcp:
timeout: 1200000000000 (19)
max-message-size: 20971520 (20)
max-connections: 0 (21)
tls: (22)
enabled: false
certificate-authorities:
- /var/lib/echelon/komrad/certs/ca.pem (23)
certificate:
certificate: /var/lib/echelon/komrad/syslog-collector/certs/server.pem (24)
key: /var/lib/echelon/komrad/certs/server-key.pem (25)
key-passphrase: null (26)
verification-mode: strict (27)
supported-protocols: (28)
- TLSv1.2
- TLSv1.3
cipher-suites: (29)
- ECDHE-ECDSA-CHACHA20-POLY1305
curve-types: (30)
- P256
- P384
- P521
- X25519
client-authentication: none (31)
ca-sha256: null (32)
1 | фильтр входящих соединений коллекторов по IP; |
2 | действие фильтра: разрешить соединения из интервалов и подсетей (allow ) или запретить (block ). Можно выбрать лишь одну стратегию фильтра; |
3 | интервалы IP адресов; |
4 | включённые парсеры сообщений Syslog; |
5 | символ, используемый для разделения сообщений; |
6 | ; |
7 | путь до сокета Unix из которого коллектор будет ожидать события; |
8 | группа в которой коллектор будет создавать сокет. По умолчанию это группа под которой запущен syslog-collector. В Windows опция недоступна и игнорируется; |
9 | режим файла сокета который будет создавать коллектор. Ожидается атрибуты файла либо октет-срока. По умолчанию 0755; |
10 | максимальный размер сообщения из сокета, по умолчанию 20 Мб; |
11 | период времени, за который неактивное соединение будет закрыто. По умолчанию 5 минут; |
12 | максимальное число соединений, которые коллектор сможет создать на выбранном сокете одновременно; |
13 | символ, используемый для разделения сообщений; |
14 | указывает на то какой фрейминг использовать для разделения входящих сообщений. Может быть delimiter или rfc6587 ; |
15 | тип сокета - stream или datagram; |
16 | таймаут разрыва неактивного соединения, по умолчанию 20 минут; |
17 | максимальный размер одного сообщения syslog, по умолчанию 20 Мб; |
18 | опциональный размер буфера чтения, в килобайтах. При большой нагрузке на коллектор рекомендуется калибровать размер буфера чтения для снижения доли пропущенных пакетов; |
19 | Таймаут разрыва неактивного соединения, по умолчанию 20 минут; |
20 | максимальный размер одного сообщения syslog, по умолчанию 20 Мб; |
21 | ограничение максимального числа установленных соединений, если 0 - неограниченное число; |
22 | режим работы защищённого соединения с источниками с использованием сертификатов TLS; |
23 | корневые сертификаты выпущенные внутренним либо внешним доверенным Центром Сертификации; |
24 | сертификат используемый для аутентификации TLS; |
25 | приватный ключ сертификата TLS; |
26 | опциональная парольная фраза для расшифровки приватного ключа сертификата; |
27 | режим проверки: none , full , strict , certificate ; |
28 | список поддерживаемых протоколов TLS, по умолчанию включены протоколы TLSv1.2 и TLSv1.3; |
29 | доступные методы шифрования передачи данных между источником и коллектором:
|
30 | типы кривых для ECDHE шифров; |
31 | аутентификация клиента: none , optional , required . Когда установлен certificate_authorities , тогда будет по умолчанию required , иначе по умолчанию будет none ; |
32 | список SHA-256 отпечатков сертификатов в формате base64 строки. Включает дополнительную валидацию проверенной цепи сертификатов - коллектор будет проверять, что конкретный сертификат использован в цепи доверия; |
http-endpoint:
basic-auth: true (1)
username: komrad (2)
password: komrad (3)
response-code: 200 (4)
reponse-body: "{\"message\": \"success\"}" (5)
listen-address: 127.0.0.1 (6)
listen-port: 48000 (7)
listen-protocol: tcp4 (8)
url: / (9)
prefix: json (10)
content-type: application/json
secret-header: ""
secret-value: ""
hmac-header: ""
hmac-key: ""
hmac-type: ""
hmac-prefix: ""
preserve-original-event: true (11)
include-headers: [] (12)
tls:
disable: true
ServerName: komrad-collector-http-endpoint
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/server.pem
CertKey: /var/lib/echelon/komrad/certs/server-key.pem
tuning:
concurrency: 0 (13)
read-buffer-size: 0 (14)
read-timeout: 15s (15)
write-timeout: 15s (16)
idle-timeout: 15s (17)
max-conns-per-ip: 1000 (18)
max-requests-per-conn: 0 (19)
max-request-body-size: 8192 (20)
request-timeout: 15s
keepalive-period: 5m
disable-keepalive: false (21)
reduce-memory-usage: false (22)
sleep-when-concurrency-limits-exceeded: 1m (23)
events_file: ""
1 | включает опциональную аутентификацию при помощи пары "пользователь: пароль" в стандарте HTTP Basic Auth. Потребуется указать username и password; |
2 | при включённой опции basic-auth позволяет указать имя пользователя для аутентификации подключенний HTTP клиентов. Потребуется также указать пароль в password; |
3 | при включённой опции basic-auth позволяет указать пароль пользователя для аутентификации подключенний HTTP клиентов. Потребуется также указать имя пользователя в username; |
4 | код ответа который будет возвращать HTTP сервер в случае успеха. Стандарты рекомендуют коды ответа в интервале от 200 до 299. По умолчанию 200 ОК; |
5 | код ответа который будет возвращать HTTP сервер в случае успеха. Стандарты рекуомендуют коды ответа в интервале от 200 до 299. По умолчанию 200 ОК; |
6 | позволяет задать IP адрес для сервера HTTP в случаях если в системе присутствует несколько сетевых интерфейсов. По умолчанию 127.0.0.1; |
7 | внешний порт для HTTP сервера. По умолчанию 48000; |
8 | протокол сервера - TCP IPv4, TCP IPv6. Значения: tcp, tcp4, tcp6; |
9 | указать путь REST сервера для приёма запросов. По умолчанию: localhost:4800/ ; |
10 | префикс под которым будут сохраняться поля в событии в случае если отключен парсинг события с помощью плагинов. По умолчанию JSON; |
11 | сохранять исходный текст запроса HTTP в поле Raw события ИБ; |
12 | Списки заголовков HTTP, которые парсер будет извлекать и сохранять в полях собатия. Например, ["content-type"] . Имена заголовков нормализуются автоматически до ["Content-Type"] ; |
13 | максимальное число запросов которые сервер может обрабатывать параллельно, по умолчанию 256*1024 = 262 144; |
14 | размер буфера для каждого HTTP соединения. Рекомендуется изменять в редких случаях когда входящие запросы содержат очень большие заголовки или cookie; |
15 | максимальное время ожидания окончания чтения входящего HTTP запроса. По умолчанию 5 секунд; |
16 | максимальное время ожидания окончания записи ответа на HTTP запрос. По умолчанию 5 секунд; |
17 | максимальное время ожидания окончания следующего запроса в установленном keep-alive HTTP соединении. Если равно 0 будет использоваться значение read-timeout. По умолчанию 5 секунд; |
18 | максимальное число параллельных клиентских соединений с одного IP адреса. По умолчанию 1000 соединений может быть установлена с одного IP адреса; |
19 | максимальное число параллельных запросов в одном соединении. В случае превышения лимита соединение будет закрыто после последнего завершённого запроса. В последний запрос добавлен HTTP заголовок ответа "Connection=close". По умолчанию 8 KB; |
20 | Максимальный размер тела HTTP запроса. Сервер будет отклонять запросы с размером тела больше установленного лимита. По умолчанию 8 KB (8192); |
21 | Отключить режим keep-alive для активных соединений. Если true - сервер будет закрывать соединения сразу после отправки ответа клиенту; |
22 | включить режим агрессивного снижения потребления памяти за счёт повышенного потребления процессорного времени. Режим может снизить объём потребляемой памяти на 50% и более. По умолчанию отключено; |
23 | продолжительность времени, в течение которого сервер погружается в сон и не принимает соединения после достижения ограничения числа соединений; |