Как установить и настроить сервер и клиент Rsyslog на Ubuntu 24.04

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

Журналы очень полезны для анализа и устранения проблем, связанных с системой Linux и приложениями. По умолчанию в операционных системах на базе Linux все файлы журналов располагаются в каталоге/var/log. Существует несколько типов файлов журналов, включая cron, kernel, users и security, и большинство из них контролируются службой Rsyslog.

В этом руководстве я расскажу, как настроить сервер Rsyslog на сервере Ubuntu 24.04.

Предварительные условия

  • Два сервера под управлением Ubuntu 24.04.
  • Статический IP-адрес 192.168.0.101 настроен на машине с сервером Rsyslog, а 192.168.0.102 настроен на машине с клиентом Rsyslog.
  • На обоих серверах настроен пароль root.

Установка Rsyslog

Вы можете установить Rsyslog, выполнив следующую команду:

apt install rsyslog -y

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

rsyslogd -v

Также можно проверить состояние Rsyslog с помощью следующей команды:

systemctl status rsyslog

Вы должны увидеть следующий вывод:

? rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2024-08-22 04:28:55 UTC; 1min 31s ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 724 (rsyslogd)
    Tasks: 4 (limit: 1114)
   CGroup: /system.slice/rsyslog.service
           ??724 /usr/sbin/rsyslogd -n

Aug 22 04:28:53 ubuntu2404 systemd[1]: Starting System Logging Service...
Aug 22 04:28:54 ubuntu2404 rsyslogd[724]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.32.0]
Aug 22 04:28:54 ubuntu2404 rsyslogd[724]: rsyslogd's groupid changed to 106
Aug 22 04:28:54 ubuntu2404 rsyslogd[724]: rsyslogd's userid changed to 102
Aug 22 04:28:54 ubuntu2404 rsyslogd[724]:  [origin software="rsyslogd" swVersion="8.32.0" x-pid="724" x-info="http://www.rsyslog.com"] start
Aug 22 04:28:55 ubuntu2404 systemd[1]: Started System Logging Service.

Настройка сервера Rsyslog

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

nano /etc/rsyslog.conf

Сначала нужно определить протокол: UDP или TCP или оба.

Для одновременного использования UDP и TCP соединений найдите и откомментируйте строки ниже:

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Далее определите конкретную подсеть, IP или домен для ограничения доступа, как показано ниже:

$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com

Далее необходимо создать шаблон, чтобы указать серверу Rsyslog, как хранить входящие сообщения syslog. Добавьте следующие строки непосредственно перед разделом GLOBAL DIRECTIVES:

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

Сохраните и закройте файл, когда закончите. Затем проверьте конфигурацию Rsyslog на наличие синтаксических ошибок с помощью следующей команды:

rsyslogd -f /etc/rsyslog.conf -N1

Вы должны увидеть следующий результат:

rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

Наконец, перезапустите службу Rsyslog с помощью следующей команды:

systemctl restart rsyslog

Теперь проверьте, что Rsyslog прослушивает TCP/UDP, выполнив следующую команду:

netstat -4altunp | grep 514

Вы должны получить следующий результат:

tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      1332/rsyslogd       
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1332/rsyslogd       

Настройка клиента Rsyslog

Сервер Rsyslog установлен и настроен для получения журналов с удаленных узлов.

Теперь необходимо настроить клиента Rsyslog на отправку сообщений syslog на удаленный сервер Rsyslog.

Войдите в систему на машине клиента и откройте файл конфигурации Rsyslog, как показано ниже:

nano /etc/rsyslog.conf

Добавьте следующие строки в конец файла:

##Enable sending of logs over UDP add the following line:

*.* @192.168.0.101:514


##Enable sending of logs over TCP add the following line:

*.* @@192.168.0.101:514

##Set disk queue when rsyslog server will be down:

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

Сохраните и закройте файл. Затем перезапустите сервер Rsyslog, чтобы применить изменения конфигурации:

systemtcl restart rsyslog

Просмотр журнала клиента

На этом этапе клиент Rsyslog настроен на отправку своего журнала на сервер Rsyslog.

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

ls /var/log/rsyslog-client/

Вывод:

CRON.log  kernel.log  rsyslogd-2039.log  rsyslogd.log  sudo.log  wpa_supplicant.log

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

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