Централізований збір log-файлів позбавляє від хаосу: замість того, щоб бігати по кожному вузлу, ви отримуєте єдиний пункт для пошуку інцидентів, аудиту та аналітики. У цій статті розберемося, як підняти rsyslog-агрегатор на сервері Linux, як грамотно фільтрувати потоки подій і налаштувати надійну ротацію через Logrotate. Додамо кілька порад з безпеки, автоматизації та розв’язання типових проблем. Це база для надійного спостереження і Linux моніторинг у продакшені.
Архітектура та потік логів
Мінімальна схема: є один сервер Linux-агрегатор з rsyslog, що приймає події по UDP/TCP (або RELP), зберігає їх у структурі каталогів по хостах і застосовує ротацію через Logrotate. Клієнти rsyslog надсилають свої log-файли Linux за селекторами (все або частину), опційно з TLS-шифруванням на порт 6514. Далі ці логи можна переганяти у SIEM/ELK/Grafana Loki, або просто аналізувати локально.
Налаштування rsyslog на сервері-агрегаторі
1) Встановлення пакунків
2) Відкриття портів для прийому
3) Конфігурація rsyslog для прийому і збереження
Створимо правило з динамічним шляхом /var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log:
Тепер агрегатор приймає логи і розкладає їх по хостам. Переконайтесь, що каталог створюється автоматично при першому записі.
Конфіг клієнтів rsyslog: надсилаємо події на агрегатор
Швидкий варіант (мінімум змін)
Гнучкий варіант із селекторами та чергою
Опційно: TLS/6514 для захисту
Якщо передаєте чутливі логи через незахищені мережі, використовуйте TLS на 6514 та сертифікати. Базовий приклад для клієнта (після налаштування сертифікатів):
Фільтрація та розділення логів
rsyslog підтримує property-based фільтри. Наприклад, відкинути «шумні» сервіси або класти їх у окремі файли:
Ротація логів з Logrotate
Щоб log-файли не розросталися, налаштуємо Logrotate. Він зазвичай запускається через cron та systemd timers автоматично.
Альтернативні способи
- systemd-journald → rsyslog: на клієнтах лишаємо journald як є, а rsyslog читає з journal і шле далі.
- syslog-ng: альтернатива rsyslog з подібними можливостями.
- Fluent Bit/Filebeat → Elasticsearch/Opensearch або Grafana Loki: варіант для складнішої аналітики і дашбордів.
GUI-спосіб (за потреби)
Для базового перегляду локальних журналів зручно використати Cockpit (веб-консоль). А для централізованого сховища логи з rsyslog можна подавати у Graylog або Grafana Loki з веб-інтерфейсом пошуку і візуалізації. Це хороше доповнення до вашого процесу Linux моніторинг.
FAQ
Як швидко перевірити надсилання логів?
UDP чи TCP/RELP?
UDP 514 — простий, але без підтвердження доставки. TCP 514 — надійніший. RELP 20514 — найкращий вибір для критичних подій (гарантована доставка і відновлення після розривів).
Що з SELinux?
Як обмежити розмір каталогу з логами?
Поєднуйте ротацію (daily/weekly + rotate N + compress) з моніторингом диска. За потреби обмежуйте селектори на клієнті, відкидайте «шумні» події на сервері.
Чому бачу дублікати записів?
Ймовірно, на сервері не стоїть інструкція stop у правилі після збереження, або клієнт шле події кількома способами. Перевірте порядок правил і використовуйте stop.
Чи конфліктує Logrotate з journald?
Ні, journald обслуговує власні двійкові журнали, rsyslog — текстові. Logrotate працює саме з файлами rsyslog. Це паралельні підсистеми.
Порада від Kernelka
Тримайте окремі шаблони для різних рівнів важливості (crit, err, info) та сервісів. Так ви швидко відфільтруєте потрібне, а при інциденті зекономите дорогоцінні хвилини ⏱️. І не забувайте про резервні копії критичних логів — це частина здорової стратегії безпеки.
Підсумок
- Підняли rsyslog на сервері-приймачі, відкрили порти і налаштували динамічні шляхи збереження.
- Сконфігурували клієнти: просте надсилання або гнучка доставка з чергою і фільтрами.
- Увімкнули TLS/6514 за потреби підвищеної безпеки.
- Налаштували Logrotate: ротація, компресія, пост-скрипт перезапуску.
- Розглянули альтернативи (syslog-ng, Fluent Bit, Loki/Graylog) та інтеграцію з GUI.
- Перекрили типові проблеми: перевірка logger, SELinux, дублікати, контроль місця.
- Автоматизація через cron та systemd timers вже вбудована — залишилось періодично перевіряти здоров’я системи.

Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.