Як встановити і налаштувати 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. Не соромтеся запитувати мене, якщо у вас виникнуть запитання.