Установка и настройка Logcheck в FreeBSD

Появилась необходимость получать уведомления на почтовый ящик при сбоях в системе. Т.к. ежедневный отчет через periodic dayly в котором можно обнаружить неполадки порой не очень информативен и приходит раз в сутки. Выбор пал на Logcheck, как кандидат был еще опробован Zabbix, но для моих требований он оказался сильно избыточен. Для мониторинга кучи серверов, с гибкой настройкой оповещений, с возможностью создавать свои триггеры, желательно с выделением под сам сервер Zabbix отдельного сервера — очень достойный вариант.

Logcheck — представляет из себя bash-скрипт, с набором конфигурационных файлов. По cron запускается, проверяет указанные в настройке лог-файлы и если в лог-файлах имеются записи с [error, warn] отправляет сообщение на указанный почтовый ящик.

Установка Logcheck

Как всегда обновляем порты

# portsnap fetch update

Далее:
# cd /data/ports/security/logcheck
# make install clean

Настройка

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

# vi /usr/local/etc/logcheck/logcheck.conf

Единственное что я в нем изменил, это строка пользователь получатель.
Сменил logcheck на root (т.к. у меня в aliases указан форвард с почтового ящика root на мой).
SENDMAILTO="root"

По умолчанию Logcheck проверяет два лога:

  • /var/log/messages
  • /var/log/auth
Если Вам надо мониторить еще какие-либо логи, то впишите их (я например указал лог виртуального сервера на котором находится этот сайт)
 # vi /usr/local/etc/logcheck/logcheck.logfilesТ.к. Logcheck при инсталляции создает одноименного пользователя и под ним работает, то необходимо для обрабатываемых логов установить возможность пользователю ‘‘logcheck» читать их.
# chmod 644 /var/log/auth.log

Остальные логи у меня имели соответствующие права.
Но выставленное нами разрешение слетит после ротации лога, чтобы этого не произошло, меняем маску 600 на 644 для /var/log/auth.log в newsyslog.conf
# vi /etc/newsyslog.conf
/var/log/auth.log     644  7     100  *     JC

Рестартуем процессы, заодно передёрнем крон, т.к. logcheck запускается из крона и по умолчанию имеет задание запускаться после рестарта и каждую вторую минута часа, проверить это можно командой
# crontab -e -u logcheck

# crontab entries for the logcheck package
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
MAILTO=root
@reboot    if [ -x /usr/local/sbin/logcheck ]; then nice -n10 /usr/local/sbin/logcheck -R; fi
2 * * * *  if [ -x /usr/local/sbin/logcheck ]; then nice -n10 /usr/local/sbin/logcheck; fi

Рестарт newsyslogd и cron:
# /etc/rc.d/cron restart
# /etc/rc.d/newsyslog restart

Если все правильно сделали, то на почту Вам придет письмо с указанием найденных проблем Logcheck. Возможно, что придет письмо с описанием ошибки запуска Logcheck(мне пришло такое, с описанием что logcheck не может прочитать лог, как раз для этого мы выше устанавливали права 644 на лог-файл).

Ну вот собственно и все.
P.S. Домашний сайт Logcheck
Больше материалов о FreeBSD

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Комментарии: 2
  1. Alexander

    лучше уж
    chmod 640 /var/log/auth.log
    и пользователя logcheck в группу wheel добавить

    1. Vladimir (автор)

      Ну можно и так:) Но я пасс, добавлять в wheel пользователей.

Добавить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.