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

Его сила в другом — он показывает форму обычного дня. Через месяц чтения вы знаете, сколько у вас в норме неудачных входов, сколько запросов к сайту и сколько писем уходит; и когда одна из этих цифр меняется вдвое, это видно сразу, без всяких порогов и правил. Именно поэтому отчёт имеет смысл держать там, где он попадается на глаза, а не в почтовой папке. Как это выглядит на странице — на демо ниже.