Как настроить сервер Rsyslog на Debian 11 (Bullseye)

Как настроить сервер Rsyslog на Debian 11 (Bullseye)

 

Файлы журналов имеют решающее значение для выявления и устранения ошибок. Это первые файлы, которые системные администраторы изучают, чтобы сузить круг возможных причин ошибки и тем самым найти решения для решения проблемы. В инфраструктуре с десятками или сотнями серверов и других устройств управление файлами журналов может быть проблемой. И здесь на помощь приходит rsyslog.

Rsyslog — это программа регистрации с открытым исходным кодом, которая упрощает пересылку файлов журнала на централизованный сервер журнала в IP-сети. Благодаря централизованному ведению журнала администраторы могут легко отслеживать файлы журналов нескольких систем из центрального пункта. В этом посте мы проведем вас через установку и настройку Rsyslog Server в Debian 11.

Лабораторная установка

Чтобы продемонстрировать, как Rsyslog можно использовать для отправки файлов журнала из клиентской системы на сервер Rsyslog, у нас будет простая лабораторная установка, как показано

  • Сервер Rsyslog: Debian 11 IP: 192.168.1.151
  • Клиент Rsyslog: Ubuntu 20.04 IP: 10.20.0.170

Шаг 1) Настройте Rsyslog на сервере

Как упоминалось ранее, Rsyslog работает по модели клиент-сервер, и мы начнем с настройки Rsyslog на сервере Debian 11. В Debian 11 по умолчанию устанавливается Rsyslog. Если по какой-то причине Rsyslog отсутствует, вы можете установить его с помощью команды:

$ sudo apt install -y rsyslog

После установки вы можете проверить его рабочий статус следующим образом:

$ sudo systemctl status rsyslog

Как настроить сервер Rsyslog на Debian 11 (Bullseye)

Затем мы настроим rsyslog для работы в режиме сервера. Файл конфигурации — это файл /etc/rsyslog.conf . Итак, отредактируйте его с помощью предпочитаемого вами текстового редактора.

$ sudo vi /etc/rsyslog.conf

Продолжите и раскомментируйте следующие строки, которые разрешают прием системного журнала UDP и TCP от удаленных клиентов.

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

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

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 1

После этого вставьте следующие строки, чтобы определить шаблон, который демон Rsyslog будет использовать для хранения входящих журналов от клиентских систем.

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 2

Файлы журнала будут использовать следующее соглашение об именах:

  • /% HOSTNAME% / — это имя хоста клиентской системы.
  • /% PROGRAMNAME% / — определяет клиентскую программу, создавшую файл журнала.

Чтобы применить изменения, перезапустите демон rsyslog.

$ sudo systemctl restart rsyslog

По умолчанию rsyslog прослушивает порт 514. Вы можете подтвердить, что это порт, который прослушивает демон rsyslog, выполнив команду ss .

$ sudo ss -tunlp | grep 514

 

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 3

Шаг 2) Настройте правила брандмауэра для rsyslog

Демон Rsyslog работает на сервере должным образом. Если вы используете брандмауэр UFW, обязательно разрешите порт 514, чтобы разрешить входящие сообщения журнала.

$ sudo ufw allow 514/tcp
$ sudo ufw allow 514/udp

Затем перезагрузите брандмауэр, чтобы применить правило брандмауэра, как показано ниже.

$ sudo ufw reload

Следующим шагом будет настройка клиентской системы Ubuntu для отправки файлов журнала на сервер rsyslog.

Шаг 3) Настройте клиентскую систему rsyslog

Последний шаг — настроить клиентскую систему для отправки файлов журнала на сервер rsyslog. Войдите в клиентскую систему и еще раз убедитесь, что демон rsyslog установлен и запущен.

Затем отредактируйте файл конфигурации rsyslog.

$ sudo vi /etc/rsyslog.conf

Перейдите в самый конец файла и добавьте эти строки.

#Enable sending system logs over UDP to rsyslog server
*.* @rsyslog-ip-address:514

#Enable sending system logs over TCP to rsyslog server
*.* @@rsyslog-ip-address:514

Эти строки указывают клиенту отправлять файлы журнала по протоколам UDP и TCP на сервер rsyslog. Обратите внимание, что в первой строке есть один символ @, обозначающий UDP, а во второй строке — два символа @@ для обозначения протокола TCP.

Если на удаленном сервере произойдет какой-либо простой и вы хотите сохранить свои журналы, вы можете установить буфер дисковой очереди, добавив показанные строки.

## Установить очередь диска, когда сервер rsyslog не работает:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Ниже приводится сводка всех изменений в конфигурации клиента.

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 4

Сохраните и выйдите из файла. Теперь перезапустите службу rsyslog, чтобы изменения вступили в силу.

$ sudo systemctl restart rsyslog

На этом этапе клиентская система должна отправлять файлы журнала на сервер rsyslog. Вернемся к серверу и узнаем.

Шаг 4) Просмотрите файлы журнала клиента

Все файлы журналов (включая серверы) хранятся в каталоге /var/log/ . Чтобы просмотреть журналы клиента, выполните следующую команду:

$ ls /var/log/

Файлы журнала клиента будут сохранены в каталоге, соответствующем имени хоста клиентской системы, как показано ниже.

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 5

Вы также можете просмотреть файлы журналов, содержащиеся в главном каталоге журналов.

$ sudo ls -l /var/log/ubuntu-20-04/

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 6

Для просмотра журналов в реальном времени используйте команду tail, как показано. Здесь мы просматриваем журналы пользователя sudo.

$ sudo tail -f /var/log/ubuntu-20-04/sudo.log

Как настроить сервер Rsyslog на Debian 11 (Bullseye) 7

Мы успешно установили rsyslog и настроили его, чтобы разрешить отправку файлов журнала на сервер rsyslog из клиентской системы. Теперь вы можете настроить столько клиентских систем, сколько хотите, для отправки журналов на сервер rsyslog, чтобы получить централизованную структуру управления журналами.

Это все из этого поста, надеюсь, вы нашли его информативным. Пожалуйста, поделитесь своими запросами и отзывами в разделе комментариев ниже.