Table of Contents
Настройка сервера логов 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"