Linux

Настройка rsyslog в Linux: базовая конфигурация и фильтрация логов

В этом руководстве вы узнаете, как правильно настроить базовую конфигурацию rsyslog, создать правила фильтрации событий и проверить работу службы.

Обновлено 7 апреля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04/24.04 LTSDebian 11/12AlmaLinux 9 / Rocky Linux 9RHEL 9

Зачем настраивать rsyslog отдельно

Хотя современные дистрибутивы Linux активно используют systemd-journald, rsyslog остаётся отраслевым стандартом для надёжного сбора, фильтрации и пересылки системных событий. Его главное преимущество — гибкая маршрутизация. Вы можете отправлять логи ядра, сетевых служб и приложений в разные файлы, менять формат записей или перенаправлять их на внешний сервер мониторинга в реальном времени. После выполнения этого руководства вы получите полностью рабочую конфигурацию, которая будет автоматически сохранять только нужные вам события.

Требования и подготовка системы

Перед началом убедитесь, что у вас есть доступ к серверу с правами root или пользователя из группы sudo. Инструкция проверена на Ubuntu 22.04/24.04, Debian 12 и дистрибутивах на базе RHEL 9. Вам потребуется терминал и базовое понимание работы с текстовыми редакторами (nano или vim). Убедитесь, что на сервере настроено корректное время (NTP), так как временные метки критичны для анализа журналов.

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

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

В большинстве дистрибутивов rsyslog уже предустановлен. Проверьте его статус:

sudo systemctl status rsyslog

Если в выводе видите inactive или службу не найдена, установите пакет вручную. Для Debian/Ubuntu:

sudo apt update && sudo apt install rsyslog -y

Для RHEL/AlmaLinux/Rocky Linux:

sudo dnf install rsyslog -y

После установки запустите службу и добавьте её в автозагрузку:

sudo systemctl enable --now rsyslog

Шаг 2: Разбор основного конфигурационного файла

Откройте главный файл конфигурации для проверки:

sudo nano /etc/rsyslog.conf

В начале файла находятся загружаемые модули. Убедитесь, что раскомментированы строки:

module(load="imuxsock") # поддержка локальной системной журналировки
module(load="imklog")   # чтение сообщений ядра

Ниже расположен блок правил маршрутизации. По умолчанию он уже содержит записи в /var/log/syslog (Debian/Ubuntu) или /var/log/messages (RHEL/Alma). Синтаксис строится по формуле: объект.приоритет путь_к_файлу. Например, auth,authpriv.* /var/log/auth.log записывает все события авторизации в отдельный журнал.

💡 Совет: Не удаляйте стандартные директивы, если точно не понимаете их назначение. Ошибка в глобальных настройках может остановить всю систему журналирования.

Шаг 3: Создание кастомных правил фильтрации

Лучшая практика — изолировать пользовательские настройки в директории /etc/rsyslog.d/. Создайте новый файл:

sudo nano /etc/rsyslog.d/50-custom-rules.conf

Добавьте правила, которые отсортируют логи по конкретным сервисам. Например, перенос всех сообщений от sshd и sudo в отдельные файлы:

:programname, isequal, "sshd" /var/log/secure/ssh_access.log
:programname, isequal, "sudo" /var/log/secure/sudo_ops.log
& stop

Директива & stop запрещает дальнейшую обработку сообщения, что предотвращает его дублирование в общем системном логе. Создайте целевую директорию и назначьте правильные права:

sudo mkdir -p /var/log/secure
sudo chown syslog:adm /var/log/secure

⚠️ Важно: В системах RHEL/SELinux пользователь для rsyslog — syslog, группа — adm. Если ваша система использует другие системные учётные записи, адаптируйте команду chown под них.

Шаг 4: Валидация и применение изменений

Никогда не перезапускайте службу без проверки синтаксиса. Выполните:

sudo rsyslogd -N1

Команда просканирует все включённые конфиги и выведет предупреждения. Если в конце строки End of config validation run. Bye. нет ошибок, применяйте изменения:

sudo systemctl restart rsyslog

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

Чтобы убедиться, что правила работают, сгенерируйте тестовое сообщение:

sudo logger -t testapp "Проверка работы rsyslog после настройки"

Откройте общий лог и найдите вашу запись:

grep "Проверка работы" /var/log/syslog   # для Debian/Ubuntu
grep "Проверка работы" /var/log/messages # для RHEL/Alma

Если сообщение появилось, конфигурация активна. Также убедитесь, что файлы в /var/log/secure/ создаются при выполнении команд sudo или ssh.

Возможные проблемы при настройке

  • Служба не запускается после правки конфига. Чаще всего причина в опечатке в приоритете (*warning вместо *.warning) или отсутствии кавычек вокруг имён модулей. Вернитесь к rsyslogd -N1 и исправьте строку, на которую укажет валидатор.
  • Нет прав на запись в /var/log/. rsyslog работает от непривилегированного пользователя. Убедитесь, что права на целевые директории выставлены как syslog:adm с маской 0640.
  • SELinux блокирует создание файлов. В дистрибутивах семейства RHEL проверьте контекст безопасности: restorecon -Rv /var/log/secure/. Временное отключение (setenforce 0) поможет локализовать проблему, но правильный путь — настройка политик через audit2allow.

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

В каком формате хранятся логи rsyslog по умолчанию?
Можно ли отправлять логи на внешний сервер с помощью rsyslog?
Как проверить синтаксис конфига rsyslog перед перезапуском?
Чем rsyslog отличается от systemd-journald?

Полезное

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