0887 371 498 support@itservice-bg.net
01.11.2016 · Самуил Арсов · Bash script, Debian, Hosting, Linux commands, Mail, Ubuntu

Logwatch: отчет по поща от Linux сървър

Logwatch следи логовете на Linux сървър и ги подрежда по услуги и нива на събития. Най-полезната му функция е, че праща на администратора обобщение по поща — вместо да се влиза в машината, за да се провери дали нещо се е случило. За да изпраща поща обаче трябва да има валиден пощенски сървър или relay през друг.

Инсталация

sudo apt-get install logwatch

Двата Perl модула не са задължителни, но без тях отчетът остава без информация за процесора и паметта:

sudo perl -MCPAN -e 'install Sys::CPU'
sudo perl -MCPAN -e 'install Sys::MemInfo'

Конфигурация

Най-простият вариант е ред в crontab:

sudo nano /etc/crontab
0  3   * * *   root logwatch --detail Low --mailto support@itservice-bg.net --service all --range today
sudo service cron restart

На Debian и Ubuntu пакетът вече слага /etc/cron.daily/00logwatch. Ако добавите и свой ред в crontab, ще получавате по два отчета на ден — или махнете единия, или редактирайте направо постоянния конфигурационен файл:

sudo nano /etc/logwatch/conf/logwatch.conf
MailTo = support@itservice-bg.net
MailFrom = logwatch@example.com
Detail = Low
Range = yesterday
Service = All

Този файл е за предпочитане — оцелява при обновяване на пакета, докато промените в /usr/share/logwatch/ се затриват.

Резултат

Logwatch отчет, получен по поща от Linux сървър

Преди да го оставите да праща

Отчетът се вижда на екрана, без да заминава никъде — така се проверява какво ще получите, преди да го включите:

sudo logwatch --detail Low --range today --output stdout | less

Нивата на детайлност са Low, Med и High (или числа от 0 до 10). High на натоварен сървър дава писмо от хиляди редове, което никой не чете — а непрочетеният отчет е по-лош от липсващия, защото създава усещане за наблюдение, каквото няма.

Заглушаване на шумните услуги

Обикновено един-два раздела заемат 90% от обема. Изключват се поименно:

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

Кои услуги изобщо съществуват се вижда така:

ls /usr/share/logwatch/scripts/services/

Какво всъщност се гледа в отчета

На сървърите, които поддържаме, отчетът върши работа за три неща: sshd — колко неуспешни опита за влизане и от кои адреси; Disk Space — дял, който расте, преди да се напълни; и pam_unix — кой е влизал и кога. Останалото е шум в повечето дни.

Важно е и обратното: ако отчетът спре да идва, това само по себе си е сигнал. Или пощата не тръгва, или машината е спряла — и двете си струва да се знаят.