Введение / Зачем это нужно
Настройка клиента rsyslog позволяет централизованно собирать системные логи с нескольких узлов Linux в едином месте. Это упрощает мониторинг, аудит и быстрый поиск проблем. После выполнения этого гайда вы сможете настроить автоматическую отправку логов на удалённый syslog-сервер, что особенно полезно для production-сред средних и крупных сетей.
Требования / Подготовка
- Установленный rsyslog (
rsyslogверсии ≥ 8.0). - Права администратора (
sudo). - Доступный syslog-сервер (TCP/UDP порт 514).
- Базовое знание редактирования текстовых файлов и работы с терминалами.
Пошаговая инструкция
Шаг 1: Установка пакета rsyslog
Убедитесь, что пакет rsyslog установлен. На большинстве дистрибутивов выполните:
# Для Debian/Ubuntu
sudo apt update && sudo apt install rsyslog -y
# Для RHEL/CentOS
sudo dnf install rsyslog -y
Шаг 2: Редактирование конфигурационного файла
Откройте файл /etc/rsyslog.conf в вашем любимом редакторе. Для удобства создайте отдельный файл в каталоге /etc/rsyslog.d/:
sudo nano /etc/rsyslog.d/50-client.conf
Шаг 3: Добавление правила передачи логов
Добавьте строку, которая указывает rsyslog отправлять все сообщения на удалённый сервер:
*.* @10.0.0.20:514
Замените 10.0.0.20 на IP-адрес вашего syslog-сервера и, при необходимости, укажите порт. Если сервер ожидает TCP, используйте :@10.0.0.20:514.
Шаг 4: Настройка параметров соединения
Если сервер поддерживает шифрование TLS, добавьте соответствующие параметры:
*.* action(type="omfwd" Target="10.0.0.20" Port="514" Protocol="tcp" Action.ResumeRetryCount="-1")
В противном случае стандартного правила достаточно.
Шаг 5: Перезапуск службы rsyslog
Примените новые настройки:
sudo systemctl restart rsyslog
sudo systemctl status rsyslog
Проверьте, что служба работает без ошибок.
Шаг 6: Проверка отправки логов
Создайте тестовое событие:
logger TestMessage
Проверьте лог-файл сервера (/var/log/syslog или /var/log/rsyslog/rsyslog.log) или выполните tail -f /var/log/syslog на клиенте, чтобы убедиться, что запись появилась.
Проверка результата
После выполнения шагов убедитесь, что:
- Служба
rsyslogработает (systemctl is-active rsyslog). - Клиент отправляет сообщения (
grep TestMessage /var/log/syslogна сервере). - Нет ошибок в
/var/log/rsyslog/rsyslog.log(grep error /var/log/rsyslog/rsyslog.log).
Возможные проблемы
- Нет доступа к
/etc/rsyslog.conf– выполните команду сsudo. - Соединение отклонено – проверьте брандмауэр (iptables, firewalld) и доступность порта 514 на сервере.
- Неверный IP/порт – убедитесь, что адрес корректен и сервер слушает указанный порт.
- Дублирующиеся логи – удалите старые правила перед добавлением новых или укажите фильтр
*.infoвместо*..
⚠️ Важно: перед изменением конфигурации создайте резервную копию
/etc/rsyslog.confи/etc/rsyslog.d/50-client.conf. Это позволит быстро вернуть настройки, если что-то пойдёт не так.
💡 Совет: для сложных сред используйте пулевое отправление (
omfwdсAction.PenaltyDuration="5") — это автоматически переключится на резервный сервер, если основной недоступен.