Логирование · 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

установка rsyslog

После завершения установки выполните команду ‘ systemctl ‘ ниже, чтобы запустить и включить сервер ‘ rsyslog ‘. Затем проверьте, чтобы убедиться, что он работает.

sudo systemctl enable --now rsyslog  
sudo systemctl status rsyslog

В следующем выводе вы можете увидеть, что Rsyslog работает и включен.

проверка rsyslog

Настройка UFW (Uncomplicated Firewall)

После установки Rsyslog вы установите и настроите UFW (Uncomplicated Firewall). Вы откроете порт ‘22’ для службы OpenSSH и порт ‘514’ для Rsyslog. Затем вы запустите и включите службу UFW.

Чтобы установить UFW, выполните следующую команду ‘ apt ‘. Введите ‘ Y ‘, чтобы подтвердить установку.

sudo apt install ufw

установка 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 ‘ включен.

настройка ufw

Rsyslog для получения журналов с удаленного сервера

Теперь, когда вы установили Rsyslog и настроили UFW, вы готовы настроить Rsyslog для получения журналов с удаленных серверов. Для этого вам нужно изменить файл ‘/etc/rsyslog.conf’ и настроить:

  1. Включите модуль ‘ imudp ‘, чтобы получать журналы с удаленных серверов через UDP
  2. По желанию, включите ‘ imtcp ‘, чтобы получать журналы через TCP
  3. Включите опцию ‘ AllowedSender ‘, чтобы разрешить определенным подсетям отправлять журналы удаленно
  4. Добавьте пользовательский шаблон для Rsyslog
  5. Проверьте конфигурацию Rsyslog
  6. Запустите, включите и проверьте службу 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 ‘ работает.

проверка службы 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

установка клиента 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

Чтобы убедиться, что ваш 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.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.