Как настроить удаленное протоколирование с помощью Rsyslog в Debian 12

Rsyslog – это демон системы регистрации с открытым исходным кодом, который используется для сбора, фильтрации, хранения и пересылки сообщений журнала операционных систем и приложений. Это мощная и гибкая система протоколирования, поддерживающая множество протоколов, включая TCP, UDP и RELP (Reliable Event Logging Protocol). Вы можете использовать Rsyslog для централизованного ведения журналов для ваших серверов, приложений и баз данных.

В этом руководстве мы покажем вам, как установить rsyslog и настроить удалённое протоколирование на сервере Debian 12. Вы также настроите сервер Linux для удалённой отправки журналов на сервер Rsyslog.

Установка 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 со статусом active, профиль 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.

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

Кроме того, если вам нужно включить syslog через TCP, включите ‘imtcp‘ модуль, как показано ниже:

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="50514")

Теперь добавьте модуль ‘AllowedSender‘ и введите подсеть вашей сети, которой разрешено отправлять сообщения Syslog на сервер Rsyslog.

# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.unixs.local, db.unixs.local

Введите следующую конфигурацию, чтобы установить шаблон для файлов журнала с удаленных серверов. В этом примере файлы журналов с удаленного сервера будут храниться в ‘/var/log/servers/server-ip‘ директория.

#Custom template to generate the log filename dynamically based on the client's IP address.
$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

Наконец, проверьте ‘rsyslog‘ статус службы, чтобы убедиться, что она работает.

sudo systemctl status rsyslog

В приведенном ниже выводе видно, что ‘rsyslog‘ запущен.

проверка службы rsyslog

Кроме того, проверьте порт ‘514‘ на вашем сервере, чтобы убедиться, что Rsyslog запущен.

ss -tulpn | grep 514

Ниже показан UDP-порт ‘514‘ используется программой Rsyslog.

проверка порта 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‘. В этом случае мы отправим ядро, cron, и аутентификация журналы на сервер Rsyslog.

# Send logs to a remote syslog server over UDP
auth,[email protected]:514
[email protected]:514
[email protected]:514

Теперь добавьте следующее, чтобы установить буфер очереди для Rsyslog.

# Define Disk Queue Buffer in case the server goes down
$ActionQueueFileName queue # define a file name for disk assistance.
$ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk.
$ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown
$ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast.
$ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,

Сохраните файл и выйдите из редактора.

Далее запустите программу ‘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‘ или ‘хвост‘, чтобы просмотреть подробную информацию о журналах.

cat /var/log/servers/logfile.log
tail -f /var/log/servers/logfile.log

проверить журнал

Заключение

Поздравляем! Вы завершили установку Rsyslog на сервер Debian 12. Вы также настроили удалённое протоколирование через Rsyslog и отправили журнал на сервер через syslog UDP. На следующем этапе вы можете настроить модули ввода TCP и UDP и интегрировать их с системами протоколирования, такими как Rsyslog или Logstash.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *