Установка и использование лог-анализатора Logwatch

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
PQ VPS сервера в 28+ странах.