Введение
RSYSLOG — это стандартный системный логгер в большинстве дистрибутивов Linux. Он позволяет централизовать сбор логов, что упрощает мониторинг, диагностику и аудит. После выполнения этого гайда у вас будет настроенный rsyslog, способный записывать локальные события и отправлять их на удалённый сервер.
Требования
- Любая из поддерживаемых ОС: Ubuntu 20.04, Ubuntu 22.04, Debian 10, CentOS 8, RHEL 8.
- Права root (или пользователя с sudo).
- Доступ в сеть до целевого логгера (если планируется удалённая отправка).
- Установленный текстовый редактор (
nano,vimили любой другой).
Установка rsyslog
Шаг 1: Установка пакета
Debian‑основанные системы
sudo apt update
sudo apt install rsyslog
RHEL‑основанные системы
sudo dnf install rsyslog
После установки сервис автоматически запущен. Убедитесь, что он активен:
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
Настройка rsyslog
Шаг 2: Редактирование базового конфигурационного файла
Основной конфигурационный файл обычно находится по пути /etc/rsyslog.conf. Откройте его:
sudo nano /etc/rsyslog.conf
Добавьте или отредактируйте строку, которая определяет местоположение локального лог‑файла. Например:
*.info;local7/notice /var/log/syslog
Сохраните изменения (Ctrl+O, Enter, Ctrl+X).
Шаг 3: Добавление правила для удалённого логирования
Если вам нужно отправлять логи на удалённый сервер, создайте новый файл в каталоге /etc/rsyslog.d/ (например, 30-remote.conf). Используйте редактор:
sudo nano /etc/rsyslog.d/30-remote.conf
Вставьте следующее правило, заменив remote‑server на IP или hostname целевого хоста:
*.* @remote-server:514
Сохраните и выйдите.
Шаг 4: Проверка конфигурации
Перед перезапуском проверьте синтаксис:
sudo rsyslog -t
Если ошибок нет, перезапустите сервис:
sudo systemctl restart rsyslog
Шаг 5: Тестирование работы сервиса
Создайте тестовое лог‑событие:
logger test
Проверьте, появилось ли сообщение в локальном логе:
sudo tail -f /var/log/syslog
Вы должны увидеть что-то вроде:
Oct 14 12:34:56 hostname logger[12345]: test
Если запись отображается, rsyslog работает корректно.
Проверка результата
- Локальные логи:
ls -l /var/log/syslog*(или/var/log/messagesна Debian) должны содержать новые записи. - Удалённая отправка: На целевом сервере проверьте, что лог‑пакеты принимаются (например, с помощью
netcatили syslog‑агента). - Статус сервиса:
sudo systemctl status rsyslog— состояние должно бытьactive (running).
Возможные проблемы
- Синтаксис конфигурации неверен →
rsyslog -tукажет на ошибку. Исправьте её и перезапустите. - Нет прав на запись в
/var/log/syslog→ убедитесь, что rsyslog запущен от root или имеет соответствующие права (chmod 755 /var/log). - Удалённый хост недоступен → проверьте сетевое соединение (
ping remote-server). Убедитесь, что целевой syslog‑порт (по умолчанию 514) открыт в брандмауэре. - Повторяющиеся тестовые записи → если
logger testсоздаёт дублирующие записи после перезапуска, проверьте наличие дублирующих правил в/etc/rsyslog.d/.
Теперь у вас есть полностью функциональный rsyslog, готовый к локальному логированию и удалённой передаче данных. Продолжите изучение связанных гайдов, чтобы автоматизировать управление логами с помощью logrotate или настроить альтернативный логгер syslog-ng.