Logwatch - мониторинг журналов сервера Linux с отправкой отчета о состоянии на e-mail

Пакет 'Logwatch" написанный на языке Perl создан облегчить работу админа. В частности после его настройки большее не требуется каждый раз заходить на сервер и просматривать логи, свободное место на дисках или писать для этого свои скрипты т.е. не нужно “создавать велосипед”, достаточно настроить конфиг под себя либо обойтись дефолтными настройками.

В рамках данного топика, я не буду описывать все параметры, которые можно изучить дополнительно в интернете. Отмечу важное и опишу решение проблемы из-за которой наверняка кто-то недоумевал, почему сообщение не отправляется по почте через планировщик Cron.

Установка на CentOS предельно проста:

yum install logwatch

Logwatch входит в Базовые репозитории CentOS и не требует подключения дополнительных репозиториев. Все зависимости будут автоматом устранены.

Примечание: Для отправки отчёта по email, я использую Postfix так как даже разработчики RedHat в новой версии RedHAt 7 используют его вместо Sendmail. Соответственно и настройка отправки будут заточены под Postfix.

Редактируем основной конфигурационный файл:

# vim /usr/share/logwatch/default.conf/logwatch.conf

##Указываем кому будет отправляться почта
MailTo = [email protected]

## Адрес отправителя отчета
MailFrom = [email protected]

##За какой период отправить отчёт: All, Today, Yesterday (переводить не вижу смысла всё и так предельно понятно)
Range = yesterday

##Детализация отчёта, максимальная, средняя либо низкая : High, Med, Low. Практический опыт показал, что оптимальнее всего указать среднюю либо максимальную детализацию.
Detail = Med

##Сервисы подлежащие анализу по умолчанию указаны все
Service = All

##Далее можем исключить сервисы из вывода статистики пример:
Service = “-sendmail”

##По умолчанию Logwatch анализирует логи в директории /var/log, но мы можем задать дополнительные пути, пример:
LogFile = /home/httpd/access_log
LogFile = /home/httpd/error_log

##Задаём путь и ключ к система обработки почтовых сообщений
mailer = “/bin/mailx -t”

На этот настройка конфигурационного файла завершена. Осталось настроить файл для авторизации на почтовом сервере:

В домашней директории пользователя создаём файл .mailrc и задаём нужные параметры:

###Если используется защищенное SSL/TLS соединение то нужно расскоментировать строчки ниже:
#set smtp-use-ssl/tls
#set ssl-verify=ignore

###Далее задаем имя домен (либо IP) порт, способ авторизации, email и пароль:
set smtp=smtp://mail.server.com:25
set smtp-auth=login
set [email protected]
set smtp-auth-password=qwerty123!
set from="[email protected](My server)"

Для безопасности меняем права на файл:

chmod 400 .mailrc

Теперь можем проверить работу выполнив команду:

logwatch

Если будут ошибки то они будут отображены в терминале.

Для тестирования отправки можно также воспользоваться следующей командой:

echo "Test" | mail -v -s "Test message" [email protected]

В конечном итоге на указанный почтовый адрес нам должен придти отчёт.

Но на этом ещё не всё.

Cкрипт формирования отчёта и отправки автоматически создался во время установки пакета и помещается в директорию: /etc/cron.daily/0logwatch но на следующий день Вы не получите отчёта, более того добавление скрипта в crontab также не помогает, а проблема эта из-за переменных окружения, точнее путей, которые при работе через cron нужно указывать либо экспортировать. Проблема решается редактированием файла /etc/cron.daily/0logwatch

#!/bin/bash
export PATH=$PATH:/usr/sbin
..................................
.................................
 then
    logwatch
fi

Теперь нам остаётся только по утрам открывать свою почту и просматривать отчёт.

Спасибо, даже не знал про такую фичу :good:

А не легче поднять централизованный SysLog сервер с веб интерфейсом Log Analyzer или более сложный и мощный GrayLog? ну и про LogZilla тоже не забываем…

Может и проще, но на практике я его не ставил. Во всяком случае после установки Logwatch я выявил некоторые ошибки в конфигурациях на серверах. Поделитесь опытом настройки SysLog сервера с веб интерфейсом Log Analyzer :smile3:

В дополнение сегодня промучился пару часов, чтобы настроить отправку писем через gmail, в итоге, в .mail.rc внёс следующие параметры:


set smtp-use-starttls
set ssl-verify=ignore
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="ServerName"
set [email protected]
set smtp-auth-password=*******
set nss-config-dir=/etc/pki/nssdb/

А также нужно разрешить доступ к аккаунту с иных (незащищённых по мнению Google) устройств:
http://www.google.com/accounts/DisplayUnlockCaptcha