ПГК · Практикум МДК
Практическое заданиеСиСА · Демо 2026

Сбор и ротация логов

Сохраняется в этом браузере
На этой странице

Задание

6. Реализуйте логирование при помощи rsyslog на устройствах HQ-RTR, BR-RTR, BR-SRV:

  • Сервер сбора логов расположен на HQ-SRV, убедитесь, что сервер не является клиентом самому себе
  • Приоритет сообщений должен быть не ниже warning
  • Все журналы должны находиться в директории /opt. Для каждого устройства должна выделяться своя поддиректория, которая совпадает с именем машины
  • Реализуйте ротацию собранных логов на сервере HQ-SRV:
    • Ротируются все логи, находящиеся в директории и поддиректориях /opt
    • Ротация производится один раз в неделю
    • Логи необходимо сжимать
    • Минимальный размер логов для ротации – 10МБ.

Реализация

Настройка сервера сбора логов на HQ-SRV

Виртуальная машина HQ-SRV

Устанавливаем пакет rsyslog на HQ-SRV

# dnf install rsyslog -y

Открываем файл конфигурации /etc/rsyslog.conf

# nano /etc/rsyslog.conf

Четыре модуля должны быть закомментированы, что бы сервер не является клиентом самому себе

  • imjournal
  • imuxsock
  • imklog
  • immark

Для передачи логов используем протокол TCP, раскомментируем модуль imtcp, чтобы rsyslog получал логи с удаленных узлов.

3-6_001.png

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

$template RemoteLogs, "/opt/%HOSTNAME%/rsyslog.txt"
*.* ?RemoteLogs
& stop

3-6_002.png

Запускаем и добавляем в автозагрузку службу rsyslog

# systemctl enable rsyslog --now

Настройка клиентов

Виртуальная машина HQ-RTR

Устанавливаем пакет rsyslog на HQ-RTR

# dnf install rsyslog -y

Открываем файл конфигурации /etc/rsyslog.conf

# nano /etc/rsyslog.conf

В блоке MODULES нужно раскомментировать модули, которые обеспечивают поддержку логирования

  • imjournal
  • imuxsock
  • imklog
  • immark

3-6_003.png

В самый конец добавляем строку, которая отвечает за отправку логов уровня предупреждения (warning) и выше

*.warning @@192.168.100.2:514

3-6_004.png

Запускаем и добавляем в автозагрузку службу rsyslog

# systemctl enable rsyslog --now

Виртуальные машины BR-RTR и BR-SRV

BR-RTR и BR-SRV настраиваются аналогично HQ-RTR

Проверка логирования

Для проверки сообщения только уровня warning и выше, добавим записи различного уровня в лог на любом из клиентов с помощью команд

Обычное сообщение

logger -p user.info “Test info”

Сообщения уровня warning

logger -p user.warning “Test warning”

Сообщения уровня error

logger -p user.error “Test error”

3-6_005.png

Проверим на HQ-SRV содержимое файла /opt/br-srv/rsyslog.txt

3-6_006.png

Настройка ротации логов

Виртуальные машины HQ-SRV

Для ротации логов используется пакет logrotate, в РЕД ОС 8 – предустановлен

Открываем файл /etc/logrotate.d/rsyslog

# nano /etc/logrotate.d/rsyslog

И прописываем следующие строки

/opt/*/rsyslog.txt {
    weekly                  # Ротация каждую неделю
    size 10M                # Размер лога  в байтах, по достижении которого, он будет ротирован – 10 МБ
    compress                # Сжимать логи после ротации
    missingok               # Не выдавать ошибку, если файл отсутствует
    notifempty              # Не ротировать файл лога, если он пуст
    create 0640 root root   # Создавать новый пустой лог-файл после ротации с указанными правами
    rotate 4                # Хранить заданное число старых логов,
}

Каждую неделю будут проверяться логи и если какие-то из них больше 10МБ, они будут сжаты в архив

3-6_007.png

Для автоматической ротация нужно использовать cron

Для настройки автоматической ротации логов определяем полный путь к исполняемому файлу logrotate

# which logrotate

Вывод команды - /usr/sbin/logrotate

3-6_008.png

Для настройки автоматического запуска logrotate открываем утилиту crontab

# crontab -e

И добавляем в нее следующую запись

0 0 * * 0 /usr/sbin/logrotate -f /etc/logrotate.d/rsyslog

3-6_009.png

Проверить ротацию можно запустив logrotate в режиме отладки

# logrotate -d /etc/logrotate.d/rsyslog

Выведет все, что планируется сделать, но не будет изменять файлы на диске

Для запуска ротации вручную

# logrotate -f /etc/logrotate.d/rsyslog

Поиск по мануалу

Введите текст для поиска.