Logwatch розв’язує задачу, яка інакше лишається нерозв’язаною: він читає за вас усі журнали сервера й надсилає зведення за минулу добу. Щодня переглядати auth.log і журнали вебсервера ніхто не буде, а прочитати вранці один лист — цілком посильно.

Відома проблема: перший лист приходить на кілька сотень рядків, другий проглядають побіжно, за тиждень поштове правило відправляє їх в окрему теку, і на цьому спостереження закінчується. Причина майже завжди в типових налаштуваннях, а виправлення займає десять хвилин.

Встановлення й де міняти налаштування

sudo apt install logwatch

Куди класти свої значення, має значення. Файл /usr/share/logwatch/default.conf/logwatch.conf чіпати не можна — він перезаписується при оновленні пакета. Ваш файл — /etc/logwatch/conf/logwatch.conf. Він може бути порожнім; достатньо додати лише те, що ви змінюєте.

Output = mail
Format = html
MailTo = admin@example.com
Detail = Low
Range = yesterday

Рівень деталізації вирішує все

Detail приймає значення від 0 до 10 або слова Low, Med, High. Різниця величезна: на High у звіт потрапляє кожне з’єднання і кожен запит; на Low — лише підсумки й аномалії.

Практика така: Low загалом, з вибірково піднятою деталізацією для служб, які вас справді цікавлять. Налаштування для окремих служб кладуть у /etc/logwatch/conf/services/ — наприклад, файл sshd.conf із рядком Detail = High.

Орієнтир для перевірки: звіт має вміщатися в екран або півтора. Усе довше читати перестануть — не з лінощів, а тому, що відхилення непомітне серед трьохсот рядків рутини.

Щоб побачити результат, не чекаючи ранку:

sudo logwatch --detail Low --range today --output stdout

Порожній розділ SSH на Debian 12

Окрема пастка на свіжих системах. Logwatch читає текстові файли в /var/log, а Debian 12 та Ubuntu 24.04 більше не ставлять rsyslog типово — файла /var/log/auth.log просто немає, і все йде в журнал systemd. Звіт при цьому справно приходить, але найважливіший розділ — входи по SSH — виходить порожнім або зникає.

Перевірка займає секунду:

ls -l /var/log/auth.log

Немає файла — або ставте rsyslog, або приймайте, що Logwatch на цій машині показує неповну картину. Порожній розділ легко прочитати як «нічого не сталося», і це найнебезпечніший наслідок.

Куди йде пошта

Друга поширена причина того, що «звіти не приходять»: на сервері не налаштовано доставку пошти. Logwatch віддає лист системному агенту, той нікуди його не надсилає, і лист осідає в локальній скриньці root, куди ніхто ніколи не заглядає:

sudo cat /var/mail/root | tail -50

Варіантів два. Або налаштувати доставку через зовнішній SMTP-релей, або не користуватися поштою взагалі й писати звіт у файл:

Output = file
Filename = /var/log/logwatch/report.txt

Друге чесніше: лист, який ніхто не може доставити, створює ілюзію спостереження, а файл на диску принаймні можна відкрити.

Що читати у звіті

За спаданням корисності:

  • sshd. Успішні входи — хто і звідки. Саме успішні, а не тисячі невдач: невдачі — це фон, а вхід із незнайомої адреси потребує пояснення;
  • sudo і pam_unix. Хто підвищував привілеї і хто створював користувачів;
  • Disk Space. Один рядок, який заздалегідь попереджає про диск, що заповнюється;
  • cron. Завдання, які з’явилися, і завдання, які впали;
  • http. Сплеск відповідей 404 зазвичай означає промацування шляхів; сплеск 500 — що зламалося щось ваше;
  • postfix, якщо сервер надсилає пошту: зростаюча вихідна черга — типова ознака того, що сервер пристосували як релей для спаму.

Межі можливостей

Logwatch — це зведення за минулу добу, а не сповіщення. Він не розбудить вас уночі й за визначенням запізнюється: запускається зі щоденного завдання під ранок і охоплює вчорашній день. Для «щось відбувається просто зараз» він не придатний і не призначений.

Його сила в іншому — він показує вам форму звичайного дня. Через місяць читання ви знаєте, скільки невдалих входів у вас буває в нормі, скільки запитів приймає сайт і скільки пошти йде назовні; а коли одна з цих цифр подвоюється, це видно одразу, без жодних порогів і правил. Тому звіт варто тримати там, де він потрапить на очі, а не в поштовій теці. Який вигляд це має на сторінці, показує демо нижче.