Linux

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

Это руководство поможет вам настроить rsyslog на Linux-системах для сбора, фильтрации и передачи системных логов. После выполнения инструкции вы сможете централизованно отслеживать события, настраивать правила логирования и проверять работу сервиса.

Обновлено 23 июля 2026 г.
15-20 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04 LTSUbuntu 22.04 LTSDebian 11CentOS 8

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

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

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

  • Linux-система (Ubuntu 20.04/22.04, Debian 11, CentOS 8)
  • Права администратора (sudo)
  • Установленный rsyslog (мы установим его в шаге 1)
  • Текстовый редактор (например, nano или vi)
  • Сеть (необходима для опциональной удалённой передачи)

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

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

Для Debian‑based систем:

sudo apt update && sudo apt install rsyslog

Для RHEL‑based систем (CentOS 8, Rocky Linux и т.п.):

sudo yum install rsyslog
# или, если используется dnf:
# sudo dnf install rsyslog

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

Шаг 2: Настройте основной конфигурационный файл

Откройте /etc/rsyslog.conf и проверьте, что модуль imuxsock включён:

module(load="imuxsock") # приём логов через сокеты

Добавьте необходимые правила логирования. Пример базовой конфигурации:

# Записывать все системные логи в файл /var/log/syslog
*.info;mail.none;auth.none;cron.none    /var/log/syslog
# Локальные логи отдельного типа
local0.*                                 /var/log/local0.log

Сохраните изменения (Ctrl+O, Enter) и выйдите из редактора.

Шаг 3: Создайте правила логирования

Создайте новый файл в /etc/rsyslog.d/ (например, custom-rules.conf). В нём определите специфичные для вас правила:

# Пример: логирование всего, что содержит слово ERROR, в отдельный файл
if $msg contains "ERROR" then /var/log/error.log
&stop

Перезапустите rsyslog, чтобы применить новые правила:

sudo systemctl restart rsyslog

Шаг 4: Настройте удалённую передачу логов (опционально)

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

*.info @remote-server:514

Замените remote-server на IP‑адрес или хостнейм удалённой машины. После редактора снова выполните:

sudo systemctl restart rsyslog

Шаг 5: Запустите и проверьте работу rsyslog

Убедитесь, что служба запущена и будет автоматически стартовать при загрузке системы:

sudo systemctl restart rsyslog
sudo systemctl enable rsyslog

Проверьте статус:

sudo systemctl status rsyslog

Начните просмотр системного лога в режиме реального времени:

tail -f /var/log/syslog

Если логи появляются, настройка успешна.

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

  • Статус службы: systemctl is-active rsyslog должен возвращать active.
  • Проверка файлов логов: убедитесь, что файлы, на которые ссылаются в конфигурации (/var/log/syslog, /var/log/local0.log, /var/log/error.log), существуют и имеют правильные права (-rw------- root root).
  • Удалённая передача: на удалённом хосте настройте rsyslog для приёма (например, module(load="imudp") и input(type="imudp" port="514")), затем выполните systemctl restart rsyslog. Проверьте лог на удалённой стороне: tail -f /var/log/syslog.

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

  • Служба rsyslog не запускается:
    • Проверьте sudo systemctl status rsyslog на наличие ошибок.
    • Убедитесь, что зависимые пакеты установлены (sudo apt install rsyslog или sudo yum install rsyslog).
    • Проверьте синтаксис конфигурации: sudo rsyslogd -v или sudo rsyslogd -f /etc/rsyslog.conf.
  • Нет записи логов в файлы:
    • Убедитесь, что путь к файлу корректен и директория доступна для записи.
    • Проверьте права: chmod 600 /var/log/local0.log и chown root:root /var/log/local0.log.
  • Синтаксис конфигурации неверен:
    • Используйте sudo rsyslogd -v -f /etc/rsyslog.conf для проверки без запуска.
    • Ошибки обычно выделены красным цветом в редакторе.
  • Проблемы с удалённой передачей:
    • Проверьте сетевую доступность (ping remote-server или telnet remote-server 514).
    • Убедитесь, что брандмауэр (iptables, firewalld, ufw) не блокирует UDP‑порт 514.
    • На удалённом сервере убедитесь, что rsyslog настроен на приём UDP‑трафика.
  • Дублирование логов:
    • Проверьте правила в /etc/rsyslog.d/ на наличие дублирующих записей.
    • Используйте &stop после записи, если не хотите дальнейшей обработки сообщения.

Эти советы помогут быстро устранить наиболее распространённые трудности при настройке rsyslog. Если проблема сохраняется, проверьте системный лог (journalctl -u rsyslog) или ищите конкретный код ошибки в нашей базе знаний.

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

Зачем нужен rsyslog и чем он отличается от syslog?
Как проверить, что rsyslog работает после установки?
Что делать, если журналы не передаются на удалённый сервер?
Как настроить rsyslog на автоматический ротейтинг логов?

Полезное

Установите rsyslog
Настройте основной конфигурационный файл
Создайте правила логирования
Настройте удалённую передачу логов (опционально)
Запустите и проверьте работу rsyslog

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