Linux. Установка и настройка анализатора логов Logwatch

logwatch — это анализатор системных логов (журналов), начиная от /var/log/messagesи заканчивая логами CISCO-оборудования. Результаты анализа утилита группирует и помещает в отчёт, который может как выводиться в stdout, так и отправляться электронной почтой или сохраняется в файл. Формат отчёта предлагается в трех вариантах: plaintext, HTML или файл, при этом вы можете регулировать уровень детализации отчёта исходя из собственных потребностей.
Сегодня я расскажу вам как его установить и настроить.

Ставится он в Debian/Ubuntu довольно просто:

sudo apt-get install logwatch

После установки копируем файл конфига из довольно странного месторасположения в привычное:

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

И открываем на редактирование:

vi /etc/logwatch/conf/logwatch.conf

Настраиваем:

  • Задаём месторасположение временной директории
    TmpDir = /tmp
  • Вид отправки отчета по-умолчанию задаём как
    Output = mail

    чтобы получать отчёты не в stdout (поток стандартного вывода), а на почту.

  • Формат отчёта выбираем HTML, а не plaintext
    Format = html
  • Указываем ваш email, куда будут отправлены ежедневные отчёты
    MailTo = [email protected]
  • Задаёт имя и адрес отправителя (потом удобно создать фильтр)
    MailFrom = [email protected]
  • Задаём за какой период времени отбирать анализируемые сообщения: all, todayили yesterday
    Range = yesterday
  • Определяем уровень детализации отчёта. Может принимать как числовые значения от 0 (минимум детализации) до 10 (максимум). Также можно использовать синонимы: Low, Med и High, которые соответственно равны числовым 0, 5 и 10;
    Detail = Med
  • Задаём имя службы (имя файла из каталога /usr/share/logwatch/scripts/services/), логи которой необходимо анализировать. Если указать значение All, то будут обрабатываться все службы. Более того, можно некоторые из них исключить из отчёта указав перед именем службы минус («-«). Например включаю в отчёт все службы кроме http и exim:
    Service = All
    Service = "-eximstats"
    Service = "-http"

Внешне вывод в HTML виде выглядит страшненько. Прямо «Привет из 90х».
Лично я сам формат стилизовал следующим образом, хотя можно найти и другие темы в Сети.

Открываем файл HTML-шаблона

vi /usr/share/logwatch/default.conf/html/header.html

И заменяем наш <style>...</style> на следующий:

<style type="text/css">
    body,h1,h2,h3 {
        margin:0; padding:0; color:#404040;
        font:16px/16px courier,"courier new",Verdana,Arial,sans-serif;
    }
    a { color:#227596; font-size:14px; }
    ul li a { font-size:18px; line-height:22px; }
    .service { padding:20px 0 0 20px; }
    .return_link { padding:10px 0 30px 20px; }
    table,tr,td,th {
        border:0!important; border-collapse:collapse;
        font:14px/18px courier,"courier new",Verdana,Arial,sans-serif;
        color:#404040; text-align:left; background: #ffffff;
    }
    td,th { padding:2px 4px; margin:0; }
    h1, h1 a, h2, h2 a, h3, h3 a, th { font-size:16px; }
</style>

Проверим работу logwatch. Отчет должен сформироваться и прийти на почту.

/etc/cron.daily/00logwatch