9.12.09

Демон LogWatch.

В недавнем прошлом я как то обнаружил что каталог /var занял почти все полезное место на отведённом ему разделе жёсткого диска, с помощью команды du выяснил что заняла все место папка кеша некоего демона logwatch, на тот момент о демоне я ничего не знал, но стало интересно что же это за демон и зачем он нужен. После прочтения мана понял что данный демон создаёт ежедневные отчёты состояния системы на основе логов других демонов, группирует и систематизирует данные и отправляет этот отчёт на указанное мыло. Так как я отключил демон sendmail в системе отчёты от logwatch кешировались системой и не отправлялись накапливая постепенно забив весь раздел. Решил исправить эту ситуацию указав валидный внешний email. Теперь на всех своих системах я включаю данный демон и в итоге имею неплохой инструмент мониторинга за состоянием системы без постоянного контроля по удаленке. Итак:

Настойка демона logwatch.

Настройка системы производиться с помощью конфигов в /etc/logwatch/ . основной конфигурационный файл logwatch.conf находиться по пути /etc/logwatch/conf/logwatch.conf. Содержимое моего конфига:
LogDir = /var/log
TmpDir = /var/cache/logwatch
MailTo = my@e-mail
MailFrom = Logwatch
Range = yesterday
Save = /root/logwatch
Detail = High
Service = All
Service = "-zz-network"
Service = "-zz-sys"
mailer = "sendmail -t"

Значения этих директив следующие:

Директория в которой хранятся логи системы.
LogDir = /var/log

Та самая директория для хранения временных файлов. которая отожрала у меня все место на разделе.
TmpDir = /var/cache/logwatch

Электронный адрес на который следует отправлять отчёты.
MailTo = my@e-mail

В поле письма "От кого" будет указанная ниже строчка.
MailFrom = Logwatch

Если есть желание что бы сведения сохранялись локально то укажите этот параметр
Save = /root/logwatch

Установите высокую степень отображения что бы видеть максимум информации из логов, можно также установить Low и Med параметры или числа от 0 до 10 для регулирования степени детализации.

Detail = High

Укажите за какой промежуток времени собирать отчёт. Также можно указывать параметры today и all.
Range = yesterday

Что бы оптимизировать сбор отчётов под ваши нужды существует директива Service которая и регулирует как и с каких логов следует собирать информацию. Сами скрипты находятся в директории /usr/share/logwatch/scripts/services/. Мои директивы означают что я включаю в отч1т обработку всех логфайлов, за исключением скриптов -zz-network, -zz-sys которые собирают информацию о конфигруации сети и железа.

Service = All
Service = "-zz-network"
Service = "-zz-sys"



Если нужно выделить только конкретные отчёты то укажите какие конкретно вместо параметра All. Для отправки отчёта используется почтовый демон. По умолчанию в fedora это sendmail
mailer = "sendmail -t"
Если у вас другой демон для отправки системных сообщений укажите команду которую следует выполнить logwatch что отправить отчёт. Например для postfix следует указать:
mailer = "postfix.sendmail -t"

После того как вы сохраните конфиг, запустите службу sendmail если вы ее остановили командой
service sendmail start

а так же включите автоматический запуск службы
chkconfig sendmail on

Можете проверить работоспособность демона запустив команду logwatch. Она создаст и отправит вам на email отчёт о состоянии системы.

3 комментария:

  1. Вопрос, если конечно Ты с таким столкнулся.
    Нужно смотреть статитику работы pure-ftpd
    беру конфиги из /usr/share/logwach/default/conf{logfile/service}
    ложу все это соответственные папки в /etc/logwatch. Правлю файлы т.е. указываю как зовутся логи и где хранятся старые логи. В результате logwatch --detail high --print yes --range all --{service/logfile} pureftp ничего не выводит. То же касается и dovecot. И еще параметр Range к примеру как 'since 2 hours ago for those hours' выдаёт ошибку что неправильно указан диапазон и тут же в примерах он же и написан.

    ОтветитьУдалить
  2. А зачем ложить? Скрипты для обработки никуда не надо копировать просто в конфиге следует указать какие из них задействать. Например у меня logwatch --detail high --print yes --range all --service dovecot на гора выдал нужную информацию.

    ОтветитьУдалить
  3. В каком именно примере параметр Range такой?

    ОтветитьУдалить

Популярные сообщения