Logwatch - это модульный анализатор журналов, который запускается каждую ночь и отправляет электронной почтой результаты. Может быть также запущен через командную строку.
У FreeBSD есть хорошая традиция присылать периодические отчеты об изменениях в системе и безопасности, для этих целей можно использовать Logwatch и/или logcheck, fwlogwatch. Лог-файлы (или журналы) содержат информацию о действиях и событиях, произошедших в заданный период времени. Лог-файлы обычно довольно объёмны и в большинстве случаев содержат огромное количество дублирующихся данных и избыточных записей, которые необходимо тщательно проанализировать и отфильтровать, чтобы понять и найти проблему. Для этой цели установим приложение Logwatch, который существенно облегчит работу системного администратора.
# for Debian, Ubuntu apt install -y logwatch # for RedHat / CentOS / RHEL yum install -y logwatch
Кроме установки дополнительная настройка logwatch не требуется. Программа работает из коробки.
Настройки по умолчанию находятся здесь /usr/share/logwatch/default.conf/logwatch.conf. Для изменения настроке по умолчанию создадим копию конфигурационного файла в директорию logwatch:
cp /usr/share/logwatch/dist.conf/logwatch.conf /etc/logwatch/conf/
Изменим некоторые параметры, например
mailer = "/usr/sbin/sendmail -t" TmpDir = /tmp MailFrom = root # обратный адрес сервера Detail = High # уровень детализации вывода Print = No # ставим YES для вывода в stdout при тестировании, в NO - для отправки отчёта по почте Service = All #имя сервисов. Для каждого отдельного сервиса должна быть отдельная строка 'service='. #Имя сервиса соответствует имени скрипта в /usr/share/logwatch/scripts/services # отключаем отчет о свободном месте Service = "-zz-disk_space"
Рабочий конфиг, на почту присылается отчет в удобном html формате
mailer = "/usr/sbin/sendmail -t" TmpDir = /tmp MailTo = darkfire@dieg.info MailFrom = root@dieg.info Range = yesterday Detail = Medium Service = All Format = html
Проверим работу logwatch. Отчет должен сформироваться и прийти на почту.
/etc/cron.daily/00logwatch
Чтобы logwatch запускался раз в неделю, то укажем в конфигурации параметр Range как указано ниже и второй командой переместим файл cron задания:
Range = between -7 days and -1 days mv /etc/cron.daily/00logwatch /etc/cron.weekly/
Если имя лог файла отличается от стандартного. Например Руководство по iptables: Настройка и оптимизация фаервола Linux настроен для протоколирования в файл /var/log/iptables.log Нам нужны исправить имена и/или пути в файле с настройками по умолчанию. Они находятся в /usr/share/logwatch/default.conf/logfiles/
# cp /usr/share/logwatch/default.conf/logfiles/iptables.conf /etc/logwatch/conf/logfiles/ # nano /etc/logwatch/conf/logfiles/iptables.conf #LogFile = ulogd/ulogd.syslogemu LogFile = /var/log/iptables.log #Archive = ulogd/ulogd.syslogemu.* Archive = /var/log/iptables.*
Тогда через конф-файлы /etc/logwatch/conf/logfiles/ ищем нужный сервис, допустим http и меняем имена логов и их пути.
Настройки фильтрации ненужной информации хранятся в файле ignore.conf
Также Logwatch можно запускать вручную через командную строку. При запуске без опций Logwatch будет ориентироваться на конфигурационный файл. Например:
logwatch -detail Low -mailto darkfire@dieg.info -service http -range today