Приложения создают так называемые лог-файлы, чтобы системный администратор мог отслеживать их действия в любой момент времени. Но содержимое таких файлов не является простым текстом, а потому их не так просто читать, особенно если сервер загружен задачами.
Как правило, лог-файлы используются при потере данных или возникновении сбоев или отказов, так как в них находятся данные, которые могут помочь устранить ошибку. В такой ситуации крайне важно иметь возможность быстро прочитать (обработать) информацию о случившихся событиях и проанализировать их.
В данном руководстве речь пойдёт о Logwatch – очень производительном лог-анализаторе, который существенно облегчит работу администратора выделенной системы.
Лог-файлы
Эти генерируемые приложениями файлы играют решающую роль в отслеживании произошедших и происходящих событий в системе и их использовании для полного или частичного восстановления данных (из логов транзакций), анализа производительности (по серверным логам) или же для тонкой настройки сервера (например, с помощью логов доступа).
Проще говоря, лог-файлы (или журналы) содержат информацию о действиях и событиях, произошедших в заданный период времени.
Хороший лог-файл должен содержать наиболее подробную информацию, поскольку невозможно предсказать, какие именно данные станут полезными в тот или иной момент. Именно потому лог-файлы обычно довольно объёмны и в большинстве случаев содержат огромное количество дублирующихся данных и избыточных записей, которые необходимо тщательно проанализировать и отфильтровать, чтобы понять.
Именно для этого и существует приложение Logwatch.
Краткий обзор Logwatch
Управление логами – это область системного администрирования, охватывающая поиск, ротацию и сохранение логов и предоставление отчётов.
Logwatch – это приложение, которое упрощает управление системными логами путём ежедневного анализа и составления короткого отчёта о деятельности, осуществляемой на данном компьютере.
Отчёты, составляемые Logwatch, категоризированы по сервисам (т.е. приложениям), запущенным в системе; эти отчёты можно настраивать при помощи довольно простого конфигурационного файла, включая и исключая отдельные сервисы. Более того, Logwatch позволяет создавать пользовательские скрипты для анализа логов.
Установка Logwatch
Примечание: В целом, Logwatch – безвредное приложение, которое не должно помешать работе текущих сервисов или повлиять на нагрузку. Но всё же рекомендуется сначала протестировать его на новой системе и создать резервные копии.
Установка Logwatch в CentOS / RHEL
Logwatch очень просто установить в системы, основанные на RHEL (например, CentOS). Поскольку данное приложение состоит из ряда различных Perl-скриптов, для его работы понадобятся некоторые зависимости. ПРи установке Logwatch через менеджер пакетов yum все эти зависимости будут установлены автоматически. Кроме того, при установке Logwatch будет загружена программа mailx (если она не была установлена ранее).
Итак, чтобы установить Logwatch на CentOS / RHEL, запустите следующую команду:
$ yum install -y logwatch
Установка Logwatch в Ubuntu / Debian
Процесс установки Logwatch в системы на основе Debian (например, в Ubuntu) так же прост, как и в RHEL и выполняется при помощи стандартного менеджера пакетов apt.
Чтобы установить Logwatch на Ubuntu / Debian, запустите:
$ aptitude install -y logwatch
Общие настройки Logwatch
Стандартный конфигурационный файл Logwatch находится в:
/usr/share/logwatch/default.conf/logwatch.conf
Откройте этот файл при помощи текстового редактора nano:
$ nano /usr/share/logwatch/default.conf/logwatch.conf
Это откроет длинный список переменных, которые используются приложением при каждом запуске (как автоматическом, так и ручном). Эти стандартные настройки нужно немного отредактировать.
Все сервисы (приложения), отслеживаемые и анализируемые Logwatch, перечислены в этом файле (подробнее – в подразделе Сервисы). Устанавливая или удаляя приложения с сервера, вы можете редактировать настройки, чтобы получать отчёт о работе всех или некоторых из них.
В данном разделе речь пойдёт о важных опциях, которые необходимо настроить.
Примечание: Во время редактирования файла необходимо использовать клавиши со стрелками для перехода с одной строки на другую. Внеся все необходимые изменения, нажмите CTRL+X, чтобы закрыть и сохранить файл, и Y для подтверждения. все изменения будут автоматически загружены при следующем запуске logwatch.
1: Электронный адрес получателя
MailTo = root
Примечание: Замените root своим значением.
Эта директива задаёт электронный адрес, на который нужно отправлять отчёты, например:
MailTo = sysadmin@mydomain.com
2: Электронный адрес отправителя
MailFrom = Logwatch
Примечание: Замените Logwatch своими данными.
Эта директива задаёт электронный адрес, с которого приложение Logwatch сможет слать отчёты. Например:
MailFrom = sysadmin@mydomain.com
3: Диапазон отчётов
Range = yesterday
Данная директива использует три значения: All (все доступные отчёты), Today (отчёты за сегодня) и Yesterday (все отчёты за вчерашний день), например:
Range = yesterday
или
Range = Today
4: Настройка подробности отчётов
Detail = Low
Эта директива позволят настроить подробность отчёта при помощи трёх доступных значений: Low, Medium и High; например:
Detail = Medium
5: Сервисы
По умолчанию Logwatch охватывает довольно широкий диапазон сервисов. Чтобы просмотреть полный список отслеживаемых сервисов, запросите содержимое файла scripts/services, расположенного в /usr/share/logwatch/.
Например:
ls -l /usr/share/logwatch/scripts/services
Service = All
В отчётах могут быть упомянуты все или только определённые сервисы. Чтобы получать отчёт по всем сервисам, используйте:
Service = All
Чтобы получать отчёт только по конкретным сервисам, перечислите все необходимые сервисы, используя формат:
Service = [name]
Например:
Service = sendmail
Service = http
Service = identd
Service = sshd2
Service = sudo
..
6: Отключение ежедневных отчётов
Если вы не нуждаетесь в ежедневных отчётах по мониторингу, раскомментируйте следующую строку, удалив символ # в начале:
# DailyReport = No
Теперь приложение Logwatch настроено и готово к работе. Внеся все эти изменения в стандартные настройки, вы будете автоматически получать основанные на данных логов отчеты о событиях на сервере.
Чтобы узнать о работе Logwatch больше и научиться создавать пользовательские скрипты и отчёты, обратитесь к полной документации приложения.
Запуск Logwatch вручную
В случае необходимости можно запускать Logwatch вручную через командную строку. В документации упомянуты следующие опции:
logwatch [--detail level ] [--logfile log-file-group ] [--service service-name ] [--print]
[--mailto address ] [--archives] [--range range ] [--debug level ] [--save file-name ]
[--logdir directory ] [--hostname hostname ] [--splithosts] [--multiemail] [--output output-
type ] [--numeric] [--no-oldfiles-log] [--version] [--help|--usage]
При запуске без опций Logwatch будет ориентироваться на конфигурационный файл.
Например:
$ logwatch —detail Low —mailto email@address —service http —range today
Отчёт Logwatch имеет примерно такой вид:
################### Logwatch 7.3.6 (05/19/07) ####################
Processing Initiated: Wed Nov 15 15:07:00 2013
Date Range Processed: today
( 2013-Nov-15 )
Period is day.
Detail Level of Output: 0
Type of Output: unformatted
Logfiles for Host: host_name
##################################################################
--------------------- Postfix Begin ------------------------
3.453K Bytes accepted 3,536
3.453K Bytes delivered 3,536
======== ================================================
3 Accepted 100.00%
-------- ------------------------------------------------
3 Total 100.00%
======== ================================================
3 Removed from queue
2 Delivered
1 Sent via SMTP
1 Connection failure (outbound)
1 Postfix start
---------------------- Postfix End -------------------------
--------------------- Connections (secure-log) Begin ------------------------
New Users:
apache (48)
New Groups:
apache (48)
**Unmatched Entries**
groupadd: group added to /etc/group: name=apache, GID=48: 1 Time(s)
groupadd: group added to /etc/gshadow: name=apache: 1 Time(s)
---------------------- Connections (secure-log) End -------------------------
--------------------- SSHD Begin ------------------------
SSHD Started: 2 Time(s)
Users logging in through sshd:
root:
ip_addr (ip_addr): 1 time
---------------------- SSHD End -------------------------
--------------------- yum Begin ------------------------
Packages Installed:
apr-1.3.9-5.el6_2.x86_64
apr-util-1.3.9-3.el6_0.1.x86_64
perl-YAML-Syck-1.07-4.el6.x86_64
4:perl-5.10.1-131.el6_4.x86_64
mailx-12.4-6.el6.x86_64
1:perl-Pod-Simple-3.13-131.el6_4.x86_64
1:perl-Pod-Escapes-1.04-131.el6_4.x86_64
3:perl-version-0.77-131.el6_4.x86_64
httpd-2.2.15-29.el6.centos.x86_64
4:perl-libs-5.10.1-131.el6_4.x86_64
mailcap-2.1.31-2.el6.noarch
perl-Date-Manip-6.24-1.el6.noarch
1:perl-Module-Pluggable-3.90-131.el6_4.x86_64
httpd-tools-2.2.15-29.el6.centos.x86_64
apr-util-ldap-1.3.9-3.el6_0.1.x86_64
logwatch-7.3.6-49.el6.noarch
---------------------- yum End -------------------------