Логирование · 6 min read · Sep 13, 2025
Как настроить удаленное логирование с Rsyslog на Debian 12

Rsyslog — это демон системы логирования с открытым исходным кодом, который используется для сбора, фильтрации, хранения и пересылки сообщений журналов операционных систем и приложений. Это мощная и гибкая система логирования, которая поддерживает несколько протоколов, включая TCP, UDP и RELP (Reliable Event Logging Protocol). Вы можете использовать Rsyslog для централизованного хранения журналов ваших серверов, приложений и баз данных.
Этот гид покажет вам, как установить rsyslog и настроить удаленное логирование на сервере Debian 12. Вы также настроите сервер Linux для отправки журналов удаленно на сервер Rsyslog.
Предварительные требования
Для начала работы с этим руководством вам понадобятся следующие вещи:
- Сервер Debian 12
- Непривилегированный пользователь с правами администратора
- Машина Linux в качестве клиента для тестирования
Установка Rsyslog
Прежде чем начать, вам нужно установить Rsyslog на ваш сервер Debian. На этом этапе вы установите Rsyslog через APT, затем запустите и включите службу Rsyslog.
Сначала выполните команду ниже, чтобы обновить индекс пакетов Debian и установить Rsyslog в вашу систему. Введите ‘ Y ‘, чтобы подтвердить установку.
sudo apt update
sudo apt install rsyslog
После завершения установки выполните команду ‘ systemctl ‘ ниже, чтобы запустить и включить сервер ‘ rsyslog ‘. Затем проверьте, чтобы убедиться, что он работает.
sudo systemctl enable --now rsyslog
sudo systemctl status rsyslogВ следующем выводе вы можете увидеть, что Rsyslog работает и включен.

Настройка UFW (Uncomplicated Firewall)
После установки Rsyslog вы установите и настроите UFW (Uncomplicated Firewall). Вы откроете порт ‘22’ для службы OpenSSH и порт ‘514’ для Rsyslog. Затем вы запустите и включите службу UFW.
Чтобы установить UFW, выполните следующую команду ‘ apt ‘. Введите ‘ Y ‘, чтобы подтвердить установку.
sudo apt install ufw
После завершения установки выполните следующую команду ‘ufw’, чтобы включить профиль ‘ OpenSSH ‘ и разрешить доступ к порту ‘514’. Профиль ‘ OpenSSH ‘ позволит доступ по SSH, а порт ‘ 514 ‘ — это порт syslog.
sudo ufw allow OpenSSH
sudo ufw allow 514Теперь запустите и включите UFW с помощью команды ниже. Введите ‘ y ‘, чтобы подтвердить, и вы получите вывод, такой как ‘ Брандмауэр активен и включен при запуске системы ‘.
sudo ufw enableНаконец, проверьте статус UFW с помощью следующей команды.
sudo ufw statusВ выводе ниже вы можете увидеть UFW со статусом активен, профиль OpenSSH и порт ‘ 514 ‘ включен.

Rsyslog для получения журналов с удаленного сервера
Теперь, когда вы установили Rsyslog и настроили UFW, вы готовы настроить Rsyslog для получения журналов с удаленных серверов. Для этого вам нужно изменить файл ‘/etc/rsyslog.conf’ и настроить:
- Включите модуль ‘ imudp ‘, чтобы получать журналы с удаленных серверов через UDP
- По желанию, включите ‘ imtcp ‘, чтобы получать журналы через TCP
- Включите опцию ‘ AllowedSender ‘, чтобы разрешить определенным подсетям отправлять журналы удаленно
- Добавьте пользовательский шаблон для Rsyslog
- Проверьте конфигурацию Rsyslog
- Запустите, включите и проверьте службу Rsyslog
Давайте начнем.
Сначала отредактируйте файл ‘ /etc/rsyslog.conf ‘ с помощью следующего редактора ‘ nano ‘.
sudo nano /etc/rsyslog.confУберите комментарий с следующих строк, чтобы включить модуль ‘ imudp ‘ и разрешить syslog записывать в сервер Rsyslog.
# предоставляет прием syslog по UDP
module(load="imudp")
input(type="imudp" port="514")Кроме того, если вам нужно включить syslog через TCP, включите модуль ‘ imtcp ‘ следующим образом:
# предоставляет прием syslog по TCP
module(load="imtcp")
input(type="imtcp" port="50514")Теперь добавьте опцию ‘ AllowedSender ‘ и введите вашу сетевую подсеть, которая имеет право отправлять сообщения Syslog на ваш сервер Rsyslog.
# $AllowedSender - указывает, какие удаленные системы могут отправлять сообщения syslog на rsyslogd
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.localВведите следующую конфигурацию, чтобы настроить шаблон для файлов журналов с удаленных серверов. В этом примере файлы журналов с удаленного сервера будут храниться в директории ‘ /var/log/servers/server-ip ‘.
# Пользовательский шаблон для динамического создания имени файла журнала на основе IP-адреса клиента.
$template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.?RemInputLogsСохраните файл и выйдите из редактора, когда закончите.
Затем выполните команду ‘ rsyslogd ‘ ниже, чтобы проверить конфигурацию Rsyslog и убедиться, что у вас правильная конфигурация.
rsyslogd -f /etc/rsyslog.conf -N1Когда ошибок не возникает, выполните команду ‘ systemctl ‘ ниже, чтобы перезапустить службу ‘ rsyslog ‘ и применить ваши изменения.
sudo systemctl restart rsyslogНаконец, проверьте статус службы ‘ rsyslog ‘, чтобы убедиться, что она работает.
sudo systemctl status rsyslogВ выводе ниже вы можете увидеть, что ‘ rsyslog ‘ работает.

Кроме того, проверьте порт ‘ 514 ‘ на вашем сервере, чтобы убедиться, что Rsyslog работает.
ss -tulpn | grep 514Вы можете увидеть, что UDP порт ‘ 514 ‘ используется Rsyslog.
Отправка журналов на сервер Rsyslog
Теперь, когда вы настроили удаленное логирование с Rsyslog на вашем сервере Debian, давайте попробуем отправить журналы с ‘ 192.168.10.41 ‘ на сервер ‘ 192.168.10.10 ‘. Для этого вам нужно следующее:
- Установить пакет Rsyslog на вашей машине
- Отредактировать конфигурацию Rsyslog и определить, какие журналы будут отправлены на удаленный сервер Rsyslog
- По желанию, настроить буфер очереди на диске для Rsyslog
Установите пакет ‘rsyslog’ с помощью команды ‘ apt ‘ ниже. Введите ‘ Y ‘, чтобы подтвердить установку.
sudo apt install rsyslog
Теперь откройте файл конфигурации по умолчанию ‘ /etc/rsyslog.conf ‘ с помощью редактора ‘ nano ‘.
sudo nano /etc/rsyslog.confДобавьте следующую конфигурацию, чтобы отправить журналы на сервер Rsyslog ‘ 192.168.10.10 ‘. В этом случае мы отправим журналы kernel, cron и authentication на сервер Rsyslog.
# Отправить журналы на удаленный сервер syslog по UDP
auth,[email protected]:514
[email protected]:514
[email protected]:514Теперь добавьте следующее, чтобы настроить буфер очереди для Rsyslog.
# Определить буфер очереди на диске на случай, если сервер выйдет из строя
$ActionQueueFileName queue # определить имя файла для дисковой помощи.
$ActionQueueMaxDiskSpace 1g # Максимальный размер, который все файлы очереди вместе будут использовать на диске.
$ActionQueueSaveOnShutdown on # указывает, что данные должны быть сохранены при завершении
$ActionQueueType LinkedList # хранит сообщения в очереди в памяти, что делает процесс очень быстрым.
$ActionResumeRetryCount -1 # предотвращает сброс сообщений rsyslog при повторной попытке подключения, если сервер не отвечает,Сохраните файл и выйдите из редактора.
Затем выполните команду ‘ rsyslogd ‘ ниже, чтобы проверить и подтвердить вашу конфигурацию Rsyslog.
rsyslogd -f /etc/rsyslog.conf -N1Когда ошибок не возникает, выполните команду ‘ systemctl ‘ ниже, чтобы перезапустить Rsyslog и проверить, чтобы убедиться, что он работает.
sudo systemctl restart rsyslogd
sudo systemctl status rsyslogdВы можете увидеть ниже, что служба Rsyslog работает, и ваши журналы будут отправлены на сервер Rsyslog на ‘ 192.168.10.10 ‘.

Проверка файлов журналов на сервере Rsyslog
Чтобы убедиться, что ваш Rsyslog работает, вам нужно проверить каталог журналов, который вы настроили в шаблоне. В этом примере файлы журналов с удаленных серверов будут храниться в директории ‘ /var/log/servers’ .
Проверьте каталог журналов ‘ /var/log/servers ‘ с помощью команды ниже. Это покажет вам каталог каждого сервера.
ls /var/log/serversТеперь проверьте каталог журналов вашего сервера, который хранится в директории ‘ /var/log/servers/server-ip ‘. Вы увидите, что на сервере Rsyslog доступно несколько файлов журналов.
Теперь вы можете проверить файлы журналов с помощью команд ‘ cat ‘ или ‘ tail ‘, чтобы увидеть детали журналов.
cat /var/log/servers/logfile.log
tail -f /var/log/servers/logfile.log
Заключение
Поздравляем! Вы завершили установку Rsyslog на сервере Debian 12. Вы также настроили удаленное логирование через Rsyslog и отправили журнал на сервер через syslog UDP. На следующем этапе вы также можете настроить как модули ввода TCP, так и UDP и интегрировать их с системами логирования, такими как Rsyslog или Logstash.
Get new posts in your inbox
No spam. Unsubscribe anytime.