Поиск по сайту:

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


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)

На этой странице

  1. Предпосылки
  2. Установить Rsyslog
  3. Настройка Rsyslog
  4. Настройка брандмауэра для Rsyslog
  5. Настройка клиента Rsyslog
  6. Проверить файл журнала клиентов
  7. Заключение

Rsyslog — это бесплатное программное обеспечение для ведения журналов с открытым исходным кодом, которое пересылает все файлы журналов на централизованный сервер журналов через IP-сеть. Это помогает системным администраторам следить за всеми серверами из центральной точки. Rsyslog работает в клиент-серверной модели, он получает логи от удаленного клиента на порт 514 по протоколу TCP/UDP.

В этом посте мы покажем вам, как настроить сервер Rsyslog в Debian 11.

Предпосылки

  • Два сервера с Debian 11.
  • На сервере настроен пароль root.

Установить Rsyslog

Во-первых, вам нужно будет установить серверный пакет Rsyslog на серверную машину. Вы можете установить его с помощью следующей команды:

apt-get install rsyslog -y

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

systemctl status rsyslog

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

? rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago
TriggeredBy: ? syslog.socket
       Docs: man:rsyslogd(8)
             man:rsyslog.conf(5)
             https://www.rsyslog.com/doc/
   Main PID: 283 (rsyslogd)
      Tasks: 4 (limit: 2341)
     Memory: 5.0M
        CPU: 90ms
     CGroup: /system.slice/rsyslog.service
             ??283 /usr/sbin/rsyslogd -n -iNONE

Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service...
Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.2102.0]
Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start
Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service.
Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request.
Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>

Настроить Rsyslog

Далее вам нужно будет настроить Rsyslog для работы в режиме сервера. Вы можете сделать это, отредактировав основной файл конфигурации Rsyslog:

nano /etc/rsyslog.conf

Раскомментируйте следующие строки:

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

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

Затем добавьте следующие строки, чтобы определить шаблон для хранения входящего журнала от клиентских систем:

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

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

systemctl restart rsyslog

В этот момент запускается Rsyslog и прослушивает порт 514. Вы можете проверить это с помощью следующей команды:

ss -tunlp | grep 514

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

udp   UNCONN 0      0                              0.0.0.0:514       0.0.0.0:*    users:(("rsyslogd",pid=26276,fd=6))                                                                                                                                                                                                                                                                             
udp   UNCONN 0      0                                 [::]:514          [::]:*    users:(("rsyslogd",pid=26276,fd=7))                                                                                                                                                                                                                                                                             
tcp   LISTEN 0      25                             0.0.0.0:514       0.0.0.0:*    users:(("rsyslogd",pid=26276,fd=8))                                                                                                                                                                                                                                                                             
tcp   LISTEN 0      25                                [::]:514          [::]:*    users:(("rsyslogd",pid=26276,fd=9))                                                                                                                                                                                                                                                                             

Настроить брандмауэр для Rsyslog

Затем вам нужно будет разрешить порт 514 через брандмауэр UFW. Вы можете разрешить это с помощью следующей команды:

ufw allow 514/tcp
ufw allow 514/udp

Затем перезагрузите брандмауэр, чтобы применить изменения:

ufw reload

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

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

nano /etc/rsyslog.conf

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

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

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

Кроме того, добавьте следующие строки, чтобы установить очередь диска, когда сервер rsyslog будет недоступен:

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

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

systemctl restart rsyslog

Проверить файл журнала клиентов

Все файлы журналов клиентов хранятся в каталоге /var/log на сервере.

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

ls -l /var/log/

Вы должны увидеть файл журнала клиентов, соответствующий имени хоста клиентской системы:

alternatives.log    auth.log.2.gz  daemon.log	    debian11	dpkg.log    kern.log.1	   messages.1	  private      syslog.3.gz
clientpc            auth.log.3.gz  daemon.log.1     debug	dpkg.log.1  kern.log.2.gz  messages.2.gz  runit        syslog.4.gz
apt		    btmp	   daemon.log.3.gz  debug.2.gz	icinga2     kern.log.4.gz  messages.4.gz  syslog
auth.log.1	    csm.log	   dbconfig-common  debug.4.gz	kern.log    messages	   ntpstats	  syslog.2.gz

Как видите, clientpc — это каталог журналов клиентской системы.

Заключение

В приведенном выше руководстве мы объяснили, как настроить сервер и клиент Rsyslog в Debian 11. Теперь вы можете контролировать своих клиентов из центрального местоположения. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.