Серверы · 4 min read · Oct 06, 2025

Как настроить сервер Rsyslog на Ubuntu 18.04 LTS

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

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

В этом руководстве мы объясним, как настроить сервер Rsyslog на сервере Ubuntu 18.04.

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

  • Два сервера, работающих на Ubuntu 18.04.
  • Статический IP-адрес 192.168.0.101 настроен на машине сервера Rsyslog, а 192.168.0.102 настроен на машине клиента Rsyslog.
  • Пароль root настроен на обоих серверах.

Установка Rsyslog

По умолчанию Rsyslog установлен на сервере Ubuntu 18.04. Если он не установлен, вы можете установить его, выполнив следующую команду:

apt-get install rsyslog -y

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

rsyslogd -v

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

rsyslogd 8.32.0, скомпилированный с:
    PLATFORM:           x86_64-pc-linux-gnu
    PLATFORM (lsb_release -d): 
    FEATURE_REGEXP:         Yes
    GSSAPI Kerberos 5 support:  Yes
    FEATURE_DEBUG (debug build, slow code):     No
    32bit Atomic operations supported:  Yes
    64bit Atomic operations supported:  Yes
    memory allocator:       system default
    Runtime Instrumentation (slow code):    No
    uuid support:           Yes
    systemd support:        Yes
    Number of Bits in RainerScript integers: 64

Смотрите http://www.rsyslog.com для получения дополнительной информации.

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

systemctl status rsyslog

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

? rsyslog.service - Служба системного журнала
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-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

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

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

##Включите отправку журналов по UDP, добавив следующую строку:

*.* @192.168.0.101:514


##Включите отправку журналов по TCP, добавив следующую строку:

*.* @@192.168.0.101:514

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

$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

Заключение

В приведенной выше статье мы узнали, как установить и настроить сервер Rsyslog на сервере Ubuntu 18.04. Мы также узнали, как настроить клиента Rsyslog для отправки журналов на сервер Rsyslog. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.