Настройка rsyslog

В главе представлено описание настроек отправки и получения логов и уведомлений через «rsyslog». Вам доступны следующие операции:

«rsyslog» – сервис для Linux-систем, предназначенный для управления журналами событий (далее – логами), в том числе уведомлений. Сервис поддерживает приём данных по протоколу Syslog из разных источников, их фильтрацию, преобразование и отправку.

Syslog – протокол для отправки и получения сообщений между устройствами или приложениями по сети по протоколам UDP и TCP. Структура сообщений в Syslog включает приоритет, временную метку, имя хоста, имя приложения, идентификатор процесса и текст сообщения.

Уведомления от СХД передаются в формате CEF. CEF (англ. аббр. «Common Event Format», «общий формат событий») – независимый от поставщика устройств формат для логирования данных из устройств и приложений. Формат был разработан специально для решений по управлению информацией и событиями безопасности (англ. «Security Information and Event Management», англ. аббр. «SIEM»).

Структура CEF:

CEF:Version|Device Vendor|Device Product|Device Version|Signature ID|Name|Severity|Extension

Пример уведомления в формате CEF:

May 27 15:38:43.218289 0OY5CC rdnotify[81421]: CEF:0|Raidix||5.3.1|100|system.state|10|src=10.78.188.121 msg=The system is in NORMAL state. spt=514 shost=0OY5CC

Описание структуры CEF:

Поле Назначение

CEF:Version

Обязательный префикс с версией CEF.

Device Vendor

Имя вендора продукта.

Device Product

Имя продукта.

В RAIDIX 5.3.1 значение всегда пустое.

Device Version

Версия ПО RAIDIX.

Signature ID

Уникальный идентификатор типа события.

В RAIDIX 5.3.1 значение всегда 100.

Name

Тип объекта и, если применимо, имя объекта события.

Severity

Важность события.

В зависимости от типа уведомления:

  • 0 – уведомления с типом «информация».
  • 5 – уведомления с типом «предупреждения».
  • 10 – уведомления с типом «ошибки».

Extension

Дополнительные поля:

  • msg – текст уведомления.
  • spt – порт источника события (контроллера СХД).
  • src – IP-адрес источника события (контроллера СХД).
  • shost – имя устройства источника (контроллера СХД).

Особенности и ограничения

  • Для отправки с СХД доступны логи только уровня info.
  • С СХД отправляются все уведомления без возможности фильтрации по типу и объекту.
  • Отправка доступна только для одной принимающей системы.
  • В DC-системе настройки на одном контроллере автоматически применяются на втором.
  • Если «rsyslog» настроен на контроллере, не входящем в DC, после включения DC-режима настройте «rsyslog» на другом контроллере вручную.

Настройка отправки и получения логов на СХД

Выполните команду

$ rdcli param logger modify [-ra <remote_address>] [-rpo <remote_port>] [-rpr <remote_protocol>] [-re 1]

где

  • <remote_address> – IP-адрес принимающей системы;
  • <remote_port> – номер порта принимающей системы;
  • <remote_protocol> – транспортный протокол.
  • -re 1 – включение отправки логов.
: Подробнее о командах см. в «Справочнике CLI RAIDIX 5.3.1».

Настройка отправки и получения уведомлений на СХД

Выполните команду

$ rdcli notify syslog profile modify [-a <remote_address>] [-po <remote_port>] [-pr <remote_protocol>] [-e 1]

где

  • <remote_address> – IP-адрес принимающей системы;
  • <remote_port> – номер порта принимающей системы;
  • <remote_protocol> – транспортный протокол.
  • -e 1 – включение отправки уведомлений.
: Подробнее о командах см. в «Справочнике CLI RAIDIX 5.3.1».

Настройка получения логов и уведомлений на Linux-системе

: Для настройки принимающей системы необходимы права root.

На принимающей Linux-системе конфигурация «rsyslog» едина для логов и уведомлений.

  1. Создайте файл /etc/rsyslog.d/some_name.conf и пропишите настройки сервиса «rsyslog» для получения логов и уведомлений с СХД.

    Пример конфигурации для протокола TCP с сохранением уведомлений в файл /var/log/remote-CEF.log и логов в файл /var/log/remote-%HOSTNAME%/%PROGRAMNAME%.log:

    module(load="imtcp" MaxSessions="500")
    input(type="imtcp" port="514" ruleset="remote")
    template(name="RemoteCEF" type="string" string="/var/log/remote-CEF.log")
    template(name="RemoteHost" type="string" string="/var/log/remote-%HOSTNAME%/%PROGRAMNAME%.log")
    ruleset(name="remote") {
        if $msg startswith " CEF" then {
            action(type="omfile" dynaFile="RemoteCEF")
            stop
        }
    
        action(type="omfile" dynaFile="RemoteHost")
        stop
    }
    : Для настройки через UDP замените в конфигурации модуль imtcp на imudp.

    Описание параметров, используемых в примерах, см. в разделе Параметры конфигурации «rsyslog». Полная информация о сервисе «rsyslog» доступна на официальном сайте rsyslog.

  2. Перезапустите сервис rsyslog:

    # systemctl restart rsyslog.service

Чтобы отправить тестовое уведомление, после настройки СХД и принимающей стороны, на контроллере выполните

$ rdcli notify syslog test

Пример тестового уведомления:

Jun 19 17:21:59.098126 0OY5CC rdcmd[2395939]: CEF:0|Raidix||5.3.1|100|test|10|src=10.78.188.121 spt=514 shost=0OY5CC msg=Test CEF message

Пример сортировки получаемых логов c DC-системы с контроллерами «pro10» и «pro9»:

# ls /var/log/remote-pro10
attomdnsd.log  kernel.log  login-hook.log  rdbroker.log  rdconfig.log  rdmetadata.log  rdscan.alua_scst_watch.log  rdscan.net_watch.log     rdscan.raid_watch.log  rsyslogd.log  sshd.log
crond.log      ledmon.log  multipath.log   rdcmd.log     rdhb.log      rdnotify.log    rdscan.log                  rdscan.nvmeof_watch.log  rdstat.log             smartd.log    sudo.log
                
# ls /var/log/remote-pro9/
crond.log  kernel.log     rdbroker.log  rdhb.log        rdscan.alua_scst_watch.log  rdscan.mpath_watch.log  rdscan.nvme_fabrics_subsystem_wa.log  rdscan.raid_watch.log  run-parts.log  sudo.log
CROND.log  multipath.log  rdcmd.log     rdmetadata.log  rdscan.drive_watch.log      rdscan.net_watch.log    rdscan.nvmeof_watch.log               rsyslogd.log           sshd.log

Параметры конфигурации «rsyslog»

В секции представлено описание параметров конфигурационного файла «rsyslog», используемых в примерах. Полная информация о сервисе «rsyslog» доступна на официальном сайте rsyslog.

Параметр Значение Описание

module

load

Модуль для загрузки сообщений.

imtcp – обеспечивает отправку syslog-сообщений через TCP.

imudp – обеспечивает отправку syslog-сообщений через UDP.

MaxSessions

Максимальное количество сессий для модуля TCP.

input

type

Тип модуля входных параметров.

port

Порт сервера.

ruleset

Имя используемого набора правил.

template

name

Имя шаблона.

type

Тип шаблона.

string – содержит строку с шаблоном, который будет применён.

string

Текст строки для типа шаблона «string».

ruleset

name

Имя набора правил.