Серверы · 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. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.