Логирование системных событий rsyslog на удаленный сервер логов

Как настроить логирование системных событий rsyslog на удаленный сервер логов

Настройка удалённого логирования в rsyslog выполняется путём изменения конфигурационного файла сервера и добавления правил маршрутизации логов на удалённый хост через UDP или TCP. Процесс занимает не более 10 минут и не требует перезагрузки системы при правильном синтаксисе.

Зачем нужна настройка удалённого логирования

  • Централизация логов с нескольких серверов на одном хранилище для упрощения мониторинга
  • Защита логов от удаления или модификации при компрометации локального сервера
  • Снижение нагрузки на диск локальной системы за счёт отправки больших объёмов логов на специализированный сервер
  • Ускорение анализа инцидентов безопасности благодаря единой точке доступа к логам всей инфраструктуры
  • Соответствие требованиям регулирования (GDPR, HIPAA, PCI DSS) по сохранению аудит-логов

Процесс настройки удалённого логирования rsyslog

Подготовка удалённого сервера логов

  1. Подключитесь по SSH на сервер, который будет принимать логи: ssh user@remote-log-server
  2. Откройте конфигурационный файл rsyslog командой: sudo nano /etc/rsyslog.conf
  3. Найдите строки, начинающиеся с #$ModLoad imudp и #$UDPServerRun 514
  4. Удалите символы комментария # в начале обеих строк для включения UDP-приёма на порт 514
  5. Если используется TCP вместо UDP, раскомментируйте строки #$ModLoad imtcp и #$TCPServerRun 514
  6. Сохраните файл сочетанием клавиш Ctrl+O, затем Enter, затем Ctrl+X
  7. Перезагрузите сервис rsyslog командой: sudo systemctl restart rsyslog
  8. Проверьте, что rsyslog слушает на порту 514 командой: sudo netstat -tulpn | grep rsyslog

Настройка клиентского сервера на отправку логов

  1. Подключитесь по SSH на клиентский сервер, который будет отправлять логи
  2. Откройте конфигурационный файл rsyslog командой: sudo nano /etc/rsyslog.d/50-default.conf
  3. Перейдите в конец файла нажатием Ctrl+End
  4. Добавьте новую строку с правилом маршрутизации для отправки всех логов на удалённый сервер: *.* @@remote-log-server:514 (использование @@ означает TCP, @ означает UDP)
  5. Если требуется отправлять только определённые приложения, добавьте селективное правило, например: kern.* @@remote-log-server:514 для ядра или auth,authpriv.* @@remote-log-server:514 для логов аутентификации
  6. Сохраните файл нажатием Ctrl+O, затем Enter, затем Ctrl+X
  7. Проверьте синтаксис конфигурации командой: sudo rsyslogd -N1
  8. Если ошибок не выявлено, перезагрузите rsyslog: sudo systemctl restart rsyslog
  9. Убедитесь, что rsyslog запущен: sudo systemctl status rsyslog

Проверка доставки логов

  1. На клиентском сервере отправьте тестовое сообщение в логи командой: logger -t TEST "Проверка удалённого логирования"
  2. На удалённом сервере логов откройте файл получаемых логов: sudo tail -f /var/log/syslog
  3. Убедитесь, что тестовое сообщение появилось в логах удалённого сервера в течение нескольких секунд
  4. Если сообщение не появилось, проверьте открытость портов командой: sudo ufw status и разрешите порт 514 командой: sudo ufw allow 514/tcp или sudo ufw allow 514/udp
  5. Если firewall отключен, проверьте сетевую доступность удалённого сервера: ping remote-log-server

Часто задаваемые вопросы

Какой протокол выбрать: TCP или UDP?
TCP более надёжен и гарантирует доставку всех логов, но требует больше ресурсов; UDP быстрее, но может потерять отдельные сообщения при перегрузке сети — для критичных систем используйте TCP (@@).

Как ограничить объём отправляемых логов на удалённый сервер?
Используйте селективные правила вместо *.*, например kern,auth,authpriv.* @@remote-log-server:514 для отправки только критичных логов ядра и аутентификации.

Что делать, если логи не доходят до удалённого сервера?
Проверьте доступность удалённого хоста командой ping, откройте брандмауэр на порту 514, убедитесь в правильности IP-адреса в конфигурации и проверьте синтаксис нажатием sudo rsyslogd -N1.

Похожие материалы

Проверка скорости интернет канала на сервере через утилиту speedtest-cli
Прокси сервер Squid на CentOS пошаговое руководство
DHCP сервер на базе Windows Server 2022