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
После завершения установки запустите команду ‘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 со статусом active, профиль 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.
# 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‘ статус службы, чтобы убедиться, что она работает.
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‘. В этом случае мы отправим ядро, 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 работает, необходимо проверить каталог журналов, который вы настроили в шаблоне. В этом примере файлы журналов с удаленных серверов будут храниться в директории ‘/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.