Як встановити і налаштувати Rsyslog Server та Client на Ubuntu 24.04: Повний гайд

Як встановити і налаштувати Rsyslog Server та Client на Ubuntu 24.04: Повний гайд

 

Rsyslog на Ubuntu — це потужний і гнучкий демон системного журналювання, який використовується для збору, фільтрації, зберігання та пересилання повідомлень журналів, створених операційною системою та програмами. Це вдосконалена версія традиційної служби syslog, що надає додаткові функції, такі як високопродуктивне ведення журналів, розширені можливості фільтрації та підтримка кількох протоколів ведення журналів, включаючи TCP, UDP і RELP (Reliable Event Logging Protocol). Rsyslog може обробляти повідомлення журналу з різних джерел і направляти їх до різних адресатів, таких як файли, бази даних або віддалені сервери. Він широко використовується в централізованих системах реєстрації для моніторингу, усунення несправностей та аудиту. Забезпечуючи детальну конфігурацію, Rsyslog дозволяє адміністраторам Ubuntu ефективно керувати системними журналами та забезпечувати надійне захоплення та зберігання важливої інформації.

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

У цьому посібнику я поясню, як налаштувати сервер Rsyslog на сервері Ubuntu 24.04.

Передумови

  • Два сервери під управлінням Ubuntu 24.04.
  • Статична IP-адреса налаштована на серверному комп’ютері Rsyslog 192.168.0.101, а на клієнтській машині Rsyslog – 192.168.0.102.
  • Пароль 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, як зберігати вхідні повідомлення системного журналу. Перед розділом ГЛОБАЛЬНІ ДИРЕКТИВИ додайте наступні рядки:

$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

Висновок

У наведеній вище статті ми дізналися, як встановити та налаштувати сервер Rsyslog на сервері Ubuntu 24.04 та як налаштувати клієнт Rsyslog для надсилання логів на сервер Rsyslog. Не соромтеся запитувати мене, якщо у вас виникнуть запитання.

Прокрутка до верху