Как установить и использовать Logwatch Log Analyzer и Reporter на VPS
Введение
Приложения создают так называемые «файлы журналов» для отслеживания действий, происходящих в любой момент времени. Эти файлы, которые далеки от простого текстового вывода, могут быть очень сложными для просмотра, особенно если управляемый сервер является занят один.
Когда приходит время обратиться к файлам журналов (например, в случае сбоя, потери данных и т. д.), использование всей доступной помощи становится жизненно важным. Способность быстро понять (разобрать), что они могут сказать о прошлых событиях, и анализировать, что именно тогда произошло, становится исключительно важной для поиска решения.
Следуя по стопам наших предыдущих статей об усилении защиты системы Linux, мониторинге безопасности и оповещениях по электронной почте, в этой статье DigitalOcean мы поговорим о Logwatch: очень мощном синтаксическом анализаторе и анализаторе журналов, который может немного облегчить жизнь любого системного администратора при решении проблем. задачи и проблемы, связанные с приложением.
Лог-файлы
Подобно черным ящикам космических кораблей из Startrek, для обеспечения работы систем (то есть серверов) администраторы даже сегодня полагаются на журналы. Помимо шуток, эти файлы, созданные приложением, играют решающую роль в отслеживании и понимании того, что произошло в прошлом [в данный момент времени] для целей полного/частичного восстановления данных (т. е. из журналов сервера) или внесения поправок на будущее ( например, из журналов доступа).
Проще говоря, файлы журнала будут состоять из действий и событий, происходящих в течение заданного периода времени.
Хороший файл журнала должен быть как можно более подробным, чтобы помочь администратору, отвечающему за обслуживание системы, найти точную информацию, необходимую для определенной цели. Именно по этой причине файлы журналов обычно НЕ являются краткими и содержат множество повторений и множество (в основном) избыточных записей, которые нуждаются в тщательном анализе и фильтрации, чтобы понять их для человека.
Именно здесь в игру вступает Logwatch, компьютерное приложение, разработанное для этой работы.
Войти
Управление журналами — это область, состоящая в основном из поиска, ротации/сохранения журналов и создания отчетов. Logwatch — это приложение, которое упрощает управление журналами, ежедневно анализируя и сообщая краткие сводки о действиях, происходящих на вашем компьютере.
Отчеты, созданные Logwatch, классифицируются по службам (т. е. приложениям), работающим в вашей системе, которые можно настроить так, чтобы они состояли из тех, которые вам нравятся, или из всех вместе, изменив относительно простой файл конфигурации. Кроме того, Logwatch позволяет создавать собственные сценарии анализа для конкретных нужд.
Установка Логвотч
Обратите внимание: Logwatch — это безвредное приложение, которое не должно мешать вашим текущим службам или рабочей нагрузке. Однако, как всегда, рекомендуется сначала попробовать его на новой системе и обязательно сделать резервные копии.
В CentOS/RHEL
Очень просто установить Logwatch в системе на основе RHEL (например, CentOS). Поскольку это приложение, состоящее из различных сценариев Perl, требуются определенные связанные зависимости. Поскольку мы собираемся использовать менеджер пакетов yum, об этом позаботятся автоматически. Если у вас уже не установлен mailx, Logwatch также загрузит его для вас в процессе.
Чтобы установить Logwatch на CentOS/RHEL, выполните следующее:
$ yum install -y logwatch
В Ubuntu/Debian
Получение Logwatch для систем на основе Debian (например, Ubuntu) очень похоже на процесс, описанный выше, за исключением различий в менеджерах пакетов (aptitude v. yum).
Чтобы установить Logwatch на Ubuntu/Debian, выполните следующее:
$ aptitude install -y logwatch
Настройка Logwatch
Хотя его настройки можно переопределять вручную во время каждого запуска, в целом вы захотите, чтобы Logwatch работал ежедневно, используя общую конфигурацию.
Настройка общих конфигураций Logwatch
Файл конфигурации по умолчанию для Logwatch находится по адресу:
/usr/share/logwatch/default.conf/logwatch.conf
Давайте откроем этот файл с помощью текстового редактора nano, чтобы изменить его содержимое:
$ nano /usr/share/logwatch/default.conf/logwatch.conf
После запуска приведенной выше команды вы увидите длинный список переменных, которые приложение использует каждый раз при запуске, автоматически или вручную.
Чтобы начать использовать его, нам нужно будет внести несколько изменений в эти значения по умолчанию.
Помните, что в будущем вы, возможно, захотите вернуться, чтобы изменить определенные здесь настройки. Все сервисы (приложения), анализируемые Logwatch, перечислены в этом файле, как описано выше (Конфигурация № 5). Когда вы устанавливаете или удаляете приложения с виртуального сервера, вы можете продолжать получать отчеты по всем или некоторым из них, изменив настройки здесь (см. ниже*).
Важные параметры, которые нам нужно установить:
Обратите внимание: вам нужно будет использовать клавиши со стрелками, чтобы перемещаться вверх или вниз по строкам, когда вы будете вносить следующие изменения в документ. Когда вы закончите вносить изменения (пункты 1–6), вам нужно будет нажать CTRL+X, а затем подтвердить Y, чтобы сохранить и закрыть. Изменения вступят в силу автоматически при следующем запуске logwatch
.
1. Адрес электронной почты, на который отправляются ежедневные сводки (отчеты):
MailTo = root
Замените root
своим адресом электронной почты.
Пример: MailTo=sysadmin@mydomain.com
2. Адрес электронной почты, откуда отправляются эти отчеты:
MailFrom = Logwatch
Вы можете снова заменить Logwatch
своим собственным.
Пример: MailFrom=sysadmin@mydomain.com
3. Установка диапазона для отчетов:
Range = yesterday
У вас есть варианты получения отчетов для Все (все доступны с самого начала), Сегодня (только сегодня) или Вчера (только вчера).
Пример: Диапазон=Сегодня
4. Настройка детализации отчетов:
Detail = Low
Вы можете изменить детали отчетов здесь. Возможные варианты: Низкий, Средний и Высокий.
Пример: 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
Если вы не хотите, чтобы ежедневные отчеты генерировались, раскомментируйте эту строку.
Пример: DailyReport=No
вместо # DailyReport=No
Вот и все! После внесения этих изменений вы будете автоматически получать ежедневные отчеты на основе файлов журнала с вашего сервера.
Чтобы узнать больше о 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 --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 -------------------------