Linux

Настройка rsyslog на Linux: полное пошаговое руководство

В этом руководстве вы узнаете, как установить, настроить и проверить rsyslog на Linux-системах. Мы расскажем о создании правил логирования, отправке логов на удалённый сервер и устранении распространённых проблем.

Обновлено 3 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04Ubuntu 22.04Debian 11CentOS 8RHEL 8

Введение / Зачем это нужно

rsyslog — это стандартный инструмент логгирования в большинстве дистрибутивов Linux. Правильная настройка rsyslog помогает централизовать системные логи, ускорять устранение проблем и защищать журналы от потери. После выполнения этого руководства у вас будет полностью работоспособная система логгирования, настроенная под ваши потребности, с возможностью отправки логов на удалённые сервера.

Требования / Подготовка

  • Поддерживаемая Linux-система (Ubuntu 20.04+, Debian 11+, CentOS 8/RHEL 8).
  • Права суперпользователя (sudo).
  • Установленный пакет rsyslog (обычно уже присутствует в базовой системе).
  • Сеть, позволяющая подключаться к целевому серверу для удалённой отправки логов.
  • Опционально — TLS-сертификаты для защищённой передачи.

Пошаговая инструкция

Шаг 1: Установка пакета rsyslog

Установите rsyslog с помощью менеджера пакетов вашей дистрибутивы:

# Для Ubuntu/Debian
sudo apt update && sudo apt install rsyslog

# Для RHEL/CentOS
sudo yum install rsyslog

После установки служба автоматически запускается (systemctl is-active rsyslog вернёт active).

Шаг 2: Создание пользовательских правил логирования

Основной конфигурационный файл находится в /etc/rsyslog.conf. Для удобства добавьте пользовательские правила в каталог /etc/rsyslog.d/. Например, создайте файл 10-custom-rules.conf:

# Пример пользовательских правил
auth,authpriv.*                     /var/log/auth.log
*.info;mail.none;auth,authpriv.none;cron.none    /var/log/syslog
local7.*                           /var/log/custom.log

Сохраните файл и выйдите из редактора.

Шаг 3: Настройка отправки логов на удалённый сервер

Чтобы отправить логи на удалённый хост, добавьте действие remote в конфигурационный файл:

# Отправка всех информационных и более важных сообщений на удалённый сервер
*.info     @remote-server.example.com:514

# Защищённая TCP-зеркальная отправка (TLS/SSL)
local7.*   @@remote-server.example.com:6514

Если требуется TLS, скопируйте приватный ключ и сертификат в /etc/rsyslog.d/ca.pem, а затем укажите их в правилах.

Шаг 4: Проверка конфигурации и перезапуск службы

Перед перезапуском проверьте синтаксис:

sudo rsyslog -t

Если ошибок нет, перезапустите службу:

sudo systemctl restart rsyslog

Шаг 5: Проверка работы rsyslog

Проверьте, что служба работает корректно:

sudo systemctl status rsyslog

Проведите просмотр журнала в режиме реального времени:

tail -f /var/log/syslog

Если вы настроили удалённую отправку, проверьте целевой сервер на наличие новых записей.

Шаг 6: Дополнительные настройки

  • Ротация логов – настройте logrotate, добавив /var/log/syslog и /var/log/auth.log.
  • Фильтрация сообщений – используйте grep-шаблоны внутри правил для отбора целевых событий.
  • Специальные события – для Kernel-логов добавьте kernel.* /dev/kmsg.

Проверка результата

После выполнения всех шагов убедитесь, что:

  1. Локальные файлы логов (/var/log/auth.log, /var/log/syslog) регулярно обновляются.
  2. Удалённый сервер получает трафик (проверьте журналы на целевом хосте).
  3. Служба rsyslog отображается как активная (systemctl is-active rsyslog).
  4. Конфигурационные правила синтаксически корректны (rsyslog -t не выводит ошибок).

Возможные проблемы

  • Служба не запускается: выполните sudo journalctl -u rsyslog -b для просмотра логов ошибок.
  • Логи не поступают на удалённый хост: проверьте сетевую доступность (telnet remote-server.example.com 514) и правила брандмауэра.
  • TLS-сертификаты отклонены: убедитесь, что сертификат подписан доверенным CA и корректно скопирован в /etc/rsyslog.d/ca.pem.
  • Переполнение лог-файлов: настройте logrotate или используйте внешние системы сбора логов (ELK, Graylog).

Если проблема сохраняется, проверьте права доступа на конфигурационные файлы (chmod 644 /etc/rsyslog.conf) и перезапустите службу после каждого изменения.

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

Что такое rsyslog и зачем он нужен?
Где находится конфигурационный файл rsyslog?
Как проверить, работает ли rsyslog?
Как отправить логи на удалённый сервер?

Полезное

Установка пакета rsyslog
Создание пользовательских правил логирования
Настройка отправки логов на удалённый сервер
Проверка конфигурации и перезапуск службы
Проверка работы rsyslog
Дополнительные настройки

Эта статья помогла вам решить проблему?