Пакет '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
Теперь нам остаётся только по утрам открывать свою почту и просматривать отчёт.