User Tools

Site Tools


rsyslog

Настройка сервера логов rsyslog

Описание

Основной файл конфигурации rsyslog находится в каталоге /etc/rsyslog.conf, который загружает модули, определяет глобальные директивы, содержит правила для обработки сообщений журнала, а также включает все файлы конфигурации в /etc/rsyslog.d/ для различных приложений/служб.

rsyslog стал дефолтным пакетом в большинстве дистрибутивов Linux. Rsyslog полностью соответствует протоколу syslog, описанному в RFC syslog, а так же содержит некоторые дополнительные функции. Такие как: TCP транспорт, фильтрацию и сортировку сообщений, хранение сообщения в СУБД, шифрование и многое другое.

Чтобы настроить rsyslog как центральный сервер протоколирования, необходимо установить протокол (UDP, либо TCP, либо оба). Данные протоколы, будет использовать для удаленного приема syslog, а также для порта, который он прослушивает.

Установка

yum install rsyslog 
apt install rsyslog

Настройка серверной части

Чтобы использовать UDP-соединение, нужно раскомментировать следующие строки, и изменить порт при необходимости:

$ModLoad imudp
$UDPServerRun 514

Для TCP-соединения, нужно раскомментировать такие строки:

$ModLoad imtcp
$InputTCPServerRun 514

И в секцию RULES добавим несколько строк для удобного хранения файлов логов от разных удаленных источников:

$template FILENAME,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?FILENAME

Теперь сервер готов принимать логи с удаленных источников. Хранить он их будет в директории /var/log. Для каждого источника будет создана папка с именем IP адреса этого источника

Перезапустим демон rsyslog для применения настроек:

systemctl restart rsyslog

Настройка клиентской части

В статье Логирование операций с файлами в Samba, было показано, как настроить логирование операций с файлами, а также записать в отдельный лог файл. Теперь, оправим этот лог /var/log/samba/audit.log на удаленный rsyslog сервер по протоколу - UDP.1)

На машине с samba (ip 10.10.10.115), создадим файл /etc/rsyslog.d/60-samba.conf и внесем в него следующие строки:

$ModLoad imfile
$InputFileName /var/log/samba/audit.log
$InputFileTag squid-samba
$InputFileStateFile stat-samba-access
$InputFileSeverity info
$InputFileFacility local5
$InputRunFileMonitor
local5.* @10.10.10.14:514;RSYSLOG_SyslogProtocol23Format

Проверьте rsyslog на наличие неправильной конфигурации:

rsyslogd -N1

Перезапускаем демон rsyslog

systemctl restart rsyslog

Проверить, что данное хозяйство работает и логи попадают на сервер rsyslog можно с помощью утилиты tcpdump

tcpdump -i ens192 src 10.10.10.115 and "udp port 514"
1)
Данная настройка, также подойдет для отправки логов на сервер Graylog
rsyslog.txt · Last modified: 2023/04/06 10:28 (external edit)