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

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


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

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

Журналы очень полезны для анализа и устранения любых проблем, связанных с системой и приложениями в Linux. По умолчанию все файлы журналов находятся в каталоге /var/log в операционных системах на базе Linux. Существует несколько типов файлов журнала, включая cron, ядро, пользователей, безопасность, и большинство из этих файлов управляются службой 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, compiled with:
	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

See http://www.rsyslog.com for more information.

Вы также можете проверить статус 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 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, как хранить входящие сообщения системного журнала. Добавьте следующие строки непосредственно перед разделом 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 для отправки сообщений системного журнала на удаленный сервер 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

Заключение

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