LinuxСредняя

Ошибка rsyslog в Linux: быстрое исправление сбоя логгирования

Статья подробно разбирает типичные ошибки rsyslog в Linux: от падения сервиса до проблем с конфигурацией. Вы получите конкретные команды для диагностики, способы восстановления работы и рекомендации по профилактике.

Обновлено 16 февраля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+CentOS 8+RHEL 8+Fedora 35+

Что означает ошибка rsyslog

Ошибка rsyslog в Linux указывает на сбой в работе системного демона логгирования. Это может проявляться как:

  • Сервис rsyslog не запущен или падает сразу после старта
  • Системные сообщения не записываются в файлы (/var/log/syslog, /var/log/messages)
  • Логи либо отсутствуют, либо содержат только старые записи
  • В выводе systemctl status rsyslog видно состояние failed или inactive

Типичное сообщение в логах systemd:

● rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2026-02-16 10:30:00 MSK; 1min 30s ago

Причины возникновения

  1. Сервис не запущен — rsyslog отключён или не включён в автозагрузку.
  2. Ошибки в конфигурации — синтаксическая ошибка в /etc/rsyslog.conf или файлах в /etc/rsyslog.d/.
  3. Недостаточно прав — пользователь syslog (или root) не может записывать в каталог /var/log.
  4. Конфликт портов — другой процесс уже использует порт 514 (UDP/TCP), который требует rsyslog.
  5. Повреждённые модули — битые или несовместимые модули в /etc/rsyslog.d/ или /usr/lib/rsyslog/.
  6. Недостаток дискового пространства — раздел с /var/log заполнен на 100%.
  7. Проблемы с SELinux/AppArmor — политики безопасности блокируют запись.

Способ 1: Проверка и перезапуск сервиса

Чаще всего проблема решается простым перезапуском сервиса.

  1. Проверьте текущий статус:
systemctl status rsyslog
  1. Если сервис не активен, попробуйте запустить:
sudo systemctl start rsyslog
  1. Включите автозагрузку (если не включена):
sudo systemctl enable rsyslog
  1. После запуска проверьте, что сервис работает:
systemctl is-active rsyslog && echo "Rsyslog работает" || echo "Rsyslog не запущен"
  1. Отправьте тестовое сообщение и убедитесь, что оно появится в логах:
logger "Тестовое сообщение от FixPedia"
tail -f /var/log/syslog | grep "Тестовое сообщение"

Способ 2: Проверка конфигурации на синтаксис

Неправильный синтаксис в конфигурационных файлах — частая причина падения rsyslog.

  1. Проверьте конфигурацию без перезапуска:
sudo rsyslogd -N1

Если вывод содержит error или invalid, Means есть ошибки.

  1. Проверьте основные конфиги:
# Основной конфиг
sudo rsyslogd -N1 -f /etc/rsyslog.conf

# Все файлы в /etc/rsyslog.d/
for f in /etc/rsyslog.d/*.conf; do
  echo "Проверка $f"
  sudo rsyslogd -N1 -f "$f" || echo "Ошибка в $f"
done
  1. Если нашли ошибку, исправьте файл. Частые проблемы:
    • Лишние или недостающие кавычки
    • Неправильный синтаксис директитив (*.* вместо *.*;)
    • Опечатки в именах модулей (imtcp вместо imtcp)
  2. После исправлений снова проверьте синтаксис и перезапустите:
sudo systemctl restart rsyslog

Способ 3: Проверка прав доступа и места на диске

Rsyslog должен иметь возможность записывать в каталог логов.

  1. Проверьте права на /var/log:
ls -ld /var/log

Ожидаемый вывод: drwxr-xr-x и владелец root. Подкаталоги логов должны быть доступны для записи пользователю syslog.

  1. Проверьте, что пользователь syslog существует:
id syslog

Если пользователь отсутствует, переустановите пакет rsyslog.

  1. Проверьте место на диске:
df -h /var/log

Если раздел заполнен на 100%, очистите старые логи или увеличьте размер раздела.

  1. Проверьте владельца файлов логов:
ls -l /var/log/syslog /var/log/messages

Владельцем должен быть syslog или root. Если нет, исправьте:

sudo chown syslog:adm /var/log/syslog
sudo chmod 640 /var/log/syslog

Способ 4: Восстановление конфигурации по умолчанию

Если конфигурация сильно повреждена, проще восстановить оригинальные файлы.

  1. Debian/Ubuntu:
sudo apt-get install --reinstall rsyslog

Это вернёт файлы из пакета. Конфиг /etc/rsyslog.conf будет заменён, но файлы в /etc/rsyslog.d/ останутся.

  1. RHEL/CentOS/Fedora:
sudo yum reinstall rsyslog
# Или для новых версий:
sudo dnf reinstall rsyslog
  1. После переустановки проверьте конфигурацию (Способ 2) и перезапустите сервис.
  2. Если у вас были кастомные настройки, сравните новый конфиг со старым бэкапом (если есть) и перенесите только необходимые правки.

Способ 5: Диагностика через journalctl

Systemd сохраняет логи всех сервисов, включая rsyslog, даже если он не работает.

  1. Просмотрите логи rsyslog напрямую:
sudo journalctl -u rsyslog --no-pager -n 50
  1. Ищите конкретные ошибки:
sudo journalctl -u rsyslog | grep -i "error\|failed\|invalid"
  1. Если rsyslog не может стартовать из-за модуля, вы увидите что-то вроде:
rsyslogd: could not load module 'imtcp', errors: 1

В этом случае проверьте, установлен ли нужный модуль:

dpkg -l | grep rsyslog   # Debian/Ubuntu
rpm -qa | grep rsyslog   # RHEL/CentOS
  1. Если проблема в порту 514, проверьте, не занят ли он:
sudo ss -tulpn | grep :514

Если порт занят другим процессом, остановите его или измените порт rsyslog в конфиге.

Профилактика

Чтобы избежать повторения ошибок:

  1. Тестируйте конфигурацию перед применением — всегда используйте rsyslogd -N1 после правки конфигов.
  2. Делайте бэкапы — сохраняйте оригинальные конфиги: sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.backup.
  3. Мониторьте логи — настройте алерты на падение сервиса (например, через systemd Restart=on-failure в юните).
  4. Обновляйте осторожно — после обновления rsyslog проверяйте совместимость конфигурации (синтаксис может меняться).
  5. Используйте включение модулей по необходимости — не подключайте модули, которые не используете, особенно экспериментальные.
  6. Регулярно проверяйте место на диске — настройте ротацию логов через logrotate (обычно настроен по умолчанию).

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

Почему rsyslog не записывает логи в файл?
Как проверить, что rsyslog работает корректно?
Что делать, если rsyslog падает при старте?
Можно ли временно отключить rsyslog?

Полезное

Проверьте статус сервиса rsyslog
Перезапустите сервис rsyslog
Проверьте конфигурацию на синтаксис
Проверьте права на каталог логов
Просмотрите логи systemd для rsyslog
Восстановите конфигурацию по умолчанию

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